基本上我正在制作一小段代码来删除字符串的结束字符,直到字符串通过.isdigit
。
def string_conversion(string):
for i in string:
if i.isdigit == False:
string = string[0:len[string]-1]
print(string) #This is just here to see if it goes through
test = "60+"
string_conversion(test)
我使用http://www.pythontutor.com/visualize.html来查看为什么我没有获得任何输出,它将+符号作为数字传递,就像数字6和0一样。
我做错了什么或者python是否将+
视为数字?
答案 0 :(得分:2)
str.isdigit
是一种方法而不是属性,所以(正如评论中已经提到的那样)你需要调用它。
另外,您检查isdigit
的每个字符(从左侧开始),但如果未通过isdigit()
测试,则从右侧删除字符。这似乎不对。您可能希望迭代for i in reversed(string)
(或使用切片:for i in string[::-1]
)。
但您也可以使用while
循环来简化逻辑:
def string_conversion(string):
while string and not string.isdigit():
string = string[:-1]
return string
答案 1 :(得分:1)
def string_conversion(string):
for i, s in enumerate(string):
if s.isdigit() == False:
string = string[:i]
break
print(string) #This is just here to see if it goes through
test = "60+"
string_conversion(test)
试试这个