我正在尝试找出此python问题,并且不断收到此错误:
TypeError:/:“ NoneType”和“ NoneType”的不受支持的操作数类型
这是我要解决的问题:#编写一个程序,询问用户班上注册的男性人数和女性人数。该程序应显示班级中男性和女性的百分比。
这是我的代码:
def askuser(prompt):
userAnswer = None
while userAnswer is None:
try:
userAnswer = float(input("Enter: " + prompt + ":"))
if userAnswer < 0:
userAnswer = None
raise ValueError
except:
print("Number must be greater than 0.")
return userAnswer
def calcm(male,female):
return (male / male + female) * 100
def calcf(female,male):
return (female/ male + female) * 100
def diplay(percent_female,percent_male):
print("Percent of Females is: ", percent_female)
print("Percent of Males is: ", percent_male)
def main():
number_females = askuser("number of females")
number_males = askuser("number of males")
percent_female = calcf(number_males,number_females)
percent_male = calcm(number_males,number_females)
display(percent_male,percent_female)
main()
谢谢!
答案 0 :(得分:1)
您对返回userAnswer的对齐方式不正确。它应该在
之外 except:
print("Number must be greater than 0.")
return userAnswer
答案 1 :(得分:1)
try
中askuser
块中缺少返回语句diplay
方法名称中的错字。应该是display
calcf
和display
方法的参数列表中顺序错误更新的代码:
def askuser(prompt):
userAnswer = None
while userAnswer is None:
try:
userAnswer = float(input("Enter: " + prompt + ":"))
if userAnswer < 0:
userAnswer = None
raise ValueError
return userAnswer
except:
print("Number must be greater than 0.")
def calcm(male, female):
return (male / (male + female)) * 100
def calcf(male, female):
return (female / (male + female)) * 100
def display(percent_male, percent_female):
print("Percent of Females is: ", percent_female)
print("Percent of Males is: ", percent_male)
def main():
number_females = askuser("number of females")
number_males = askuser("number of males")
percent_female = calcf(number_males,number_females)
percent_male = calcm(number_males,number_females)
display(percent_male,percent_female)
main()
输出: