python - 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)
解决方案
只有当第一个答案是“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”。
推荐阅读
- javascript - 由于“RangeError: Invalid typed array length”而无法加载 GLB 模型
- android - 如何在 ConstraintLayout 中垂直拉伸中间视图
- java - 如何证明算法的时间复杂度?
- reactjs - Material Ui DataGrid IsRowSelectable 在 React ts 中不起作用
- html - 为什么图像不会直接移动到网页的中心(不是中间)
- reactjs - 使用 Redux 访问 API
- php - 使用 Perfex CRM 为管理员和客户创建模块 - 需要帮助
- ios - `UIScreen.main.bounds.height - frame(in: .global).minY` 在 iOs 的屏幕边缘下方如何?
- javascript - user.roles 未定义,即使用户已定义且具有角色变量 discordjs
- vb.net - vb.net 在按钮中更改 2 个不同文本的位置