Я испытываю очень странную проблему в Python. Эти два, казалось, не помогло:Невозможно сравнить строки ввода в Python 3.2
Validating user input strings in Python и fastest way to compare strings in python
Я написал следующую небольшую программу, test.py:
import sys
while True:
print("\n")
print("Type exit to exit: ")
inputvar = str(input())
print("Input: "+inputvar)
if inputvar == 'exit':
print("Exiting!")
sys.exit("\n\nProgram quit.")
else:
print("Still here")
Текущая версия не кажется, чтобы выйти с exit
, 'exit'
или "exit"
. Использование input()
вместо str(input())
, похоже, не имеет значения, и использование is
или in
вместо ==
также не имеет значения.
Я использую Python 3.2 на Windows 7.
Works для меня в Python 3 точно как отправлено. –
'input()' уже возвращает строку, поэтому 'str (input())' не будет иметь никакого значения. 'is' сравнивает * identity *, а не * равенство *, поэтому это плохой выбор для сравнения строк; '==' правильно. Если вы говорите, что '' exit '! =' Exit'' в вашем коде, у вас есть серьезная проблема; вы уверены, что не указали какое-то белое пространство? Попробуйте 'inputvar.strip()' или 'print (repr (inputvar))', чтобы посмотреть, что происходит. – jonrsharpe
Попробуйте добавить 'inputvar.strip()' на всякий случай, если по какой-то причине есть пробелы в пробелах. – ilent2