Python 3.x 如何使用循环测试整数和列表元素?
我一直在尝试测试辩论测试分数,看看是否有任何测试低于50分。如果是这样,它应该返回失败。如果平均值高于70,且没有测试低于50,则应返回通过Python 3.x 如何使用循环测试整数和列表元素?,python-3.x,average,Python 3.x,Average,我一直在尝试测试辩论测试分数,看看是否有任何测试低于50分。如果是这样,它应该返回失败。如果平均值高于70,且没有测试低于50,则应返回通过 def course_grader(test_scores): avg_grade = sum(test_scores) / len(test_scores) if avg_grade >= 70 and test_scores >= 50: print("pass") elif avg_grade
def course_grader(test_scores):
avg_grade = sum(test_scores) / len(test_scores)
if avg_grade >= 70 and test_scores >= 50:
print("pass")
elif avg_grade < 70 or test_scores < 50:
print("fail")
break
def main():
print(course_grader([100,75,45])) # "fail"
print(course_grader([100,70,85])) # "pass"
print(course_grader([80,60,60])) # "fail"
print(course_grader([80,80,90,30,80])) # "fail"
print(course_grader([70,70,70,70,70])) # "pass"
if __name__ == "__main__":
main()
def课程评分器(测试分数):
平均分数=总和(测验分数)/长度(测验分数)
如果平均成绩>=70,测试成绩>=50:
打印(“通行证”)
elif平均分数<70或测试分数<50:
打印(“失败”)
打破
def main():
打印(课程评分器([100,75,45])#“失败”
打印(课程评分器([100,70,85])#“通过”
打印(课程评分器([80,60,60])#“失败”
打印(课程评分器([80,80,90,30,80])#“失败”
打印(课程评分器([70,70,70,70,70])#“通过”
如果名称=“\uuuuu main\uuuuuuuu”:
main()
我还尝试使用for循环,但它给了我太多的答案。您可以检查
min(测试分数)>=50
。如果min
大于或等于50,则test_得分中不存在低于50的整数
另外,代码中有三个问题
首先,不能在循环外使用break
语句。这将引发一个语法错误
其次,函数不会返回任何可以打印的内容。您的main()
将为每个打印输出“通过”或“失败”,然后None
。您应该删除main()
中的print
,或者在course\u grader()
中将其替换为return
最后,您的elif
可以替换为else
。如果avg_grade>=70,test_score>=50
不True
,那么必要的是avg_代码<70
或者test_score<50
,正如@Bill Bell所指出的,任何
或所有
函数在这里可能有用:
def course_grader(test_scores):
avg_grade = sum(test_scores) / len(test_scores)
if avg_grade >= 70 and all([x >= 50 for x in test_scores]):
print("pass")
elif avg_grade < 70 or any([x < 50 for x in test_scores]):
print("fail")
def课程评分器(测试分数):
平均分数=总和(测验分数)/长度(测验分数)
如果平均成绩>=70且全部([x>=50,测试分数为x]):
打印(“通行证”)
elif平均分数<70或任何([x<50表示测试分数中的x]):
打印(“失败”)
任何([x