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
未找到!
>>>
不妥之处,敬请斧正。希望和大家一起交流学习!