#python
#python
Вопрос:
В программе мне нужно ввести целое число и строку. итак, я думаю str
, можно ввести целое число и английский алфавит, но если я использую str
и печатаю 1
, 2
он также отображает Unknown [{x}]!
def main():
x=str(input("This is input "))
if x==1:
print("this x1")
elif x==2:
print("this is x2")
else:
print(f"Unknown [{x}]!n") #display user wrong input
main()
Комментарии:
1. Возможно, вы захотите использовать
x == '1'
. Обратите внимание на кавычки вокруг числа2. Вашими собственными словами, когда вы пишете
str(input("This is input "))
, что, по вашему мнению, делаетstr
часть? По вашим собственным словам, что такое строка? По вашим собственным словам, вы ожидаете, что сможете сравнить строку с целым числом и они окажутся равными? Почему или почему нет?3.
x
является строкой, поэтомуx == 1
иx == 2
всегда будетFalse
. Вероятно, вы хотите преобразоватьx
вint
. Но если вы оставите его в виде строки, тогда вам следует сравнивать его со строками, а не с числами.
Ответ №1:
попробуйте это:
def main():
x = str(input("This is input "))
if x== '1':
print("this x1")
elif x== '2':
print("this is x2")
else:
print("Unknown [{x}]!nn") #display user wrong input
main()
main()
начиная с its, str должен иметь одинарные или двойные кавычки при сравнении.
Ответ №2:
Эти проверки if проверяют, является ли ввод x целым числом
if x==1:
print("this x1")
elif x==2:
print("this is x2")
Так что это всегда будет false, потому что, если вы введете 1 или 2, вы получите обратно:
- Делает ‘1’ (ввод) == 1 (False строка, не равная Int)
- Выполняет ли ‘2’ (ввод) == 2 (False ^ то же, что и выше)
Если у вас есть какие-либо сомнения с типами при тестировании, попробуйте распечатать тип при отладке 🙂
print(type(x))
Поместите кавычки вокруг 1 и 2 в операторах if, и это должно работать для входов 1 и 2 🙂
if x == '1':
print("this x1")
elif x == '2':
print("this is x2")
Ответ №3:
В вашем коде есть некоторые ошибки, которые я написал все из них:
- Как вы хотите преобразовать
input
string
, так что нет необходимости использоватьstr
функцию, потомуinput
что функция возвращаетstring
значение по умолчанию. Вы можете проверить это с помощьюprint(type(x))
statement . 1
и2
естьinteger
, нетstring
, поэтомуelse
выполняется только часть. Вы должны изменить их на'1'
and'2'
.
Итак, ваш правильный код должен выглядеть следующим образом:
def main():
x=input("This is input ")
if x == '1':
print("this x1")
elif x == '2':
print("this is x2")
else:
print(f"Unknown [{x}]!n") #display user wrong input
main()
main()