2
我正在做舊的99瓶歌曲,並試圖使用While循環來幫助我繼續更好地學習該循環類型。TypeError:沒有足夠的格式字符串參數 - 使用While循環
我想知道爲什麼我會在下面的代碼中得到TypeError,以及我錯過了哪些參數?
這裏是我的代碼:
# Get number of beers
bottles = int(raw_input("How many bottles of beer? "))
# return invalid response
if bottles < 1:
print "That's not a good number"
if bottles == 1:
s1 = "bottle"
s2 = "bottles"
elif bottles == 2:
s1 = "bottles"
s2 = "bottles"
# sing verses
while bottles > 0:
print "%d %s of beer on the wall," % bottles, s1
print "%d %s of beer." % bottles, s1
print "You take one down, pass it around,"
print "%d %s of beer on the wall." % (bottles - 1), s2
print
bottles -= 1
這裏是錯誤:
Traceback (most recent call last):
File "beer.py", line 47, in <module>
print "%d %s of beer on the wall," % bottles, s1
TypeError: not enough arguments for format string
我周圍使用括號嘗試 「瓶,S1的」 %之後,但仍然沒有按」幫助。有什麼建議麼?
使用'(瓶,S1)'對我的作品。 – Tim
如果瓶子的輸入是10,那該怎麼辦?s1'和's2'的定義在哪裏? – jdi
如果您將'bottles'設置爲大於2的任何值,那麼您的代碼將生成NameError,因爲在這種情況下,您的if/elif都不會執行。您應該將elif更改爲if。此外,它看起來像你有一個縮進問題。 if/elif不應該放在'如果瓶子<1'的位置。 – BrenBarn