我想创建一个执行以下操作的python程序:
到目前为止我的输入部分是:
tests = raw_input("Enter the number of tests in course: ")
tests = int
assignments = raw_input("Enter the number of assignments in course: ")
quizzes = raw_input("Enter the number of quizzes in course: ")
labs = raw_input("Enter the number of labs in course: ")
sepweightfinal = raw_input("Is there a final with a separate weight? ")
当我在输入后尝试做任何事情时,我无法让它发挥作用。
如果测试> 0%=输入(“测试的加权百分比是多少?:”)
我的程序总是说>并且0无效,有没有办法做到这一点?
在此先感谢,基本上我理解逻辑和我想要完成的事情,代码并没有点击我的脑袋。
答案 0 :(得分:1)
您需要使用raw_input()
将int
返回的字符串转换为整数:
tests_string = raw_input("Enter the number of tests in course: ")
tests = int(tests_string)
或者更简洁:
tests = int(raw_input("Enter the number of tests in course: "))
答案 1 :(得分:0)
使用另一个变量作为加权百分比,例如
if test>0:
test_weight=float(raw_input("Enter the weight of the tests:")
else:
test_weight=0
if assignments>0:
assign_weight=float(raw_input("Enter the weight of the assignments:")
else:
assign_weight=0
然后如果所有权重的总和等于100
,则chkif (test_weight+assign_weight+lab_weight+final_weight)!=100:
print "The weights are not accurate"
break
使用浮点数获取每个的得分和一个for循环的测试次数。
for i in range(0,test):
test_score.append(float(raw_input("Enter the score for the test:")))
test_score是一个列表。如果你有得分的不同分数的所有分数的列表,你可以用它们计算总和,平均值等,并使用if语句计算等级。
if weightedavg>=60:
grade='A'
elif weightedavg>=40:
grade='B'
else:
grade='C'
将整个事情放在while循环中
while(1):
如果用户对第6点没有响应,则打破循环
if user_resp=='N':
print "Goodbye"
break
为了更好的可读性而不是有很多变量,我建议你将所有数据放入一个带有键的dict作为课程的不同组件。处理有组织的东西要容易得多。
答案 2 :(得分:0)
这应该可以解决问题:
tests = int(raw_input(" Enter the number of tests in course: "))