还在处理啤酒问题。重新开始。我不想买半瓶啤酒,所以我就从这里开始:
#import math
def buybeers(wallet):
beers = 0
for(int in xrange(0,wallet,2)) #xrange not defined
beers += 1
wallet -= 2
return beers, wallet
wallet = int(input("How many wallet do you have?"))
print(buybeers(wallet))我想弄清楚怎么买一瓶啤酒,永远是2美元,然后把奇怪的钱还回去。
第二次尝试,试图查找逻辑错误:
def buybeers(wallet):
beers = 0
for i in range(1,wallet,3):
beers += 1
wallet -= 3
return beers, wallet
wallet = int(input("How many wallet do you have?"))
print(buybeers(wallet))当我有14美元的时候,问题就来了。最后我得到了-1美元和5瓶啤酒(一瓶我不该喝的啤酒,还有一美元)。虽然这是正确的,但一些便利店不接受标签。
最后提交(啤酒花费3美元)
def buybeers(wallet):
beers = 0
for i in range(1,wallet,3):
if wallet >= 3: #if you got enough for a beer, buy one.
beers += 1
wallet -= 3
#else:
# pass #otherwise, "do nothing"/pass (it seems this is automated).
return beers, wallet
wallet = int(input("How many wallet do you have?"))
print(buybeers(wallet))发布于 2016-01-08 19:21:29
你有一些遗漏的括号,你的逻辑是错误的。假设您有$5,每种啤酒都要花费$2,那么您可以拥有2啤酒,并保留$1,但是,您的代码将给您3啤酒,现在您还欠下了另一美元。您可以通过使用如下的除法和模数来简化这一点
def buybeers(wallet):
beers = wallet//2
wallet = wallet % 2
return beers, wallet
wallet = int(input("How many wallet do you have?"))
print(buybeers(wallet)) #5 as input
(2, 1)只是修复你得到的语法错误
def buybeers(wallet):
beers = 0
for i in xrange(0,wallet,2):
beers += 1
wallet -= 2
return beers, wallet
wallet = int(input("How many wallet do you have?"))
print(buybeers(wallet)) #5 as input
(3, -1)这不会为您提供正确的输出,因为您的for循环逻辑已关闭。
https://stackoverflow.com/questions/34684356
复制相似问题