期望的结果:
输入测试分数(退出-99):55
输入测试分数(退出-99):77
输入测试分数(退出-99):88
输入测试分数(-99退出):24
输入测试分数(退出-99):45
输入测试分数(退出-99): - 99
55 77 88 24 45
P P P F F.
进程以退出代码0结束
到目前为止的代码:(除了Pass失败分配之外的工作)
Python程序要求用户输入添加到名为score的列表中的分数。 然后在该分数P下打印通过F失败。
scores = [] #list is initialized
while True:
score = int(input("Enter a test score (-99 to exit):"))
if score == -99:
break
scores.append(score)
def print_scores(): #accepts the list and prints each score separated by a space
for item in scores:
print(item, end ="") # or 'print item,'
print_scores() # print output
def set_grades(): #function determines whether pass or fail
for grade in scores:
if score >= 50:
print("P")
else:
print("F")
print(set_grades)
你能编辑你的问题来说明你期望的确切输出,以及它目前的样子吗? 此外,您的print_scores表示它接受列表但不接受列表。 它恰好使用您创建的全局范围scores列表,但如果您确实希望print_scores获取列表,那么您需要确保您的函数实际上将列表作为参数 - > def print_scores(the_list):
#这是期望的结果:.....输入测试分数(-99退出):55输入测试分数(-99退出):77输入测试分数(-99退出):49输入 测试分数(-99退出): - 99 55 77 49 PPF过程以退出代码0结束
编辑您的问题,将其放在那里并正确格式化。 将其设置为评论不能很好地转换。
这有帮助吗? 基本上是分数下的P或F(通过或失败)。
你正在考虑正确的思路,但是你需要从顶部开始运行你的程序,并确保你的理由正确。
首先,你已经编写了程序,在你检查它们是否通过之前打印出所有的分数,这样你就会得到一个数字列表,然后是一个P / F列表。 这些需要一起发生才能正确显示。
另外,确保跟踪变量是什么; 在你的上一个函数中,你试图使用"得分",它不再存在。
最后,我不确定您对%d或%s的确切要求,但您可能正在寻找带有format()的命名参数,如下所示。
scores = [] #list is initialized
while True:
score = int(input("Enter a test score (-99 to exit):"))
if score == -99:
break
scores.append(score)
for item in scores:
if item >= 50:
mark = 'P'
else:
mark = 'F'
print('{0} {1}'.format(item, mark))
我相信这就是你要找的东西。
谢谢你。 {}参数对我来说是新鲜事。我如何格式化它以使P F低于等级?目前的格式化已将其更改为现在垂直列出等级。
我知道[]括号表示法是指字典表示法。我从stackoverflow和youtube学到的东西比我在这个在线社区大学学到的更多
要将P / F置于成绩之下,请将字符串从"{0} {1}"更改为"{0} n {1}"。
太好了谢谢。我把新行缩进后出现问题。谢谢大家的帮助。我学到了很多东西!
使用{}的格式在字符串中使用,如果您在该字符串上使用format()函数,它将替换它。所以{0}将被format()中的第一个参数替换,在这种情况下是'item'。反斜杠称为"转义"字符,其后面的字符将代表您通常无法输入的内容。 n为您提供换行符,这是最有用的换行符。
很高兴有pycharm告诉你哪里出错了。但对于没有先前编程背景的人来说,必须将%d和%s与字符串与数字的表示参数相关联是令人困惑的。编程确实是一种与其他语言一样的语言。我发现尽管参数的编码逻辑是逐行构造的,但它确实会跳转。我想,就像其他一切一样,你花费的时间越多,它所获得的第二天性就越多。