有一个古老的传说,一个智者,当他提供任何奖励,他想要,要求他的第一个孙子得到1枚硬币,他的第二个孙子得到两倍于第一个,第三个得到两倍于第二个,以此类推。最后一个孙子会得到多少硬币?孙子们总共能得到多少硬币?您的函数应该接受任意数量的孙子,并返回一个声明来解决这两个问题。到目前为止,我已经知道了
def grandchild_coins(number_of_grand_children):# Not finished
Coins=1
for grand_child in range(number_of_grand_children):
Coins=Coins*2
return ' Grand child' + str(grand_child) + ' ' + str(Coins) + ' Coins'
grandchild_coins(10)
Out[33]: ' Grand child9 1024 Coins'
我怎样才能让它列出每个孙子有多少硬币?你知道吗
谢谢你们的帮助
def grandchild_coins(number_of_grand_children):
# initalizes coins to 1
Coins=1
total_coins=[]
# for grand_child in the range entered this code is ran
for grand_child in range(number_of_grand_children):
# if the grand_child number is not 0 coins = coins*2
if grand_child !=0:
Coins=Coins*2
# prints coins for each grand_child
print ' Grand_Child' + str(grand_child) + str( Coins)
total_coins.append(Coins)
# returns total amount of coins
return sum(total_coins) + ' Coins in total'
每次迭代都需要一个
print
语句(而不是只在末尾使用return
):注意:这回答了你的问题,而不是你家庭作业中的问题。。。你知道吗
顺便说一下,你不需要循环来解决这个问题,有一个简单的公式。。。你知道吗
这是因为您只返回范围中的最后一个元素(grand_child将等于9-范围(10)表示从0到9的迭代) 所以,我建议(尽量接近你的代码):
以及输出:
相关问题 更多 >
编程相关推荐