多个if和else组合的问题
print ("What's your name?")name = input()
if name == 'Bob':
print("Hi Bob.")
if name == 'Mary':
print("Hi Mary.")
else:
print("I don't know your name.")
输入BOb,
会打印
Hi Bob.
I don't know your name.
输入Mary
只会打印Hi Mary.
为什么输入Bob 会打印I don't know your name.???不应该只打印 Hi Bob.吗?
因为前面的 if 语句跟后面的 if 语句不是同一个语句,所以后面的 if 语句也会执行,
因为不满足 name == 'Marry' 所以执行了 else,
你要用 elifprint ("What's your name?")
name = input()
if name == 'Bob':
print("Hi Bob.")
elif name == 'Mary':
print("Hi Mary.")
else:
print("I don't know your name.") 本帖最后由 无理想的闲鱼 于 2023-1-12 13:23 编辑
楼上的bro已经说清楚了这个问题所在,我就不赘述了
再先说说我的改法
name = input("What's your name?")
if name == "Bob" or name == "Mary":
print(f"Hi {name}!")
else:
print("I don't know your name!")
无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了
再先说说我的改法
if name == "Bob" or name == "Mary": qq1151985918 发表于 2023-1-12 13:08
if name == "Bob" or name == "Mary":
感谢{:10_303:} 本帖最后由 chinajz 于 2023-1-12 16:32 编辑
isdkz 发表于 2023-1-12 11:46
因为前面的 if 语句跟后面的 if 语句不是同一个语句,所以后面的 if 语句也会执行,
因为不满足 name == ...
name = input("What's your name?")
print(f"Hi {name}!" if name in ["Bob", "Mary"] else "I don't know your name!" ) name = input("What's your name?")
if name in ["Bob", "Mary"]:
print(f"Hi {name}!")
else:
print("I don't know your name!")
本帖最后由 isdkz 于 2023-1-12 16:54 编辑
chinajz 发表于 2023-1-12 16:13
你写成一行得了print(f"Hi {name}!" if (name :=input("What's your name?")) in ["Bob", "Mary"] else "I don't know your name!" ) 别炫技了,还是得考虑新人的能力。{:10_254:} suchocolate 发表于 2023-1-12 16:52
别炫技了,还是得考虑新人的能力。
我是在学习,是在你的基础上修改的,哈哈,做个学习记录,因为我也是新人 isdkz 发表于 2023-1-12 16:50
你写成一行得了
厉害! 无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了
再先说说我的改法
太棒了,和我想得一样 isdkz 发表于 2023-1-12 16:50
你写成一行得了
技术程度:+10 代码可读性:-9999999999999 输入BOb,
会打印
Hi Bob.
I don't know your name.你输入的 BOb 是不是也写错了 大小写也是一个问题
页:
[1]