【问题标题】:How to ask user for loop amount and then changing the question asked如何向用户询问循环数量,然后更改询问的问题
【发布时间】:2021-05-17 16:53:31
【问题描述】:

所以我一直在努力解决如何请求循环输入的问题。因此,当用户输入说 5 时,程序将要求用户分别输入 5 次数据。当我浏览时,我发现了一个解决了这个问题的程序,我已经对其进行了调整以适应我的问题,这就是我到目前为止所得到的:

def doSomething():   
    x = int(input ("Enter how many words?\n"))
    for count in range (x):
        word1 = input ("Enter word1:\n")

doSomething()

程序的这一部分解决了我最初的问题,即询问用户输入的次数与他们所说的一样多,但我的问题是如何更改程序,以便当用户输入 x = 5 然后程序将要求用户输入 Enter Word 1 并且在用户输入单词后程序要求输入单词 2 Enter Word 2 以此类推直到它询问用户要求的字数。所以直接我如何将 Enter Word 1 更改为 Enter Word 2Enter Word 3 因为程序循环选择的次数用户。

【问题讨论】:

  • 查看 Python 中的字符串格式。
  • 不要离开感谢 cmets,请对您认为有价值的答案进行投票。另见help.
  • 我不能投票我需要更多的声望,就是这么说的

标签: python


【解决方案1】:

你可以只打印每次的数字:

def doSomething():
    x = int(input ("Enter how many words?\n"))
    for count in range (x):
        word1 = input (f"Enter word{count+1}:\n")

顺便说一句,您需要 python 3.6 或更高版本。

【讨论】:

  • f"string{variable}" 结构是新的,但肯定有将变量插入字符串的机制,可以追溯到 Python 1.0。
【解决方案2】:

您可以使用字符串或连接的格式。
在您要求输入的循环中,您可以执行以下任何操作

  • input("Enter word " + (count+1) + ":\n") - 使用字符串连接
  • input("Enter word {0}:\n".format(count+1)) - 使用 .format() 字符串
  • input(f"Enter word {count+1}:\n") - 使用 f 字符串。

仅供参考,我将每个 count 加 1,因为 range 函数从 0 开始并以 n-1 结束。添加一个将允许从 1 到 n 的范围。

【讨论】:

    【解决方案3】:

    您应该查找串联。除此之外,看看 f 字符串。这些是非常有效的连接方式

    for count in range(1,x+1):
        word1 = input (f"Enter word{count}:\n")
    

    【讨论】:

      【解决方案4】:

      我们可以使用 f 字符串来实现所需的格式。

      def doSomething():
          x = int(input ("Enter how many words?\n"))
          for count in range (1, x+1):  # count starts from 1 and goes till x
              word = input (f"Enter word{count}:\n")
      

      【讨论】:

        【解决方案5】:

        您可以使用这样的循环。另外,请务必检查用户输入的第一个数字是否确实是数字。

        while True:
            try:
                number_of_words = int(input('Enter the number of words: '))
                break
            except ValueError:
                print('You must enter a number')
        
        words = []
        for word in range(number_of_words):
            words.append(input(f'Enter word {word + 1}: '))
        print(words)
        

        【讨论】:

          【解决方案6】:

          您应该使用一个列表变量,而不是使用不同名称的五个变量。

          word = []
          for count in range (x):
                 word[count] = input (f"Enter word[{count}]: ")
          

          现在,word 将包含类似内容

          ['first', 'second', 'third', 'fourth', 'fifth']
          

          注意索引是从零开始的,所以第一个字符串'first'word[0]'second'word[1]。您可以遍历range(1, x+1),但您可能不应该这样做;为了屏蔽用户的“计算机”编号,您可以向用户显示count+1

          要求用户提前决定提供多少输入的设计是不必要且相当麻烦的;更好的设计是让他们向不断增长的列表提供输入,直到他们通过提供空输入或在 GUI 中通过单击单独的按钮单独指示他们想要停止。

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 2011-10-19
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2016-07-28
            相关资源
            最近更新 更多