我的程序应该反转输入的字符串,打印然后提取数字并在列表中打印反转字符串的数字。
def reverse_str(string):
revstring =('')
length=len(string)
i = length - 1
while i>=0:
revstring = revstring + string[i]
i = i - 1
return revstring
def strip_digits(string):
result = []
for c in string:
result = result + c
string = raw_input("Enter a string->")
new_str = reverse_str(string)
print new_str
numberless_str = strip_digits(string)
print numberless_str
答案 0 :(得分:4)
将str
放入list
result = result + [c]
或使用append()
result.append(c)
答案 1 :(得分:1)
我猜strip_digits()
正在进行中?当它进入for循环时写入它,它会尝试将字符串c
附加到列表[]
上。你不能这样做。您可以将字符串附加到另一个字符串,或将列表附加到另一个列表。
也许你的意思是result
作为一个空字符串开始,就像reverse_str
一样?
def strip_digits(string):
result = ''
for c in string:
result = result + c
或者如果您希望它成为列表,请先将c
放入列表中,或使用append()
:
def strip_digits(string):
result = []
for c in string:
result = result + [c]
# or: result.append(c)
答案 2 :(得分:1)
如果您想将它们作为列表,则应更改:
result = result + c
成:
result.append (c)
但是,请记住,您的代码并不完全符合您的规范。
具体来说,你的函数strip_digits
不是剥离(即丢弃)数字,它实际上是在列出它们,所以我将其重命名为{{1} }。我也将get_digits
更改为numberless_str
,因为它根本不是无数的。
其次,它从输入字符串中获取所有字符,而不仅仅是数字。
第三,它是作用于原始字符串而不是反向字符串。
最后,您应该从您的函数返回 number_str
,否则您什么也得不到(result
)。
代码最好写成:
None