Python- результат условий ничего не делает
Итак, я начал самостоятельно изучать Python, но есть небольшая проблема с переменными и их результатом?
choice = input()
if (random.randint(0,100) > 20 and choice == (1)):
print("Odkopnul jsi krysu a ta sebou")
print("prastila o zed az omdlela")
elif random.randint(0,100) < 20:
print("I pres tvoje cukani ti")
print("krysa ukousla kus palce!")
Проблема в том, что когда я нажимаю 1, а затем ввожу, он ничего не делает:o Мне это нужно: если случайное число больше 20, а значение ввода было 1, чтобы напечатать одну вещь (Вы выиграли, для опыта) или если случайное число было меньше чем 20, чтобы напечатать другую вещь (Вы потеряли, для опыта.)
Спасибо за все советы, я ценю это
1 ответ
Есть несколько проблем с этим кодом.
input()
возвращает строку, но вы пытаетесь сравнить ее с целым числом. Вы должны сначала преобразовать его в целое число, вызвавchoice = int(input())
Ты звонишь
random.randint(0,100)
дважды, поэтому он каждый раз возвращает разные значения. Вместо этого вам следует вызывать ее один раз в верхней части функции и использовать это значение оба раза.Вы сравниваете случайную величину, чтобы увидеть, не меньше ли она
20
или больше 20, но вы не учитываете случай, когда он равен20
,Там нет необходимости размещать
(1)
в скобках.
Исправляя эти ошибки, окончательный код становится
choice = int(input())
num = random.randint(0,100)
if (num >= 20 and choice == 1):
print("Odkopnul jsi krysu a ta sebou")
print("prastila o zed az omdlela")
elif num < 20:
print("I pres tvoje cukani ti")
print("krysa ukousla kus palce!")
Обратите внимание, что логика этой программы по-прежнему не совсем понятна, так как есть случаи, когда ничего не будет напечатано. Тем не менее, это исправляет более очевидные ошибки, и я рекомендую вам следовать руководству по Python, чтобы узнать больше об основах.