这是一个Python作业问题,要求用户输入他们在赛道上奔跑的次数,然后使用For Loop来提示他们输入每一圈的时间。循环结束后,程序将显示最快,最慢和平均单圈时间。
仅使用For Loop即可轻松计算平均值,因为我只需要用'+ ='累加单圈时间,然后除以循环数即可,但不确定如何使用For Loop存储单个值存储和检索最大(最慢)和最小(最快)值。
我尝试使用列表执行此操作:
lap_time = float(input('Enter the lap times separated by space'))
time = lap_time.separator()
fastest = min[time]
slower = max[time]
但是,当我尝试“平均时间”时,它给出了一个错误,指出列表值不是数字。
p.s。还尝试了导入统计信息以使用均值函数,但出现了相同的错误。
非常感谢有人可以给我一些有关此问题的指导。谢谢。
答案 0 :(得分:0)
不是最明确的答案,但是它可以帮助您了解要做什么,这是最重要的,在这里(编辑:因为这是家庭作业)
timeMAX = 0#slowest
timeMIN = 0#fastest
for #yourForLoop
if sys.stdin.readline() > timeMAX:
timeMAX = sys.stdin.readline()
if sys.stdin.readline() < timeMIN:
timeMIN = sys.stdin.readline()
为了获得更好的可读性,我将使用time=sys.stdin.readline()
。请记住要确保用户的答案可以小于零或字符。 GL!
答案 1 :(得分:0)
您可以将每个值映射为拆分后的浮点数
lap_time = list(map(float, input('Enter the lap times separated by space : ').split()))
print(lap_time)
fastest = max(lap_time)
slower = min(lap_time)
average = sum(lap_time) / len(lap_time)
print('Fastest:{} ,Slowest :{} ,Average:{}'.format(fastest,slower,average))
输入:-
Enter the lap times separated by space :
10 20 30 40 50
输出:-
[10.0, 20.0, 30.0, 40.0, 50.0]
Fastest:50.0 ,Slowest :10.0 , Average:30.0
答案 2 :(得分:0)
尝试使用(我也做average
):
lap_time = map(float, input('Enter the lap times separated by space').split())
fastest = min(lap_time)
slower = max(lap_time)
average = sum(lap_time) / len(lap_time)
答案 3 :(得分:0)
代码中的某些错误
string.split
将字符串拆分为空格,为此我们没有名为separator
的函数max
和min
是将列表作为参数的函数,例如min(arr)
或max(arr)
sum(arr)
取列表的总和,然后除以列表中的项数来计算平均值。重构后的代码将是
#Get input as string
s = input('Enter the lap times separated by space')
lap_time = []
#Split string on whitespace, convert each string to float and save to laptime string
for item in s.split():
lap_time.append(float(item))
#Calculate fastest and slowest by min and max function
fastest = min(lap_time)
slowest = max(lap_time)
#Calculate average by divinding sum of lap times by no of items in list
average = sum(lap_time)/len(lap_time)
print('Fastest ', fastest)
print('Slowest ', slowest)
print('Average ', average)
输出将为
Enter the lap times separated by space1.0 2.0 3.0 4.0 5.0
Fastest 1.0
Slowest 5.0
Average 3.0
在这里请注意,我还可以减小代码的大小以使其更紧凑,但是这样可以减少初学者对代码的学习!