Summerwww 发表于 2023-1-12 11:44:52

多个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.吗?

isdkz 发表于 2023-1-12 11:46:59

因为前面的 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 12:50:33

本帖最后由 无理想的闲鱼 于 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!")   

qq1151985918 发表于 2023-1-12 13:08:04

无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了

再先说说我的改法

if name == "Bob" or name == "Mary":

无理想的闲鱼 发表于 2023-1-12 13:23:57

qq1151985918 发表于 2023-1-12 13:08
if name == "Bob" or name == "Mary":

感谢{:10_303:}

chinajz 发表于 2023-1-12 16:13:38

本帖最后由 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!" )   

suchocolate 发表于 2023-1-12 16:22:05

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:50:40

本帖最后由 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!" )   

suchocolate 发表于 2023-1-12 16:52:37

别炫技了,还是得考虑新人的能力。{:10_254:}

chinajz 发表于 2023-1-12 17:04:32

suchocolate 发表于 2023-1-12 16:52
别炫技了,还是得考虑新人的能力。

我是在学习,是在你的基础上修改的,哈哈,做个学习记录,因为我也是新人

chinajz 发表于 2023-1-12 17:05:59

isdkz 发表于 2023-1-12 16:50
你写成一行得了

厉害!

2413726270 发表于 2023-2-28 18:42:25

无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了

再先说说我的改法

太棒了,和我想得一样

wyhpylc 发表于 2023-2-28 19:18:21

isdkz 发表于 2023-1-12 16:50
你写成一行得了

技术程度:+10   代码可读性:-9999999999999

ten-yeas-python 发表于 2023-3-2 06:01:59

输入BOb,
会打印
Hi Bob.
I don't know your name.你输入的 BOb 是不是也写错了   大小写也是一个问题
页: [1]
查看完整版本: 多个if和else组合的问题