【问题标题】:Python appending a list and stopping itPython附加一个列表并停止它
【发布时间】:2017-04-06 17:38:39
【问题描述】:

我必须使用 append 方法从用户那里获取信息,但是我只假设从用户那里获取 10 行信息,而不是询问他们是否有另一组信息要输入。谁能告诉我如何在不要求用户停止的情况下停止 list_append ?

以下是我在python中的代码。

    #set limit
    num_grades = 10

    def main():
       #making of the list
       grades = [0] * num_grades

       #hold the index
       index = 0

       #ask the user for the info
       print('Please enter the final grades for 10 students: ')

       #put the info into the list with a loop 
      while index < num_grades:
        grade = input('Enter a grade: ')
        grades.append(grade)
   main()

【问题讨论】:

  • index 始终为零。
  • 在while循环中使用增量和条件检查。

标签: python list append


【解决方案1】:

您给定的代码只缺少一件事:您忘记在每次循环中增加索引。

使用 for 循环做得更好:

for index in range(num_grades):
  grade = input('Enter a grade: ')
  grades.append(grade)

【讨论】:

    【解决方案2】:

    您的问题是您忘记在您创建的while 循环内增加index,因此它始终为零。

    只需在循环中添加 index += 1 行即可解决您的问题。

    正如@Prune 所说,for 循环更适合这种情况。

    【讨论】:

      【解决方案3】:

      这种事情很容易被 for 循环处理。这是您编辑的代码:

      num_grades = 10
      
      def main():
         #making of the list
         grades = []
      
         #ask the user for the info
         print('Please enter the final grades for 10 students: ')
      
         #put the info into the list with a loop 
         for i in range(num_grades):
            grade = input('Enter a grade: ')
            grades.append(grade)
      main()
      

      【讨论】:

        【解决方案4】:

        正如@Wintro 所提到的,问题在于您忘记在 while 循环内增加索引。 所以工作解决方案如下:

        num_grades = 10
        
        def main():
            #making of the list
            grades = [0] * num_grades
        
            #hold the index
            index = 0
        
            #ask the user for the info
            print('Please enter the final grades for 10 students: ')
        
            #put the info into the list with a loop 
            while index < num_grades:
                grade = input('Enter a grade: ')
                grades.append(grade)
                index += 1
        
        main()
        

        【讨论】:

        • 谢谢 我无法获得平均、高等级和低等级。我的程序无法使用以下代码,它需要用户输入的每个信息中的最高和最低 num_grades = 10 intcount = 0 def main(): Grades = [] print('请输入 10 名学生的最终成绩:') #将信息放入列表中,循环for i in range(num_grades):grade = input('输入等级:')grades.append(grade) print('Maximum Grade:', max(grades)) print( '最低成绩:', min(grades))
        • (1) 这是一个单独的问题;请作为一个单独的问题发布。 (2) 不要在 cmets 中发布代码;将其编辑到问题中(或到达那里时回答)。
        猜你喜欢
        • 2016-07-08
        • 2011-10-14
        • 1970-01-01
        • 1970-01-01
        • 2017-11-22
        • 2023-03-21
        • 1970-01-01
        • 1970-01-01
        • 2020-04-25
        相关资源
        最近更新 更多