我正在编写一个带字符串的函数,并确定它是否为整数。
在大多数情况下它运作良好。我唯一的问题是当我在数字前面使用+或 - 时。我以为我已经考虑到了我的while循环,但它似乎没有执行。这是我的代码:
def isInteger(sentence):
"""(str) -> bool
takes veriable sentence, which is a string, and returns true if it is
an integer
>>> isInteger('75931')
True
>>> isInteger('345L55')
False
"""
value = True #Assume the string is a digit
if len(sentence) > 0:
sentence = sentence.strip()
else:
value = False
if sentence[0] == '+' or sentence[0] == '-' or sentence[0].isdigit() == True:
count = 1
while count < len(sentence) and sentence[count].isdigit() == True:
if sentence.isdigit() == True:
count += 1
else:
value = False
break
else:
value = False
print(value) #test
return value
答案 0 :(得分:0)
如果字符串以+
或-
开头,则if
条件通过:
if sentence[0] == '+' or sentence[0] == '-' or sentence[0].isdigit() == True:
但是,while
的条件仍然失败,因为您正在使用sentence[0].isdigit()
进行测试。
一个简单的解决方法是在检查后跳过第一个字符:
if sentence[0] == '+' or sentence[0] == '-' or sentence[0].isdigit():
count = 1
sentence = sentence[1:] # here
答案 1 :(得分:0)
while循环后的检查导致该值返回False,因为您正在检查整个句子。
if sentence.isdigit() == True:
改用它?
if sentence[count].isdigit() == True: