【问题标题】:advice needed on `Or` function`Or` 函数需要的建议
【发布时间】:2017-10-21 02:31:40
【问题描述】:
if(name == "Lu") or (age == 26):
print("Hello Lu")
elif(name == "lu" or age != 26):
print("Welcome back")

else:
print("Hello")

根据我对if 语句中的or 的理解,如果我没有写“Lu”而是写了数字 26,它应该打印“Hello Lu”,因为据我了解,如果第一个变量为假,它将直接指向第二个变量,如果为真,那么它将打印代码。

但是,当我运行我的代码并编写除 Lu 之外的其他名称但写入正确的数字 26 时,它不会打印“Hello Lu”而是打印“Welcome back”。

【问题讨论】:

  • 你如何解析输入? 26 不等于'26'...
  • 你在哪里写这些数字?
  • 我正在使用一个名为 pycharm 的程序

标签: python python-3.x


【解决方案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!

【讨论】:

  • 您可能只是想澄清一下您正在从字符串类型转换为 int,对新手更友好;)
  • 这是整个代码。我忘了把代码放在最上面 name=input("请输入您的姓名:") age=input("请输入您的年龄:") if(name == "Lu" or age == 27): print("Hello Lu") elif(name == "lu" or age == 26): print("Welcome back") else: print("Hello")
  • 我想要的是即使我输入了错误的名称但输入了 26 它仍然会显示为“Hello Lu”但是当我输入 26 时它会显示“欢迎回来”而不是即使我输入26应该正好等于26的代码
  • @shash678 成功了。谢谢。我需要做的就是把数字变成整数。非常感谢
  • 我很高兴,但似乎重要的部分是@DamianChrzanowski 给出的部分
【解决方案2】:

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

【讨论】:

  • 我应该把数字 26 变成一个整数让它工作吗?
  • 如果您打算对其进行某种数学运算,则只需将其转换为数字即可。如果您只想检查他们输入的内容,那么字符串就可以了。请注意,如果用户输入“二十六”之类的内容,将用户输入的字符串转换为数字可能会导致错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-12-12
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-03-10
  • 2011-05-25
相关资源
最近更新 更多