def main():
for row in range (7):
assignment = int(1)
if row == 1:
for assignment_number in range(0,8):
assignment_number+1
for i in range(0,7):
assignment_mark = float(input(("Please enter your mark for assginment" assignment_number,": "))
assignment_weight = float(input("Please enter the total weight percentage for the assignment: "))
main()
这是我上面的代码,
我基本上是想弄清楚如何为每个输入变量说“请输入x的标记(从1到7)。
这会循环,所以一旦他们输入作业1,就会问相同的问题以进行作业2。
我希望这是有道理的。我是编程新手,而这恰好也是我的第一篇文章!要温柔 (: 谢谢!
答案 0 :(得分:1)
让循环进行计数,然后使用字符串格式。
您只需要一个循环即可收集每对事件
from collections import namedtuple
Assignment = namedtuple("Assignment", "mark weight")
assignments = []
for idx in range(7):
print("Please enter data for assignment {}".format(idx+1))
mark = float(input("mark: "))
weight = float(input("weight:"))
assignments.append(Assignment(mark, weight))
print(assignments)
答案 1 :(得分:1)
您的代码存在一些问题:
assignment_number+1
而不将其分配给变量不会执行任何操作,即使您这样做,该值也会在循环后丢失。如果要将数字偏移一个,则可以只使用range(1, 8)
或在实际需要该变量的值时使用+1
i
,但您使用的是前一个循环中的assignment_number
,该循环的值仍为上一次执行时的值7 assignments_mark
和assignment_weight
的值存储在某个地方,例如在两个列表中,一个元组列表或一个元组字典;由于分配编号以1而不是0开头,因此我建议使用dict
您可以尝试这样的操作,将作业的分数和权重存储在字典中:
assignments = {}
for i in range(7):
assignment_mark = float(input("Please enter your mark for assginment %d: " % (i+1)))
assignment_weight = float(input("Please enter the total weight percentage for the assignment: "))
assignments[i+1] = (assignment_mark, assignment_weight)
print(assignments)