首页 > 解决方案 > Array的名单宣布获胜者和时间

问题描述

雪佛兰和福特两支不同车队的 8 场比赛时间的用户输入。宣布每场比赛的获胜者。以秒为单位显示他们获胜的时间。宣布获胜最多的球队。

我已经创建了两个团队列表,以及他们的时间。我遇到的问题是如何每次从列表中的位置中提取并宣布该个人为获胜者。我的代码无法正常运行,我认为这与我的循环设置方式有关。我也不想打印比赛时间的字符串,但我不知道如何在没有代码的情况下计算谁赢了工作。我只是在学习如何编码,所以请多多包涵。我将在我的代码中添加注释以表明我在说什么,以帮助创建更好的图片。

#Team Chevy
Chevy = [0.0] * 8
for i in range(8):
    Chevy[i] = float(input("Enter Chevy race time's: "))
    i = i + 1
for i in range(0,8):
    print("Chevy", str(i+1) + ": ", Chevy[i]) # I want to be able to remove the print function so I don't have the times showing up with the input and the print. But it messes up my winner determination when I remove it.

#Team Ford   
Ford = [0.0] * 8
for j in range(8):
    Ford[j] = float(input("Enter Ford race time's: "))
    j = j + 1
for j in range(0,8):
    print("Ford", str(j+1) + ": ", Ford[j])

#Determine winner    
if Chevy[0] > Ford[0]:
    winner = Chevy[0] - Ford[0]
    print("Ford wins by",winner,"sec")
elif Ford[0] < Chevy[0]:
    winner = Chevy[0] - Ford[0]
    print("Chevy wins by",winner,"sec")

结果

Enter Chevy race time's: 1
Enter Chevy race time's: 2
Enter Chevy race time's: 3
Enter Chevy race time's: 4
Enter Chevy race time's: 5
Enter Chevy race time's: 6
Enter Chevy race time's: 7
Enter Chevy race time's: 8
Chevy 1:  1.0
Chevy 2:  2.0
Chevy 3:  3.0
Chevy 4:  4.0
Chevy 5:  5.0
Chevy 6:  6.0
Chevy 7:  7.0
Chevy 8:  8.0

Enter Ford race time's: 9
Enter Ford race time's: 8
Enter Ford race time's: 7
Enter Ford race time's: 6
Enter Ford race time's: 5
Enter Ford race time's: 4
Enter Ford race time's: 3
Enter Ford race time's: 2
Ford 1:  9.0
Ford 2:  8.0
Ford 3:  7.0
Ford 4:  6.0
Ford 5:  5.0
Ford 6:  4.0
Ford 7:  3.0
Ford 8:  2.0

Chevy wins by 8.0 sec

只显示输入时间。显示每场比赛的获胜者(比赛 1 是雪佛兰 [0] 与福特 [0])。宣布每场比赛或平局的获胜者。宣布获胜最多的团队。

标签: pythonarrayslist

解决方案


Python 提供了几种构建列表的方法,每种方法都有它的优点,试着去研究它们。代码遵循三种方法。请注意,您并不总是需要索引“i”来遍历列表。

R = int(input("Enter the number of races: "))
#Team Chevy
Chevy = []
for c in range(R):
    Chevy.append(float(input("Enter Chevy race {} time's: ".format((c+1)))))
#
#Team Ford   
Ford = [0.0] * R
for f, F in enumerate(Ford, start=1):
    Ford[f-1] = float(input("Enter Ford race {} time's: ".format(f)))
#
#Determine winner    
k = 1
for Chevy, Ford in zip(Chevy, Ford):
    delta_time = Chevy - Ford
    if delta_time < 0 :
        print("Chevy wins race {} by {} s.".format(k, (-delta_time)))
    if delta_time > 0 :
        print("Ford wins race {} by {} s.".format(k, delta_time))
    if delta_time == 0 :
        print("The race {} was a Draw with the time of {} s.".format(k, Chevy))
    k += 1
#

推荐阅读