【发布时间】:2019-10-20 18:33:18
【问题描述】:
我目前正在尝试使用 if 语句来检查文件中设置的分数值,该文件之前被读取为 par 值。我目前不确定如何将数据作为特定整数读取,因为这些值之前在赋值的早期部分已转换为字符串值。我最初想从哪里开始?
我目前已经设法让程序读取最初在开始部分制作的 .txt 文件,但是,我目前不确定如何处理这个初始程序,将最终数值转换回正常值,我也不确定我知道如何让它正确循环以检查每个特定记录的最终数据。
这是程序从中提取的数据:
Andrew,Marks,11.2,72.0
Betty,Franks,12.8,89.0
Connie,William,14.6,92.0
Donny,Ventura,9.9,78.0
Ernie,Turner,10.1,81.0
Fred,Smythe,8.1,75.0
Greg,Tucker,7.2,72.0
Henry,Zebulon,8.3,83.0
Ian,Fleming,4.2,72.0
Jan,Holden,7.7,84.0
Kit,Possum,7.9,79.0
Landy,Bern,10.3,93.0
Mona,Docker,11.3,98.0
Kevin,Niles,7.1,80.0
Pam,Stiles,10.9,87.0
Russ,Hunt,5.6,73.0
旨在从文件中提取数据并在 if 语句中运行的程序是这样的:
infile = open('golf.txt', 'r')
golf = infile.readlines()
for elements in golf:
int(golf[elements[3]])
if golf[elements[3]] > 80:
print(elements, 'Score: Over Par')
elif golf[elements[3]] == 80:
print(elements, 'Score: At Par')
elif golf[elements[3]] < 80:
print(elements, 'Score: Under Par')
infile.close()
我希望它会打印各个列表,同时说明分数是“超过标准杆”、“低于标准杆”或“达到标准杆”,具体取决于外部列表中每个列表中的最终值,但是我收到了而是这个错误:
Traceback (most recent call last):
File "C:/Users/joelc/PycharmProjects/Project2/File/JoelLab5Pt2.py", line 7, in <module>
int(golf[elements[3]])
TypeError: list indices must be integers or slices, not str
【问题讨论】:
-
不要使用 Golf[elements[3]]。从 e=int(elements[3]) 开始,然后继续 if e > 80: etc
-
不能直接将字符串转成int,特别是如果字符串有float值,先转成float再转成int。
-
你期望
elements在for elements in golf:中包含什么? -
您的问题似乎是列表的处理,而不是类型转换。你认为
golf[elements[3]]是什么意思?
标签: python arrays file if-statement