Проблема с if в python

Эй, просто начинаю изучать питон и получаю некоторые проблемы. Я сделал код с выражением if. Он должен работать, но он не работает. Кто-нибудь может это исправить и сказать мне, что я сделал неправильно?

x= raw_input("Enter your name: ") y= raw_input("Enter your grade: ") print(y) if y>=50 and y<=100: print("Good input") else: print ("Invaild input") 

Он всегда печатает недопустимый ввод, спасибо!

4 Solutions collect form web for “Проблема с if в python”

raw_input() возвращает строку, но вы сравниваете x и y с целыми числами.

Поверните y в целое число перед сравнением:

 y = int(y) if y >= 50 and y <= 100: 

Вы можете немного упростить свое сравнение с цепочкой, позволяя вам встроить вызов int() :

 if 50 <= int(y) <= 100: 

Вы должны преобразовать ввод в целое число, поместив его в int :

 x= raw_input("Enter your name: ") ################ y= int(raw_input("Enter your grade: ")) ################ print(y) if y>=50 and y<=100: print("Good input") else: print ("Invaild input") 

Помните, что raw_input всегда возвращает строку. Итак, в вашем if-statement вы сравниваете строку с целыми числами. Вот почему это не работает.

Собственно, всякий раз, когда мне нужно печатать одно сообщение, мне нравится помещать его в одну строку (если, конечно, сообщения не длинны):

 print("Good input" if 50 <= y <= 100 else "Invaild input") 

Создание целого блока if-else кажется здесь немного переполненным.

raw_input() ожидает ввода пользователем данных, она аналогична функции scanf() в C. Но данные, которые вы вводите, хранятся в виде строки, поэтому нам нужно преобразовать в нашу указанную форму, такую ​​как integer, float и т. д.

Пример: y = raw_input("Enter data");

для преобразования данных в целые числа нам нужно использовать

 y = int(y) 

аналогичным образом мы можем преобразовать в разные типы данных

Вы преобразовали его в int . raw_input дает вам строку.

 x= raw_input("Enter your name: ") y= raw_input("Enter your grade: ") print(y) if 50 <= int(y) <= 100: print("Good input") else: print ("Invaild input") 

Но что, если пользователь не вводит число, тогда вам нужно добавить блок Try-Except:

 x = raw_input("Enter your name: ") y = raw_input("Enter your grade: ") print(y) try: if 50 <= int(y) <= 100: print("Good input") else: print ("Invaild input") except ValueError: print "You did not enter a number for your grade" 
  • Python: «вырывание» выражения if внутри цикла for
  • Лучше «попробовать» что-нибудь и поймать исключение или проверить, возможно ли его первым избежать исключения?
  • Есть ли лучший способ написать эту «if» логическую оценку?
  • Python: что делает полуколона?
  • Python повторяет два файла за строкой в ​​одно и то же время
  • Оператор if-else if не работает должным образом
  • if loop: x не в VS, а не x в
  • Добавьте цикл, пока пользователь не введет правильный ответ?
  • Python - лучший язык программирования в мире.