在python中读取和写入文本文件时,如何计算数字的差异?
好吧,我把学习python作为一种爱好,我需要编写一个程序:查看每个学生的数据,计算学生在复试时达到最低分数所需的分数。所以我要说的是,用户通过考试所需的最低分数是85分,如果学生记录显示为80分,他们需要5分。我已经编写了文本文件,并开始了python代码,但我遇到了一个死胡同,任何帮助都将不胜感激。非常感谢 Python:在python中读取和写入文本文件时,如何计算数字的差异?,python,text-files,Python,Text Files,好吧,我把学习python作为一种爱好,我需要编写一个程序:查看每个学生的数据,计算学生在复试时达到最低分数所需的分数。所以我要说的是,用户通过考试所需的最低分数是85分,如果学生记录显示为80分,他们需要5分。我已经编写了文本文件,并开始了python代码,但我遇到了一个死胡同,任何帮助都将不胜感激。非常感谢 Python: def menu(): with open('homework.txt','r') as a_file: contents_of_file = a_file.re
def menu():
with open('homework.txt','r') as a_file:
contents_of_file = a_file.read()
print(contents_of_file)
input()
文本文件:
emma smith,79
noah jones,32
olivia williams,26
liam taylor,91
sophia green,80
mason brown,98
我们将逐个查看每一行,而不是一次读取整个文件。我们将使用
split
将行划分为名称和数字,然后使用int
将数字字符串转换为数字类型
def menu():
target = 85
with open('homework.txt','r') as a_file:
for l in a_file:
name, number = l.split(',')
number = int(number)
print(name + ': ' + ('passed' if number>=target else str(target - number)))
input()
('passed'if number>=target-else str(target-number))
只是一种在一行中执行if语句的方法,用于简单的事情,而不是一次读取整个文件,我们将分别查看每一行。我们将使用split
将行划分为名称和数字,然后使用int
将数字字符串转换为数字类型
def menu():
target = 85
with open('homework.txt','r') as a_file:
for l in a_file:
name, number = l.split(',')
number = int(number)
print(name + ': ' + ('passed' if number>=target else str(target - number)))
input()
('passed'if number>=target-else str(target-number))
只是一种在一行中执行if语句的方法,用于简单的事情还有其他的可能性和较短的方法,但为了给您一个基本的理解,这可能会有所帮助:这应该读取每行并在逗号处拆分它
with open('homework.txt','r') as a_file:
for line in a_file.readlines():
split_line=line.split(",")
name=split_line[0]
score=split_line[1]
YOUR CODE HERE
还有其他的可能性和较短的方法,但为了让您有一个基本的了解,这可能会有所帮助:这应该阅读每一行并在逗号处拆分
with open('homework.txt','r') as a_file:
for line in a_file.readlines():
split_line=line.split(",")
name=split_line[0]
score=split_line[1]
YOUR CODE HERE
pandas包非常适合处理像您这样的文本文件。虽然这对于您当前的场景来说可能有点过头了,但了解一下可能会很有用
import pandas as pd
marks_needed = 85
df = pd.read_csv('homework.txt', header=None)
for name, marks in df.values:
if marks > marks_needed:
print('{} passed!'.format(name)
else:
extra_marks = marks_needed - marks
print('{} needs {} more marks'.format(name, extra_marks))
pandas包非常适合处理像您这样的文本文件。虽然这对于您当前的场景来说可能有点过头了,但了解一下可能会很有用
import pandas as pd
marks_needed = 85
df = pd.read_csv('homework.txt', header=None)
for name, marks in df.values:
if marks > marks_needed:
print('{} passed!'.format(name)
else:
extra_marks = marks_needed - marks
print('{} needs {} more marks'.format(name, extra_marks))
逐行读取文件并将其从
,
拆分到结尾?您应该仔细查看pandas包,非常适合处理文本文件逐行读取文件并将其从,
拆分到结尾?您应该仔细查看pandas包,非常适合处理文本文件