Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/362.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python TypeError:/:';非类型';和';非类型';_Python_Python 3.x - Fatal编程技术网

Python TypeError:/:';非类型';和';非类型';

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

我试图解决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()
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