gpt4 book ai didi

python - 如何编写一个递归函数,将字符串中的每个字符乘以 2?

转载 作者:太空宇宙 更新时间:2023-11-03 14:24:57 25 4
gpt4 key购买 nike

我正在尝试完成一个递归函数,该函数给定一个数字,返回一个字符串,其中返回的值每个数字都有重复

示例:如果 507,则返回 550077

如果数字只有0则返回0

如果是负数,则只返回一次负号

示例:-507 返回 -550077

我还没有实现任何识别负数的功能,我只是想让我的函数先工作

到目前为止我已经:

def double(x):
if x == 0:
return x
else:
x = str(x)
return x[0]*2 + double(x[1: ])

print(double(527))

但是这会返回 IndexError:字符串索引超出范围我通过打印结果而不是返回结果来使其工作,但我试图解决的问题严格要求返回结果,而不是打印。我究竟做错了什么?

最佳答案

这会递归地工作,修复 x==0 终止错误,在加倍之前检查字符是否是数字,并将最终答案作为 int (而不是 str)返回。

def double(x):
x = str(x)
if len(x) == 0:
return ''
else:
first_char = x[0]

# only double if it's an integer
if first_char in map(str, range(10)):
first_char *= 2
return int(first_char + str(double(x[1: ])))

print(double(-527))

>>> -552277

关于python - 如何编写一个递归函数,将字符串中的每个字符乘以 2?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47704591/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com