如何避免在新线上打印?

时间:2016-04-19 00:48:38

标签: python-3.x

我有一份学生名单及其相应的成绩:

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()

2 个答案:

答案 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 );