由于某些原因,我在运行这个程序时没有得到正确数量的快速女性和快速男性。快速雌性是小于-19的数字,快速雄性是小于15的数字。另外,如果有人能建议如何找到所有输入组合的平均值?你知道吗
#Write a program that categorizes user input
#Ask for user input
userInput=input("Enter a time (negative for F, "" to quit): ")
#Initialize variables
female=0
male=0
noRunner=0
fastFemale=0
fastMale=0
count=0
#Categorize input into male, female, fast female, and fast male
while userInput!="":
count=count+1
if userInput=="0":
userInput=noRunner
noRunner=noRunner+1
if str(userInput).startswith("-"):
userInput=female
female=female+1
if float(userInput) >= 19.0 and float(userInput) < 0.0:
userInput=fastFemale
fastFemale=fastFemale+1
elif float(userInput) > 0.0:
male=count-female-noRunner
if float(userInput) <= 15.0 and float(userInput) > 0.0:
userInput=fastMale
fastMale=fastMale+1
userInput=input("Enter a time (negative for F, "" to quit): ")
#Computations
total=male+female
noShow=noRunner
#Print statements
print()
print("Try-Out Report")
print("-"*40)
print("Total number of runners:", count-noShow)
print("Number of runners who didn't show:", noShow)
print("female", female)
print("male", male)
print("Average time for male runners:")
print("Average time for female runners:")
print("Average time for all runners:")
print("Fast female runners:", fastFemale)
print("Fast male runners:", fastMale)
您可以很好地使用pythons迭代器和列表函数(
sum
、len
)以及-理解。你知道吗像这样:
下面是一个交互式会话示例:
要进一步分类,您可以执行以下操作:
我被这个吓坏了。使用
userInput < 0
就像您在下面的elif
上几乎做的那样。你知道吗当你这么做的时候,你就失去了userInput值。你知道吗
在交互式会话中玩
input
,看看它是如何工作的。不需要float(userInput)
。你知道吗代码真的很糟糕。试着从问题的一个子集开始,比如说仅仅是女性,试着去理解发生了什么,不要只是试着得到一个随机调整的结果。你知道吗
当你得到输入时,建立一个和然后除以计数
当然,初始化count时initialize sum=0
因为你已经去掉了“-”符号,所以你不需要用abs
请注意,您应该使用如下代码
而不是
请注意,这里的问题是,在使用输入变量之前要对其进行更改 这使得以后的所有检查都无效。在检查值之前,也不要使输入为正,这样它将始终为负,因此永远不会>;19将其更改为字符串以查找“-”是错误的,只需检查<;0即可
从已经是float或int的userInput开始
检查负值,然后更改为abs(userval)作为女性类别中的实际算法。你知道吗
相关问题 更多 >
编程相关推荐