Python将+视为数字?

时间:2017-08-03 11:34:00

标签: python string digit

基本上我正在制作一小段代码来删除字符串的结束字符,直到字符串通过.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是否将+视为数字?

2 个答案:

答案 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)

试试这个