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
基本上我正在编写一小段代码来删除字符串的结束字符,直到字符串通过 .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