1

我正在尝试使用 python 3.6 的新 f-string 功能在墙上编写自己的 99 瓶啤酒实现,但我被困住了:

def ninety_nine_bottles():
    for i in range(10, 0, -1):
        return (f'{i} bottles of beer on the wall, {i} of beer! You take one down, pass it around, {} bottles of beer on the wall')

如何减少最后一对括号中的“i”?我试过 i-=1 无济于事(语法错误)...

4

1 回答 1

5

你在{i - 1}那儿找。i -= 1是 f 字符串中不允许的语句。

除此之外,你不应该从你的函数中返回;这只会导致for循环执行的第一次迭代。取而代之的是,要么print创建一个列表,要么将字符串连接起来。

最后,考虑将瓶子的起始值传递给ninety_nine_bottles

总而言之,使用以下内容:

def ninety_nine_bottles(n=99):
    for i in range(n, 0, -1):
        print(f'{i} bottles of beer on the wall, {i} of beer! You take one down, pass it around, {i-1} bottles of beer on the wall')
于 2018-03-18T13:02:05.223 回答