TypeError:cupcake_flour()缺少1个必需的位置参数:' cu_flour'。我究竟做错了什么?

时间:2018-02-06 15:44:12

标签: python python-3.x

这是我第一次参加python,我很难理解我收到此错误的错误是什么?这个代码应该将杯子蛋糕配方的克数改为杯子,这只是转换面粉的第一步。输入功能有效,但之后我得到了上述错误。

user = input("How many cookies do you want to make? ")

def cupcake_flour(cu_flour):
  cu_flour = user * 100 / 120

  print(cu_flour + "cups of flour")

def main(): 
   cupcake_flour()

main()  

4 个答案:

答案 0 :(得分:1)

您已定义函数cupcake_flour以进行参数,但在调用cupcake_flour()时未提供参数。您可能希望将用户输入传递给函数,然后打印所需的面粉量,如下所示:

def cupcake_flour(cookies):
  cu_flour = cookies * 100 / 120

  print(str(cu_flour) + "cups of flour")

def main():
   num_cookies = int(input("How many cookies do you want to make? "))
   cupcake_flour(num_cookies)

main()

请注意一些小的改动:

  1. int(input("How many cookies do you want to make? "))因为输入应该被解释为数字(并在计算中使用)
  2. 将用户输入移动到main中,因为在调用main()时仅询问它是更有意义的
  3. str(cu_flour)因为它需要是一个字符串

答案 1 :(得分:0)

错误说明的是:cupcake_flourcu_flour需要参数def cupcake_flour(cu_flour)。但是你没有任何争论就是在呼唤它。您应该将def cupcake_flour()替换为sqlcmd

答案 2 :(得分:0)

您当前错误的原因是定义了函数" cupcake_flour"它接受了论证" cu_flour"然后在不传递参数的情况下调用该函数。

另外变量" user"在函数中将无法访问。 "用户"变量没有传递给函数,但即使它是默认的字符串,所以你的乘法不会起作用。

据我所知,这可能就是你想要做的事情。

def cupcake_flour(cookie_number):
    flower_required = cookie_number * 100 / 120
    print(str(flower_required) + " cups of flour")



def main():
    cookie_number = int(input("how many cookies do you want to make? "))
    cupcake_flour(cookie_number)

main()

答案 3 :(得分:0)

好的,每个人都发布了修复主要问题的解决方案,但没有人能够让你的功能真正有用。作为一般规则,您希望从用户界面部分清楚地分离您的“域模型”(您计算的内容,适用于这些内容的规则等)。 IOW,您的cupcake_flour除了返回值之外不应打印任何内容,让UI部分进行打印:

# this is your domain model
def cupcake_flour(cookies):
  return cookies * 100 / 120

# this is your UI, which gather inputs from the user,
# convert/sanitisze them, pass them to the domain model,
# and display the (formatted) result to the user.
def main():
   num_cookies = int(input("How many cookies do you want to make? "))
   cu_flour = cupcake_flour(num_cookies)
   print("for {} coookies you'll need {} cups of flour".format(num_cookies, cu_flour))

# only execute main if the file is invoked as a script
# so you can also import it in another script
if __name__ == "__main__":
    main()