Python 将 + 视为数字?

Python treats + as a 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 将 + 视为数字?

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)

试试这个

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