鱼C论坛

 找回密码
 立即注册
查看: 3251|回复: 13

[已解决]多个if和else组合的问题

[复制链接]
发表于 2023-1-12 11:44:52 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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.吗?
最佳答案
2023-1-12 11:46:59
因为前面的 if 语句跟后面的 if 语句不是同一个语句,所以后面的 if 语句也会执行,

因为不满足 name == 'Marry' 所以执行了 else,

你要用 elif
print ("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.")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2023-1-12 11:46:59 | 显示全部楼层    本楼为最佳答案   
因为前面的 if 语句跟后面的 if 语句不是同一个语句,所以后面的 if 语句也会执行,

因为不满足 name == 'Marry' 所以执行了 else,

你要用 elif
print ("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.")
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 2 反对 0

使用道具 举报

发表于 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!")   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-12 13:08:04 From FishC Mobile | 显示全部楼层
无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了

再先说说我的改法

if name == "Bob" or name == "Mary":
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 13:23:57 | 显示全部楼层
qq1151985918 发表于 2023-1-12 13:08
if name == "Bob" or name == "Mary":

感谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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!" )   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 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!")   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 16:50:40 | 显示全部楼层
本帖最后由 isdkz 于 2023-1-12 16:54 编辑


你写成一行得了
print(f"Hi {name}!" if (name :=  input("What's your name?")) in ["Bob", "Mary"] else "I don't know your name!" )   
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-12 16:52:37 | 显示全部楼层
别炫技了,还是得考虑新人的能力。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2023-1-12 17:04:32 | 显示全部楼层
suchocolate 发表于 2023-1-12 16:52
别炫技了,还是得考虑新人的能力。

我是在学习,是在你的基础上修改的,哈哈,做个学习记录,因为我也是新人
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-1-12 17:05:59 | 显示全部楼层
isdkz 发表于 2023-1-12 16:50
你写成一行得了

厉害!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-28 18:42:25 | 显示全部楼层
无理想的闲鱼 发表于 2023-1-12 12:50
楼上的bro已经说清楚了这个问题所在,我就不赘述了

再先说说我的改法

太棒了,和我想得一样
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-2-28 19:18:21 | 显示全部楼层
isdkz 发表于 2023-1-12 16:50
你写成一行得了

技术程度:+10     代码可读性:-9999999999999
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2023-3-2 06:01:59 | 显示全部楼层
输入BOb,
会打印
Hi Bob.
I don't know your name.  你输入的 BOb 是不是也写错了   大小写也是一个问题
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-9-24 09:22

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表