python - 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])。宣布每场比赛或平局的获胜者。宣布获胜最多的团队。
解决方案
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
#
推荐阅读
- javascript - 运行站点时端口 80 和 5500 之间的不同错误
- algorithm - 从列表中查找不正确的对象以保存网络请求
- android - Gradle 同步错误:重复键 AdditionalClassifierArtifactsImpl
- docker - docker 容器是否有私有或共享的本地驱动器(C:\、D:\)?
- asp.net - 如何路由 IdentityUser 的值(如用户名)而不是整个对象?
- html - 当我更改我的 Css 时,它在 Html 文件中不可见
- java - 如何在java中制作嵌套结构数组?
- vue.js - 将 Vuetify 升级到版本 2 后,我的所有按钮都处于默认活动状态
- google-colaboratory - 使用 Google Colab 是否允许在一台计算机上进行多个会话?
- html - 处理 xslt 中的 Json 文本以进行 Xml 到 html 的转换