为什么我的代码会在我编写的代码中继续返回?
def alphaToPhone(alpha):
for i in range(len(alpha)):
if i=="b" or "k" or "c":
phone="yes"
else:
phone="no"
return phone
print(alphaToPhone("23ht"))
答案 0 :(得分:7)
因为非空字符串在Python中评估为True
。您的问题的解决方案可能是以下之一
if i=="b" or i == "k" or i == "c":
或
if i in ["b", "k", "c"]:
除此之外,您正在迭代一组错误的值。将您的for
替换为
for i in alpha:
答案 1 :(得分:3)
您错过了支票
def alphaToPhone(alpha):
for i in alpha:
if i == "b" or i == "k" or i == "c":
phone="yes"
else:
phone="no"
return phone
print(alphaToPhone("23ht"))
答案 2 :(得分:2)
您的情况i=="b" or "k" or "c"
可能不是您想要的。它总是返回true,因为"k"
(和"c"
)也是如此。你想要的是:
if i=="b" or i=="k" or i=="c":
或者,更好:
if i in {"b", "c", "k"}:
答案 3 :(得分:1)
你的代码应该是这样的:
def alphaToPhone(alpha):
for ch in alpha:
if ch == "b" or ch=="k" or ch=="c":
phone="yes"
else:
phone="no"
return phone
print(alphaToPhone("23ht"))