我在python上编写小程序只是为了了解split
和isdigit
函数的工作原理
计划是:
s = input('type something:')
if s.isdigit():
a = s.split()
a = list(map(int, a))
print('What you typed was number and it was converted to integer')
print('Result is:', a)
else:
a = s.split()
print('What you typed was words it was not converted to integer')
print('Result is:', a)
问题是什么......当我键入一个单一的数字程序工作正常。 isdigit
检查号码。 (真的列表包含数字)。
当我输入4(只有一个数字 - 那很好)
但是当我键入3 6 4 2 6 3时,多个号码isdigit
无法检查
为什么?
答案 0 :(得分:1)
正如所有评论已经说过:空白不是数字,因此字符串" 3 6 4 2 6 3"将返回False。
>>> print("3 6 4 2 6 3".isdigit())
False
您可以使用replace()函数删除所有空格:
>>> print("3 6 4 2 6 3".replace(" ", "").isdigit())
True
答案 1 :(得分:-2)
这是因为s
是string
类型
如果您想检查字符串s
中的每个符号是否为数字,您应该尝试[x.isdigit() for x in a]
之类的内容。