【问题标题】:printing out (input and output process) in python在 python 中打印输出(输入和输出过程)
【发布时间】:2018-10-24 02:35:19
【问题描述】:

我想我的任务差不多完成了。我正在尝试打印: “嗨,约翰,(新行) 您的编程原理课程有 89.6%。” 但是,当我打印以下内容时,显示如下: “嗨,约翰,(新行)你的编程原理课程的 89.4 %。”
那么你们能帮我如何在没有空格的情况下放置 % 符号吗?有没有更好的方法来打印这些字词?

student_name = input("Enter student's name: ")
course_name = input("Enter course name: ")

quizzes_weight = input("Enter quizzes weight: ")
projects_weight = input("Enter projects weight: ")
activities_weight = input("Enter activities weight: ")
attendance_weight = input("Enter attendance weight: ")
exams_weight = input("Enter exams weight: ")

quizzes_average = input("Enter quizzes average: ")
projects_average = input("Enter projects average: ")
activities_average = input("Enter activities average: ")
attendance_average = input("Enter attendance average: ")
exams_average = input("Enter exams average: ")

quizzes_weight = float(quizzes_weight)
projects_weight = float(projects_weight)
activities_weight = float(activities_weight)
attendance_weight = float(attendance_weight)
exams_weight = float(exams_weight)

quizzes_average = float(quizzes_average)
projects_average = float(projects_average)
activities_average = float(projects_average)
attendance_average = float(attendance_average)
exams_average = float(exams_average)

average_score_for_course = ((quizzes_weight * quizzes_average) + 
(projects_weight * projects_average) + (activities_weight * 
activities_average) + (attendance_weight * attendance_average) + 
(exams_weight * exams_average)) * 100

print("Hi",student_name +",","\nYou have a", 
average_score_for_course,"% in your", course_name,"course.")

对于这个作业,我上面的编程应该根据我的输入编码产生如下输出。 例如:

Enter student's name: Ryan
Enter course name: Advanced Quantum Mechanics

Enter quizzes weight: .1
Enter projects weight: .2
Enter activities weight: .3
Enter attendance weight: .1
Enter exams weight: .3

Enter quizzes average: 1
Enter projects average: .85
Enter activities average: .9
Enter attendance average: .95
Enter exams average: .87

输出应该是这样的:

Hi Ryan,
You have a 89.6% in your Advanced Quantum Mechanics course.

【问题讨论】:

    标签: python python-3.x printing user-input


    【解决方案1】:

    查看您的代码:

    print("Hi",student_name +",","\nYou have a", 
    average_score_for_course,"% in your", course_name,"course.")
    

    当您为打印功能使用逗号分隔符时,默认情况下会添加一个空格。用 + 替换逗号:

    print(average_score_for_course + "% in your")
    

    通过将逗号替换为 +,它会删除 Python 默认添加的空格。

    使用 Emma 的解决方案(字符串格式化)是解决您问题的更好和更 Pythonic 的解决方案。不过,希望我能帮助您理解为什么会发生这种情况。

    【讨论】:

      【解决方案2】:

      只是为了一个不同的答案: 你也可以试试这个

      average_score_for_course = str(((quizzes_weight * quizzes_average) + 
      (projects_weight * projects_average) + (activities_weight * 
      activities_average) + (attendance_weight * attendance_average) + 
      (exams_weight * exams_average)) * 100)+"%"
      
      print("Hi",student_name +",","\nYou have a", 
      average_score_for_course,"in your", course_name,"course.")
      

      将结果更改为字符串并将“%”连接到它。

      【讨论】:

        【解决方案3】:
        print("Hi" + str(student_name) +"," + "\nYou have a" + str(average_score_for_course) +"% in your" + str(course_name) + "course.")
        

        对我来说,我会尽量避免使用逗号,因为很难想象您的打印效果如何,为了安全起见,最好在打印前将“average_score_for_course”转换为 str。

        【讨论】:

        • 你在哪里解释?
        【解决方案4】:

        您可以使用要打印的 3 个变量来格式化字符串:

        print("Hi {},\nYou have a {}% in your {} course".format(student_name, average_score_for_course, course_name))
        

        【讨论】:

        • 你在哪里解释?
        • 例如,您可以链接到文档并引用它
        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2018-05-19
        • 1970-01-01
        • 2020-02-29
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多