Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何使用写入文件中的数据生成if语句 我现在尝试使用if语句,它将先前读取的文件中的得分值作为PAR值进行检查。我目前不确定如何将数据读取为特定整数,因为这些值以前在赋值的早期部分转换为字符串值。我最初想从哪里开始_Python_Arrays_File_If Statement - Fatal编程技术网

Python 如何使用写入文件中的数据生成if语句 我现在尝试使用if语句,它将先前读取的文件中的得分值作为PAR值进行检查。我目前不确定如何将数据读取为特定整数,因为这些值以前在赋值的早期部分转换为字符串值。我最初想从哪里开始

Python 如何使用写入文件中的数据生成if语句 我现在尝试使用if语句,它将先前读取的文件中的得分值作为PAR值进行检查。我目前不确定如何将数据读取为特定整数,因为这些值以前在赋值的早期部分转换为字符串值。我最初想从哪里开始,python,arrays,file,if-statement,Python,Arrays,File,If Statement,目前,我已设法让程序读取开始部分最初生成的.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,

目前,我已设法让程序读取开始部分最初生成的.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()
infle=open('golf.txt','r')
golf=infle.readlines()
高尔夫元素:
int(高尔夫[元素[3]])
如果高尔夫[元素[3]]>80:
打印(元素,“分数:超过标准杆”)
elif golf[元素[3]]==80:
打印(元素,'分数:标准杆')
elif高尔夫[元素[3]]<80:
打印(元素,“分数:低于标准杆”)
infle.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

回溯(最近一次呼叫最后一次):
文件“C:/Users/joelc/PycharmProjects/Project2/File/JoelLab5Pt2.py”,第7行,在
int(高尔夫[元素[3]])
TypeError:列表索引必须是整数或片,而不是str

您需要拆分每行以获得逗号分隔的值

with open('golf.txt', 'r') as infile:
    for line in infile.readlines():
        values = line.split(',')
        score = float(values[3])
        if score > 80:
            print(line, 'Score: Over Par')
        ...

使用
with
语句可以确保文件被关闭。否则,建议使用异常处理来打开和关闭文件
with
负责在控件退出with块后立即关闭文件。

您需要拆分逗号上的每一行,然后将元素3转换为浮点

infile = open('golf.txt', 'r')
for line in infile:
    elements = line.split(‘,’)
    e = float(elements[3])
    if e > 80:
        # etc
考虑使用:
  • 一旦数据进入数据框,就可以轻松计算其他指标或绘制数据
  • 给定显示的数据,以
    .csv
    格式显示,并且没有标题
  • 用于为par创建新列
  • 我不知道第三列应该是什么,所以我把它作为索引2
将熊猫作为pd导入
将numpy作为np导入
#创建数据帧
df=pd.read\u csv('test.csv',header=None,names=['first\u name','last\u name',2',score']))
名姓2分
安德鲁马克11.272.0分
贝蒂·弗兰克斯12.8 89.0
康妮·威廉14.692.0
唐尼文图拉9.9 78.0
做一个PAR柱
标准=[df['score']<80,df['score']==80,df['score']>80]
数值=[‘低于标准’、‘等于标准’、‘高于标准’]
df['par']=np.选择(标准、值)
第一名,姓氏2分
安得烈低于标准杆11.2分72
Betty Franks 12.8比89
Connie William 14.6比92
Donny Ventura 9.9比78低
#省省吧
df.to_csv('my_file.csv',index=False)

不要使用高尔夫[elements[3]]。从e=int(elements[3])开始,如果e>80:etcYou不能直接将字符串转换为int,尤其是当字符串有浮点值时,首先将其转换为float,然后再转换为int。您希望
elements
for elements in golf:
中包含什么内容?您的问题似乎是列表的处理,而不是类型转换。你认为高尔夫[元素[3]是什么意思?