如果1到x是用文字写出的,则此未完成的代码将返回字母总数:
#!/usr/bin/python
def Base1(n):
if (n==1):
return len('one')
if (n==2):
return len('two')
if (n==3):
return len('three')
if (n==4):
return len('four')
if (n==5):
return len('five')
if (n==6):
return len('six')
if (n==7):
return len('seven')
if (n==8):
return len('eight')
if (n==9):
return len('nine')
def Base10(g):
if (g == 10):
return len('ten')
if (g == 11):
return len('eleven')
if (g == 12):
return len('twelve')
if (g == 13):
return len('thirteen')
if (g == 14):
return len('fourteen')
if (g == 15):
return len('fifteen')
if (g == 16):
return len('sixteen')
if (g == 17):
return len('seventeen')
if (g == 18):
return len('eightteen')
if (g == 19):
return len('nineteen')
if (g == 20):
return len('twenty')
if (g > 20):
return BiggerThan20(g)
def BiggerThan20(t):
if t<30:
return len('twenty')+Base1(t-20)
if t<40:
return len('twenty')+Base1(t-20)
def trial(runcounter):
summitup = 0
if (len(str(runcounter))==1):
summitup += Base1(runcounter)
if (len(str(runcounter))==2):
summitup += Base10(runcounter)
return summitup
lettersum = 0
start = int(input("Please enter an integer: "))
for k in range(1, start+1, 1):
lettersum += trial(k)
#print (k, lettersum)
print(lettersum)
它可以运行到29,但是如果我输入任何东西>;=30,bash将返回以下输出:
^{pr2}$我不熟悉编程,不知道为什么会出现这种错误。在
当BiggerThan20中的第一个if语句变成false时,Base1似乎突然返回None。在
我很感激你能提供的任何帮助。在
解决了! 我忘了关心十个。。。 谢谢你的帮助
falsetru是正确的。在
也许你想要这样:
未来:
^{pr2}$Base1
不为数字10或更大的数字返回任何内容。在Base10
,BiggerThan20
也有同样的问题。在Base10
对于小于10的数字不返回。在BiggerThan20
对于number>;=40,不返回。在相关问题 更多 >
编程相关推荐