输入键为输入时停止的功能

时间:2017-10-08 19:56:01

标签: python-3.x function

我正在尝试编写一个函数,稍后将在我的程序中调用,这现在并不重要。第一步是在用户返回之前提示用户输入的功能。它也只允许一次输入一个字符,我已经弄清楚但没有遇到麻烦,因为它只会在只提供一个字符时才会循环。 例如,现在如果输入'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())    

1 个答案:

答案 0 :(得分:1)

您似乎与returnbreakcontinue陈述混淆了。 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.')