total = 0
gradeCounter = 0
numbers = []
grade = input("Enter grade, -1 to end:") # get one grade
grade = int(grade) # convert string to an integer
while grade != -1:
total = total + grade
gradeCounter = gradeCounter + 1
grade = input( "Enter grade, -1 to end: " )
grade = int( grade )
if gradeCounter != 0:
average = float( total ) / gradeCounter
print('Largest is {}, smallest is {}'.format(max(numbers), min(numbers)))
print ("Class average is", average)
如果有人能修复我的编码,我将不胜感激。我试图找到一种简单的方法来打印用户输入的最低和最高整数。我所发现的并不工作我怀疑它是因为我使用的是Python3 +。我希望它能够适应我已经放置的编码,但是我使用的代码是不能正常工作的。
我试图找到代码,所以我的程序(用户放入学校成绩)发现avarge(done)最低和最高并打印出来..最低和最高位是我能做的&#39 ;做。 -
答案 0 :(得分:1)
您应该将grade
添加到numbers
列表中,如下所示:numbers.append(grade)
否则您的列表为空。
答案 1 :(得分:1)
你错过了这些行
if grade != -1:
numbers.append(grade)
在grade = int(grade)
之后。这会将等级添加到列表numbers
。
"Largest is %i, smallest is %i" % (max(numbers), min(numbers))
sum
来汇总列表中的整数#!/usr/bin/env python
),Linux用户可以直接执行你的脚本:./yourscript.py
而不是python yourscript.py
。我宁愿写这样的代码:
#!/usr/bin/env python
def get_grades():
"""Return a list of grades."""
numbers = []
while True:
grade = int(input("Enter grade, -1 to end: "))
if grade != -1:
numbers.append(grade)
else:
return numbers
if __name__ == '__main__':
grades = get_grades()
if len(grades) != 0:
average = float(sum(grades)) / len(grades)
print('Largest is %i, smallest is %i.' % (max(grades), min(grades)))
print("Class average is %0.2f." % average)
您可能拥有以下内容:
$ python test.py
Enter grade, -1 to end:1
Enter grade, -1 to end: 2
Enter grade, -1 to end: 3
Enter grade, -1 to end: -1
Traceback (most recent call last):
File "test.py", line 15, in <module>
print('Largest is {}, smallest is {}'.format(max(numbers), min(numbers)))
ValueError: max() arg is an empty sequence
现在您应首先查找行号。这个在line 15
中说的是错误的。这是:
print('Largest is {}, smallest is {}'.format(max(numbers), min(numbers)))
现在你必须进一步调查。究竟出了什么问题?这条线路可能出现什么问题?
现在你读了
ValueError: max() arg is an empty sequence
这应该看起来很奇怪,因为您选中了gradeCounter != 0
。接下来,您将打印max参数的内容。这是空的,因此添加到列表numbers
不起作用。
答案 2 :(得分:0)
我认为更快的方法是在一些列表中添加所有用户输入数据,然后对该列表进行排序
>>> list = [3, 1, 9, 8, 6]
>>> sorted(list)
[1, 3, 6, 8, 9]
>>> sorted(list, reverse = True)
[9, 8, 6, 3, 1]
>>> list
[3, 1, 9, 8, 6]
然后你可以打印列表[0]并列出[len(list)-1]