对于家庭作业,我应该编写一个食谱来收集沙漠的输入并吐出需要多少成分。我还是新手,并且不断收到此错误代码,但可能完全错了?
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种不同类型错误的代码片段(一行或两行代码)
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()方法将数字转换为字符串。
看起来你在这里走在正确的轨道上。
问题出在你的第二行到最后一行:
cookies_dozen = float('cookie_eggs' + 'cookie_butter' + 'cookie_sugar' +
'cookie_flour' * 'cookies')
由于cookie_eggs
,cookie_butter
等都是变量,因此不能将它们放在引号内。当您将内容放在引号中时,它们被解释器假定为字符串文字。因此,解释器将假设你要做的是添加和乘法字符串,然后将结果转换为浮点数,这是不可能发生的。
将第二行更改为最后一行,看看会发生什么:
cookies_dozen = float((cookie_eggs + cookie_butter + cookie_sugar +
cookie_flour) * cookies)
我建议你阅读python字符串如何处理数学运算以及使用变量和文字的正确方法。
此外,请尽量坚持发布指南,让这里的优秀人员更好,更快地帮助您!
祝好运 :)
评论中的任何内容都是绝对正确的。您应始终使用所有相关屏幕截图和详细错误发布格式良好的代码。
您可能遇到的一个主要错误可能是因为缩进不当。与C ++或Java不同,缩进和换行起着重要作用。
由于此代码中没有使用任何块,因此从一开始就开始代码的每一行,没有任何空格或制表符。
另外,从float
函数和print
函数中删除最后两行中的单引号。
要在倒数第二行得到正确的结果,代码应该是
cookies_dozen = float((cookie_eggs + cookie_butter + cookie_sugar + cookie_flour) * cookies)
print(cookies_dozen, 'cups of butter')