我有一份学生名单及其相应的成绩:
Johnson Smith
93
Maryanne James
80
Stanton Chase
45
Mildred Morris
90
George Deitz
89
Maisie Kling
79
我需要一个" F"显示60以下的成绩,但是当我把我的if
声明放在时,它就会出现" F"在45以下的新线而不是它旁边。
我有:
if stu_points < 60:
print("\t\t\t\tF")
它一直显示如下:
Johnson Smith 93
Maryanne James 80
Stanton Chase 45
F
Mildred Morris
这是我的代码:
def main():
file_students = open("students_points.txt", "r")
stu_name = file_students.readline()
num_stu = 0
f_students = 1
pass_students = 5/6
print("Student\t\t\tPoints\t\tGrade")
print("------------------------------\n")
while stu_name != "":
stu_name = stu_name.rstrip("\n")
stu_points = file_students.readline()
stu_points = int(stu_points)
print(stu_name,"\t\t",stu_points, sep="",)
num_stu += 1
if stu_points < 60:
print("\t\t\t\t\tF")
stu_name = file_students.readline()
file_students.close()
print()
print("Number of students processed=", num_stu)
main()
答案 0 :(得分:1)
print
函数默认会附加一个新行,因此您应该使用。
print("Hello ", end="")
print("world.")
输出:
Hello world.
希望它有所帮助!
答案 1 :(得分:0)
编辑:根据您对文件结构的不充分描述以及编写得不好的代码,我发现您的文件在不同的行上有名称和标记。
以下是您可以使用的完整,编写良好的代码。
def main():
lines = open("students_points.txt").readlines()
records = []
for i in range(0, len(lines), 2):
records.append((lines[i].strip(), int(lines[i+1])))
print('{:20}{:>6} {}'.format('Student', 'Points', 'Grade'))
print('--------------------------------')
for name, marks in records:
if marks >= 60:
print('{:20}{:>6}'.format(name, marks))
else:
print('{:20}{:>6} F'.format(name, marks))
main()
在这里,我使用了string formatting。使用{:20}
时,我为name
指定了一个20 width的字段,而{:>6}
指定了marks
,我指定的宽度为6,右aligning为{} Student Points Grade
--------------------------------
Johnson Smith 93
Maryanne James 80
Stanton Chase 45 F
Mildred Morris 90
George Deitz 89
Maisie Kling 79
。
输出:
addEventListener(Event.ENTER_FRAME , enterFrameListener );