py中 if 用==比较字符串出现错误

py中 if 用==比较字符串出现错误

记录学习Python遇到的问题。
if 语句里使用 == 双等号来判断字符串是否相等,发现在第一个判断中始终为 Ture。如下:

inStr = 'K'

if inStr == 'N' or 'n':
    print('N/n')
elif inStr == 'K' or 'k':
    print('K/k')
else:
    print('未找到!')

运行结果:

>>> N/n
>>> 

后来通过各种尝试,发现是吃了其他编程语言的亏。

正确解法(1)

inStr = 'K'

if inStr == 'N' or inStr == 'n':
    print('N/n')
elif inStr == 'K' or inStr == 'k':
    print('K/k')
else:
    print('未找到!')

正确解法(2)

inStr = 'K'

if inStr == ('N' or 'n'):
    print('N/n')
elif inStr == ('K' or 'k'):
    print('K/k')
else:
    print('未找到!')
>>> K/k
>>> 

**

推荐使用解法一

因为是在结合 input 输入的字符串用与 if 判断时,只有解法一是可行的,解法二失效(即错误)。

inStr = input('请输入字母:')

if inStr == ('N' or 'n'):
    print('N/n')
elif inStr == ('K' or 'k'):
    print('K/k')
else:
    print('未找到!')

结果

>>> 请输入字母:k
未找到!
>>> 

不妥之处,敬请斧正。希望和大家一起交流学习!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值