我正在创建一个python脚本,打印出'99瓶啤酒'的整首歌曲,但是相反.我唯一无法逆转的是数字,整数,而不是字符串.
这是我的完整脚本,
def reverse(str):
return str[::-1]
def plural(word, b):
if b != 1:
return word + 's'
else:
return word
def line(b, ending):
print b or reverse('No more'), plural(reverse('bottle'), b), reverse(ending)
for i in range(99, 0, -1):
line(i, "of beer on the wall")
line(i, "of beer"
print reverse("Take one down, pass it around")
line(i-1, "of beer on the wall \n")
Run Code Online (Sandbox Code Playgroud)
我理解我的反向函数将字符串作为参数,但是我不知道如何接受整数,或者如何在脚本中反转整数.
不将数字转换为字符串:
def reverse_number(n):
r = 0
while n > 0:
r *= 10
r += n % 10
n /= 10
return r
print(reverse_number(123))
Run Code Online (Sandbox Code Playgroud)
你正以一种奇怪的方式接近这一点.你已经有了一个倒车功能,那么为什么不以正常方式line建造线路呢?
def line(bottles, ending):
return "{0} {1} {2}".format(bottles,
plural("bottle", bottles),
ending)
Run Code Online (Sandbox Code Playgroud)
其中运行如下:
>>> line(49, "of beer on the wall")
'49 bottles of beer on the wall'
Run Code Online (Sandbox Code Playgroud)
然后将结果传递给reverse:
>>> reverse(line(49, "of beer on the wall"))
'llaw eht no reeb fo selttob 94'
Run Code Online (Sandbox Code Playgroud)
这样可以更容易地分别测试代码的每个部分,并查看将它们放在一起时发生了什么.
| 归档时间: |
|
| 查看次数: |
26236 次 |
| 最近记录: |