python 如何将输入变量除以2

ioekq8ef  于 2023-01-08  发布在  Python
关注(0)|答案(2)|浏览(409)

在第7行和第14行,我不知道如何划分变量。

import keyboard
import random

def main(Number, Start):
    Number = random.randrange(1,100)
    Start = False
    QA = input('Press "K" key to begin')
    if keyboard.is_pressed('K'):
        Start = True
    input('I"m thinking of a random number and I want that number divisible by two')
    print(Number)
    input('Please divide this by two. *IF IT IS NOT POSSIBLE RESTART GAME*\n')
    if QA == int(Number) / 2:
        print('.')
    else:
        print('.')

main(Number=' ' ,Start=' ')
92dk7w1h

92dk7w1h1#

您可能想要的:

  • 选择一个随机数
  • 使用户将此数字除以2(?)
  • 根据猜测是否正确来做某事

您的代码有什么问题:

  • 你并不是在挑选一个能被2整除的数,要确保你的数确实能被2整除,最简单的方法就是挑选一个随机数,然后将它乘以2:my_number = 2 * random.randrange(1, 50)。注意范围的变化。还要注意上限不包括在内,这可能不是您在这里的意思。检查是否可被N整除的典型方法是使用取模运算符:my_number % N == 0。如果你想让用户以不同的方式处理奇数,你需要为此编写一个单独的分支。
  • input返回一个字符串。在您的示例中,QA = input('Press "K" key to begin')返回"K"(如果用户确实这样做了)或随机乱码(否则)。然后,您将通过调用keyboard.is_pressed来检查一个完全不相关的状态:您在这里要做的是检查用户是否输入了Kif QA == "K")或者,如果您只想在按下K后立即继续,使用keyboard.wait('k')。不过我建议现在坚持使用input。注意小写/大写字母并非在所有情况下都可以互换,您可能不希望用户被迫按Shift+k(据我所知,不是keyboard包的情况)。
  • input('I"m thinking of不返回任何东西。您可能需要print,可能需要f-strings来打印该提示沿着随机数。
  • input('Please divide this by two.也不返回任何东西,您肯定希望将其存储在某个地方,或者至少立即根据预期结果进行计算。
  • 没有任何逻辑可以对结果进行任何不同的处理。
  • 您的函数在编写时实际上不需要任何参数。Start也没有执行任何操作。
  • 变量命名与我所见过的大多数约定相反。* 现在 * 它不是一个大问题,但如果你需要帮助来编写更长更复杂的代码,它将成为一个大问题。

修订版本:

import random
import keyboard

def my_guessing_game():
    my_number = random.randrange(1, 50) * 2
    # game_started = False
    print('Press "K" to begin')
    keyboard.wait('k')
    # game_started = True
    print(f"I'm thinking of a number and I want you to divide that number by two. My number is {my_number}")
    user_guess = input('Please divide it by two: ')
    if int(user_guess) == my_number / 2:
        # handle a correct guess here
        print('Correct!')
        pass
    else:
        # handle an incorrect guess here
        pass
nhhxz33t

nhhxz33t2#

或者,可以使用模运算符%测试Number是否可被2整除:
如果编号% 2 == 0:打印(."“),否则:列印('.')
这将检查Number除以2的余数是否等于0,这表示Number可被2整除。

相关问题