【问题标题】:How can I format this output to have a %?我怎样才能格式化这个输出有一个%?
【发布时间】:2019-11-08 21:10:41
【问题描述】:

我想知道如何将输出格式化为百分比,labScore=score(labPercent, labWeight) 在哪里?

这是我的示例:

def score(earnedPercent, overallWeight):
    scorePercent = earnedPercent * overallWeight
    scorePercent = scorePercent % 7
    return scorePercent

def grade(gradePercent):
   if gradePercent >=90 and gradePercent <= 100:
      letterGrade="A"
   elif gradePercent >=75 and gradePercent <= 90:
      letterGrade="B"
   elif gradePercent >= 60 and gradePercent <= 75:
      letterGrade = "C"
   elif gradePercent >= 50 and gradePercent <= 60:
      letterGrade = "D"
   elif gradePercent < 50:
      letterGrade = "F"
   return letterGrade

labWeight = 0.20
labPercent=int(input("What is your lab percent so far (-1 if no labs yet)?: "))
labScore=score(labPercent, labWeight)

assignmentWeight = 0.10
assignmentPercent=int(input("What is your assignment percent so far (-1 if no assignment yet?: "))
assignmentScore=score(assignmentPercent, assignmentWeight)

examWeight = 0.70
examPercent=int(input("What is your exam percent so far (-1 if no exams yet)?: "))
examScore=score(examPercent, examWeight)

【问题讨论】:

  • 这能回答你的问题吗? how to show Percentage in python
  • 第 3 行的模运算有什么意义? (另外,检查你的缩进;第 4 行应该会触发语法错误)。
  • @AriCooper-Davis,……嗯?我知道 Python 中的 % 符号需要转义的唯一上下文是格式字符串,在这种情况下,正确的转义格式是将它们加倍,而不是在前面加上反斜杠。而且我在这个问题中看不到任何地方需要任何一种这些转义方法。
  • 你越来越近了,但是grade() 函数在这里做什么呢?您仍然没有调用它,并且调用score() 时一定有错误。您必须运行自己发布的代码,然后还要包含完整的 Traceback。
  • @b_c 我想是这样,但是我的问题是 如何 格式化,在哪里格式化?

标签: python


【解决方案1】:

您需要将其打印出来,然后是文字% 字符,如图所示。请注意,我还删除了您的函数版本中的scorePercent = scorePercent % 7,因为不需要它。

import sys

def score(earnedPercent, overallWeight):
    scorePercent = earnedPercent * overallWeight
    return scorePercent

def grade(gradePercent):
   if gradePercent >=90 and gradePercent <= 100:
      letterGrade="A"
   elif gradePercent >=75 and gradePercent <= 90:
      letterGrade="B"
   elif gradePercent >= 60 and gradePercent <= 75:
      letterGrade = "C"
   elif gradePercent >= 50 and gradePercent <= 60:
      letterGrade = "D"
   elif gradePercent < 50:
      letterGrade = "F"
   return letterGrade

labWeight = 0.20
labPercent=int(input("What is your lab percent so far (-1 if no labs yet)?: "))
labScore=score(labPercent, labWeight)
if labPercent > -1:
    labScore=score(labPercent, labWeight)
    print('labScore: {}%'.format(labScore))
    sys.exit()  # If you want to quit the program completely.

示例运行:

What is your lab percent so far (-1 if no labs yet)?: 69
labScore: 13.8%

【讨论】:

  • katie:你的问题变了,所以我的回答不再正确了。
  • 非常感谢,这很有帮助!我可以对括号中的 -1 做些什么,或者如果我以任何一种方式输入 -1 会导致零?
  • 又是一个问题。
  • @quamrana,我问的是实验室分数。
  • 是的,值得提出一个单独的问题。
猜你喜欢
  • 1970-01-01
  • 2022-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-12-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多