我正在尝试编写一个函数,稍后将在我的程序中调用,这现在并不重要。第一步是在用户返回之前提示用户输入的功能。它也只允许一次输入一个字符,我已经弄清楚但没有遇到麻烦,因为它只会在只提供一个字符时才会循环。 例如,现在如果输入'hi',它将提示用户您一次只能输入一个字符,但是如果输入'h'则不会再请求并且将结束循环。
def get_ch():
string = ''
ch = input('Enter a character or press the Return key to finish: ')
while len(ch) == 1:
return ch
string += ch
ch = input('Enter a character or press the Return key to finish: ')
if ch == '':
break
while len(ch) > 1:
print("Invalid input, please try again.")
ch = input('Enter a character or press the Return key to finish: ')
print(get_ch())
答案 0 :(得分:1)
您似乎与return
,break
和continue
陈述混淆了。 return ch
将结束函数的执行,这意味着第一个while
只能执行一次。
下面的函数应该不断循环并构建一个字符串,直到按下回车键而没有输入。
def get_ch():
string = ''
while (True):
ch = input('Enter a character or press the Return key to finish: ')
if (len(ch) == 1): # single char inputed
string += ch
continue
if (len(ch) == 0): # "enter" pressed with no input
return string
# if (len(ch) > 1)
print('Invalid input, please try again.')