Python TypeError:/:';非类型';和';非类型';
我试图解决python的这个问题,但我一直遇到这样的错误: TypeError:/:“NoneType”和“NoneType”的操作数类型不受支持 下面是我应该解决的问题:#编写一个程序,询问用户在一个类中注册的男性人数和女性人数。该程序应显示班级中男性和女性的百分比 这是我的代码:Python TypeError:/:';非类型';和';非类型';,python,python-3.x,Python,Python 3.x,我试图解决python的这个问题,但我一直遇到这样的错误: TypeError:/:“NoneType”和“NoneType”的操作数类型不受支持 下面是我应该解决的问题:#编写一个程序,询问用户在一个类中注册的男性人数和女性人数。该程序应显示班级中男性和女性的百分比 这是我的代码: def askuser(prompt): userAnswer = None while userAnswer is None: try: userAnswer = float(inpu
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()
def askuser(提示):
userAnswer=None
虽然userAnswer为无:
尝试:
userAnswer=float(输入(“输入:“+prompt+”:”))
如果userAnswer<0:
userAnswer=None
升值误差
除:
打印(“数字必须大于0。”)
返回用户应答
def calcm(公、母):
退货(男/男+女)*100
def钙流量(女性,男性):
退货(女/男+女)*100
def diplay(女性百分比,男性百分比):
打印(“女性百分比为:”,女性百分比)
打印(“男性百分比为:”,男性百分比)
def main():
女性数量=askuser(“女性数量”)
男性人数=askuser(“男性人数”)
女性百分比=calcf(男性人数,女性人数)
男性百分比=calcm(男性数量,女性数量)
显示(男性百分比,女性百分比)
main()
谢谢大家! 您对return userAnswer的对齐不正确。它应该在外面
except:
print("Number must be greater than 0.")
return userAnswer
askuser中的
块缺少返回语句try
- 键入
方法名称。它应该是diplay
显示
- 百分比计算错误
和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()
def askuser(提示):
userAnswer=None
虽然userAnswer为无:
尝试:
userAnswer=float(输入(“输入:“+prompt+”:”))
如果userAnswer<0:
userAnswer=None
升值误差
返回用户应答
除:
打印(“数字必须大于0。”)
def calcm(公、母):
回报率(男性/(男性+女性))*100
def校准系数(公、母):
回报率(女性/(男性+女性))*100
def显示(男性百分比,女性百分比):
打印(“女性百分比为:”,女性百分比)
打印(“男性百分比为:”,男性百分比)
def main():
女性数量=askuser(“女性数量”)
男性人数=askuser(“男性人数”)
女性百分比=calcf(男性人数,女性人数)
男性百分比=calcm(男性数量,女性数量)
显示(男性百分比,女性百分比)
main()
输出:
askuser中的return语句应该在while循环之外。复制/粘贴错误?一个重要的原则是显式捕获错误,例如除ValueError之外的
而不是捕获将捕获任何异常的所有之外的。(包括您可能没有想到的意外事件)return
语句应该在while
循环之外。无关问题在计算百分比时,运算符优先级起作用。它应该是(男/(男+女))*100