【发布时间】:2020-01-28 04:35:20
【问题描述】:
我正在尝试编写一个代码,让用户输入一个字母并返回数字,就像我们的手机键盘一样。我的工作是:
phone_letters = [" ", "", "ABC", "DEF", "GHI", "JKL", "MNO", "PQRS", "TUV", "WXYZ"]
def let_to_num():
letter =input("Enter: ")
key = 0
while key < 10:
if letter.upper() in phone_letters[key]:
return key
else:
return "Not found"
print(let_to_num())
但它不起作用,正确答案应该是:
while key < 10:
if letter.upper() in phone_letters[key]:
return key
else:
key += 1
return "Not found"
我的理解是“IF”输入不在 phone_letter 中,然后我们跳转到 else 并返回“未找到”。 “IF”输入可以在phone_letter中找到,然后返回“key”并结束。
我不明白为什么放在 else 语句中的 (return "Not found") 会为每个输入返回 "Not found"? “key += 1”的作用是什么
【问题讨论】:
-
key+=1与key = key + 1的效果相同。现在剩下的代码更有意义了吗? -
return "Not found"将立即退出您的函数。key没有被提升一,只有当letter.upper()在phone_letters[0]中时才进行验证,仅此而已。
标签: python if-statement return-value