【问题标题】:Too Much Wait TIme等待时间太长
【发布时间】:2022-11-03 15:43:09
【问题描述】:

所以我试图使用一个过程(带参数)...我向用户询问输入并创建了一个验证函数来检查输入并查看它们是否是字符串...我检查了它但输出花费了太长时间输出。我该如何解决?

我试过了:

# Create Validate function

def validate_input(LETTER):
  while True:
    try:
      if len(LETTER) == 0:
        pass
    except:
      if len(LETTER) >= 2:
        print('Sorry, please enter a single letter')
      if LETTER.strip().isdigit():
        print('Sorry, please enter a letter')
        break

#Ask for inputs

# Create function to validate input that returns true or false. If false then ask for input again.

first_char = input('Enter first character(lower cases) or press Enter: ')

validate_input(first_char)

second_char = input('Enter second character(lower cases) or press Enter: ')

validate_input(second_char)

third_char = input('Enter third character(lower cases) or press Enter: ')

validate_input(third_char)

fourth_char = input('Enter fourth character(lower cases) or press Enter: ')

validate_input(fourth_char)

fifth_char = input('Enter fifth character(lower cases) or press Enter: ')

validate_input(fifth_char)

但结果是:

输入第一个字符(小写)或按 Enter:2

从那里开始说它必须是一个字符串需要太多时间......

先感谢您!

【问题讨论】:

  • 你的while True 循环是做什么用的?这需要很长时间(无限长),因为当输入正确时您不会从循环中中断。但同样,你为什么需要while True
  • 我建议阅读有关循环、异常、passbreak 的内容。然后你就会明白你的问题

标签: python input procedure


【解决方案1】:

python中的input()函数总是将输入作为字符串,如果你想得到整数作为输入,那么将使用以下函数=>int(input())

执行它不需要太长时间,只是代码中的一个逻辑错误;)

假设输入是"hello",所以len("hello") 是5

现在,输入进入验证函数(你的函数)首先它以无限while循环开始,没有终端条件,并开始检查条件len(LETTER) == 0是真还是假,但它不会引发任何异常,所以它赢了'不要转到实际终端条件所在的异常块(中断),以便它永远运行。

希望对你有帮助,谢谢。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-11-24
    • 2017-11-17
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多