2017-05-21 52 views
2
if(name == "Lu") or (age == 26): 
print("Hello Lu") 
elif(name == "lu" or age != 26): 
print("Welcome back") 

else: 
print("Hello") 

在我对orif语句的理解,如果我不写“吕氏春秋”,而是因为从我写它应打印“你好鲁”的26号了解如果第一个变量是假的,它将直接指向第二个变量,如果这是真的,那么它将打印代码。建议需要对`或`功能

但是,当我运行我的代码,并写一个不同于卢的名字,但写入正确的数字26时,它不会打印“Hello Lu”而是打印“欢迎回来”。

+0

你如何解析输入? “26”与**不等于“26”...... –

+0

你在哪里写这些数字? –

+0

即时通讯使用一个叫做pycharm的程序 –

回答

0

您应该检查字符串or (age == '26'),除非年龄已从字符串输入转换为数字。

+0

我应该把数字26变成一个整数以使其起作用吗? –

+0

如果您打算对其进行某种数学运算,则只需将其转换为数字即可。如果你只想检查他们输入的内容,那么字符串是好的。请注意,如果用户输入的字符串转换为数字,则可能会导致错误,如果他们输入的内容类似'Twenty Six' –

1

你的代码工作,你认为它应该例如工作,如果你把用户输入和记忆,以强制转换age为int,因为你想将它与26比较不"26"

name = input("Enter your name:") 
age = int(input("Enter your age:")) 

if(name == "Lu") or (age == 26): 
    print("Hello Lu") 
elif(name == "lu" or age != 26): 
    print("Welcome back") 
else: 
    print("Hello") 

例比"Lu""lu"age其他名称使用的东西等于26

Enter your name: Ku 
Enter your age: 26 
Hello Lu 

正如你可以看到它不打印"Welcome Back"而是"Hello Lu"像你认为应该:)

玩弄其他投入here!

+1

您可能只是想澄清一下,您是从字符串类型转换为int类型,更适合newbee;) –

+0

这是整个代码。我忘了把代码放在top name = input(“输入你的名字:”)上。 age = input \t打印( “你好鲁”) ELIF(名称== “吕氏春秋” 或年龄== 26): \t打印( “欢迎回来”) \t 其他: \t打印( “你好”) –

+0

我即使我输入错误的名称,但在26中键入它仍然会显示为“你好Lu”,但是当我键入26时,它显示“欢迎回来”,即使我把代码26应该完全等于26 –