def numberToText(number):
if number == 1:
return('one')
elif number == 2:
return('two')
elif number == 3:
return('three')
elif number == 4:
return('four')
elif number == 5:
return('five')
elif number == 6:
return('six')
elif number == 7:
return('seven')
elif number == 8:
return('eight')
elif number == 9:
return('nine')
elif number == 10:
return('ten')
def tenGreenBottles():
print ("How many bottles to start with?")
bottles = int(input())
for i in range (bottles, 0, -1):
print "%g green bottles, hanging on the wall" %numberToText(i)
print "%g green bottles, hanging on the wall" %numberToText(i)
print "and if one green bottle, should accidentally fall"
bob = i - 1
print "there'd be %g green bottles." %numberToText(bob)
print
私はこのコードをしばらく使用していますが、Forループで何をしても、文字列の代わりにNaNが出力されます。関数numberToText
は、Forループを使用して文字列の書式を指定するときに意図したとおりに機能します。Python forループは、文字列出力の代わりにNaNを返します。
これは実行しているコードとまったく同じですか?もしそうなら、インデントが悪いために複数の構文エラーが発生するはずです。これはPythonでは非常に重要です。実際に実行していることがわかるように、コードのインデントを修正してください。 –
numberToTextが間違ってインデントされました! –
私は '%d'に変更した時点で、" undefined "と表示されます。 – Adam