Python编码麻烦[关闭]

Posted

技术标签:

【中文标题】Python编码麻烦[关闭]【英文标题】:Python coding trouble [closed] 【发布时间】:2019-02-14 11:05:51 【问题描述】:

对于家庭作业,我应该编写一个食谱,输入沙漠并吐出需要多少成分。我还是新手并不断收到此错误代码,但可能完全错了吗?

print("Welcome to Carmack's Bakery")

 cookies = int(input('How many dozen cookies? ==> ') )
print(cookies)

 cakes = int(input('How many cakes? ==> ') )
print(cakes)

donuts = int(input('How many dozen donuts? ==> ') )
print(donuts)



 cake_eggs = 2
 cake_butter = .5
 cake_sugar = 1
 cake_flour = 1.5

   cookie_eggs = 2
 cookie_butter = 2.5
  cookie_sugar = 2
   cookie_flour = 8


 donuts_eggs = 3
  donuts_butter = .25
  donuts_sugar = .5
 donuts_flour = 5

 print('You will need to order')

  cookies_dozen = float('cookie_eggs' + 'cookie_butter' + 'cookie_sugar' + 
   'cookie_flour' * 'cookies')
    print ('cookies_dozen' ('cups of butter'))

这是我的错误代码:想出产生 10 种不同类型错误的代码 sn-ps(一两行代码)

【问题讨论】:

这里的邮政编码(格式正确)。发布错误。不要指望任何人离开现场来回答您的问题。始终提供一个足够好的示例,以便他们可以根据需要运行您的代码,但永远不要粗鲁地要求它(即始终提供输出和错误)。 @SruthiV。一次接近的投票值得一千次反对。它有助于保持网站清洁,而不会浪费您自己的代表。 @OP。要点是一种显示代码 sn-p 的 GitHub 页面,而不是整个桌面的屏幕截图。 @MadPhysicist 这样更好吗? 一点。您发布的内容不是有效的 python 代码。缩进必须正确以避免基本的语法错误。这里仍然没有实际的问题。您没有解释什么不起作用,也没有提供任何预期的输入/输出。请仔细阅读***.com/help/how-to-ask。 【参考方案1】:

看来您的方向是正确的。

问题出在倒数第二行:

cookies_dozen = float('cookie_eggs' + 'cookie_butter' + 'cookie_sugar' + 'cookie_flour' * 'cookies')

由于cookie_eggscookie_butter 等都是变量,所以不能将它们放在引号内。当您将内容放在引号中时,解释器会假定它们是字符串文字。因此,解释器会假设您正在尝试做的是添加和乘以字符串,然后将结果转换为浮点数,这是不可能发生的。

将第二行改为最后一行,看看会发生什么: cookies_dozen = float((cookie_eggs + cookie_butter + cookie_sugar + cookie_flour) * cookies)

我建议您阅读有关 python 字符串如何处理数学运算以及处理变量和文字的正确方法的信息。

另外,请尽量遵守发布指南,让这里的优秀人员更好更快地帮助您!

祝你好运:)

【讨论】:

【参考方案2】:

cmets 中的任何内容都是绝对正确的。您应该始终发布格式正确的代码,其中包含所有相关的屏幕截图和详细的错误。

您可能遇到的主要错误可能是由于缩进不当。与 C++ 或 Java 不同,缩进和换行起着重要的作用。

由于此代码中没有使用任何块,因此从一开始就开始代码的每一行,不要使用任何空格或制表符。

此外,从float 函数和print 函数内部删除最后两行中的单引号。

要在倒数第二行得到正确的结果,代码应该是

cookies_dozen = float((cookie_eggs + cookie_butter + cookie_sugar + cookie_flour) * cookies)
print(cookies_dozen, 'cups of butter')

【讨论】:

【参考方案3】:
cakes = int(input('How many cakes? ==> '))
donuts = int(input('How many dozens of donuts? ==> '))
cookies = int(input('How many dozen cookies? ==> '))

cake_eggs = 2
cake_butter = .5
cake_sugar = 1
cake_flour = 1.5

cookie_eggs = 2
cookie_butter = 2.5
cookie_sugar = 2
cookie_flour = 8

donuts_eggs = 3
donuts_butter = .25
donuts_sugar = .5
donuts_flour = 5

total_butter = cake_butter*cakes + cookie_butter*cookies + donuts_butter*donuts
total_eggs = cake_eggs*cakes + cookie_eggs*cookies + donuts_eggs*donuts
total_sugar = cake_sugar*cakes + cookie_sugar*cookies + donuts_sugar*donuts
total_flour = cake_flour*cakes + cookie_flour*cookies + donuts_flour*donuts

print('You need to order : \n' + 'Eggs = ' + str(total_eggs)+'\n' + 'Butter = ' + str(total_butter) +'\n' + 'Sugar : ' + str(total_sugar) + '\n' + 'Flour = ' + str(total_flour) )

在这里,要将字符串与数字连接,您必须使用 str() 方法将数字转换为字符串。

【讨论】:

请不要在print 调用中使用str 调用和+ 字符串连接。将要打印的项目作为单独的参数传递,并让print 进行转换和连接。这将使您的代码更简洁、更高效。

以上是关于Python编码麻烦[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

用 Python 编码 [关闭]

如何在 python 中获取邮政编码的州/省代码? [关闭]

Python 3.0 的哪些特性会改变你的日常编码? [关闭]

具有分类和连续属性的多类多输出分类,无需在 python 中编码 [关闭]

是否有 JavaScript 或可能的 Python/Django Web 服务来对街道地址进行地理编码? [关闭]

四.python字符编码