【问题标题】:Why my program is not taking user's input more than twice?为什么我的程序接受用户输入的次数不超过两次?
【发布时间】:2020-06-19 02:53:25
【问题描述】:

问题是:“编写一个程序,让用户输入单词,直到输入单词“quit”。显示代表所有键入字符的数字,除了最后一个单词“quit”。

在这里,我尝试在不使用 for/while 循环的情况下编写代码。我的代码是:

def num():
summ = 0
inp = input ("Enter: ")

if inp != "quit":
    for w in inp:
        summ += 1

    inp = input("Enter: ")
else:
    return (summ)

print(num())

我正在使用 Python 3.7。即使我在第 9 行接受用户输入,它仍然不会一次又一次地接受用户输入,直到用户写“退出”。我可以知道为什么这是错误的吗?我可以在不使用任何循环的情况下编写这个程序吗? 非常感谢你帮助我。

【问题讨论】:

    标签: python-3.x if-statement


    【解决方案1】:

    如果你想让你的程序像一个循环一样,你需要从你的函数中调用你的函数(递归)

    def num(summ = 0):
        inp = input ("Enter: ")
    
        if inp != "quit":
            for w in inp:
                summ += 1
    
            return num(summ) // Call the function again to continue the program
        else:
            return summ // Return the sum
    
    print(num())
    

    您还需要在每次调用中传递您的 summ 变量。

    注意:summ = 0 表示如果你不传递参数,它应该默认为 0

    希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      if 语句不是循环,因此您的内部for 循环将执行多次:the length of the first input。 你最好的最好是一个循环。在这种情况下,while 似乎很合适:

      def num():
          summ = 0
          inp = input ("Enter: ")
      
          while inp != "quit":
              for w in inp:
                  summ += 1
              inp = input("Enter: ")
          else:
              return (summ)
      
      print(num())
      

      【讨论】:

        猜你喜欢
        • 2023-01-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2020-09-26
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多