首页 > 解决方案 > Python出勤率计算器使用do while循环

问题描述

目的是根据给定的姓名列表创建一个出席百分比计算器。我能够使用列表中的名称循环输入问题。但是,我的问题在于以下 if 条件,如果列表中每个人的答案为 y,则每个输入问题应输出 1,如果列表中任何人的答案为 n,则应输出 0。然后应该添加数字输出以获得百分比。请帮忙。

continueLooping=True

students=["Annie", "Brian", "Clare", "Danny", "Ellen"]

i=0

while i<len(students):
    askuser=input(f"Is {students[i]} present?[y/n]")
    i=i+1

    if askuser == "y":
        one = 1
        print("1")

    else:
        one = -1
        print("-1")

        while one<len(students):
            if askuser == "y":
               one = 1
                one=one+1
            else:
                one = -1
                one=one+1

percentage=(one)/len(students)
print(percentage)

标签: pythonif-statementwhile-loop

解决方案


只有当第一个答案是“y”时,您的第二个内部 while 循环才会终止。

您应该打算做的是计算您在外部 while 循环中收到的“y”答案的数量。像这样:

students=["Annie", "Brian", "Clare", "Danny", "Ellen"]

i=0
studentsPresentCount = 0

while i<len(students):
    askuser=input(f"Is {students[i]} present?[y/n]")
    i=i+1

    if askuser == "y":
        studentsPresentCount += 1




percentage = studentsPresentCount/len(students)
print(percentage)

请注意,您可以使用语法糖“i += 1”而不是“i = i + 1”。


推荐阅读