找回密码
 立即注册

扫一扫,访问微社区

QQ登录

只需一步,快速开始

查看: 225|回复: 5

[求助] 求助,使用if和or的基础问题

1

主题

1

帖子

1

积分

贫民

积分
1
wx_yYo770no 发表于 2020-7-10 19:17:42 | 显示全部楼层 |阅读模式
求问大神,我这样写系统能对love和不是love的做出反应

prompt = 'type love me'

while True:
    a = input(prompt)
    if a == 'love':
        print('love u too')
    else:
        print('fuck u beach')
        break



但是当我加入or之后不管输入什么它都只反应‘love u too’

prompt = 'type love me'

while True:
    a = input(prompt)
    if a == 'love' or 'Love':
        print('love u too')
    else:
        print('fuck u beach')
        break



回复

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
JianT 发表于 2020-7-13 17:12:38 | 显示全部楼层
'love' or 'love'  只要一个为真,则返回True,所以才会只执行 print('love u too'),是这样吗,我刚学,也不清楚
回复 支持 反对

使用道具 举报

0

主题

1

帖子

1

积分

贫民

积分
1
typ 发表于 2020-7-13 21:14:13 | 显示全部楼层
if a == 'love' or a =='Love':
回复 支持 反对

使用道具 举报

0

主题

652

帖子

652

积分

圣骑士

积分
652
sheeboard 发表于 2020-7-13 23:39:34 | 显示全部楼层
if a in ['love','Love']
回复 支持 反对

使用道具 举报

0

主题

3

帖子

3

积分

贫民

积分
3
275855523 发表于 2020-7-14 12:08:19 | 显示全部楼层
if a == 'love' or 'Love':
这一行的意思是
如果 a==love 或者 真(True) 则执行
也就是说无论如何都会执行 if a == 'love' or 'Love':下面的语句
这是因为 a == 'love' 是一个条件, 'Love'也是一个条件,第一个条件很简单你也明白,但是第二个条件'Love'的意思和直接输入True是一样的,因为字符串只要输入了,他的布尔值就是True(你可以试试if True看看是不是百分百执行就知道了)
所以正确写法应该像上面两位老哥说的那样子
if a == 'love' or a =='Love':

if a in ['love','Love']
这两种写法都是等效的
回复 支持 反对

使用道具 举报

0

主题

2

帖子

2

积分

贫民

积分
2
休尘 发表于 2020-7-16 15:28:56 | 显示全部楼层
sheeboard 发表于 2020-7-13 23:39
if a in ['love','Love']

哈哈哈 又学会了一种方法
回复 支持 反对

使用道具 举报

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

本版积分规则

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