Python通过函数发送每个字符?
所以我有一个任务,我需要请求用户输入。用户输入的每个字母都将返回与北约字母表等效的字母。e、 g.F=“狐步舞”。该输入通过一个函数获得返回值。我在函数中还有几个IF语句用于特定字符,例如9=“niner”、-=“Dash”,任何其他数字/字符都只返回该字符 我遇到的问题是,此时只允许输入一个字符。如果我尝试输入多个字符,则会出现错误“typeerror ord()需要一个字符,但找到了字符串长度”。我不能根据任务更改ord声明。因为它给出了北约字母表等价物的正确计算Python通过函数发送每个字符?,python,function,loops,Python,Function,Loops,所以我有一个任务,我需要请求用户输入。用户输入的每个字母都将返回与北约字母表等效的字母。e、 g.F=“狐步舞”。该输入通过一个函数获得返回值。我在函数中还有几个IF语句用于特定字符,例如9=“niner”、-=“Dash”,任何其他数字/字符都只返回该字符 我遇到的问题是,此时只允许输入一个字符。如果我尝试输入多个字符,则会出现错误“typeerror ord()需要一个字符,但找到了字符串长度”。我不能根据任务更改ord声明。因为它给出了北约字母表等价物的正确计算 def main():
def main():
char = input("Enter license plate tag: ")
charToWord(char)
def charToWord(char):
nato = ["Alpha","Beta","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliett","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-Ray","Yankee","Zulu" ]
work =''
charNum = ord(char) - 65
word = nato[charNum]
if char.isalpha():
print(word)
if char == "9":
print("Niner")
if char == "-":
print("Dash")
else:
print(char)
return word
main()
所以我认为我需要在我的主函数中输入一个For循环?为了让它通过charToWord函数传递多个字符?然而,我不确定如何构建它。
有什么建议吗?
多谢各位 您可以使用
map
执行以下操作:
def charToWord(char):
nato = ["Alpha","Beta","Charlie","Delta","Echo","Foxtrot","Golf","Hotel","India","Juliett","Kilo","Lima","Mike","November","Oscar","Papa","Quebec","Romeo","Sierra","Tango","Uniform","Victor","Whiskey","X-Ray","Yankee","Zulu" ]
decode = {w[0]: w for w in nato}
decode["9"] = "Niner"
decode["-"] = "Dash"
return decode.get(char, char)
# ...
list(map(charToWord, "ABC9-9G"))
# ['Alpha', 'Beta', 'Charlie', 'Niner', 'Dash', 'Niner', 'Golf']
或者您可以将main()重新构造为: -
for语句用于迭代序列元素(如字符串、元组或列表)或其他iterable对象:
string是一个序列,因此可以使用
def main():
userInput = input("Enter license plate tag: ")
for char in userInput:
charToWord(char)