string3 = "abc 123 $$%%"
list1 = string3.split()
print(list1)
for i in list1:
if int(i) > 0:
print("it's a number")
else:
print("not a number")
获得以下错误:
if int(i) > 0:
ValueError: invalid literal for int() with base 10: 'abc'
答案 0 :(得分:0)
>>> str = "abc 123 $$%%"
>>> [int(s) for s in str.split() if s.isdigit()]
[123]
答案 1 :(得分:0)
使用i.isdigit()
string3 = "abc 123 $$%%"
list1 = string3.split()
print(list1)
for i in list1:
if i.isdigit():
print("it's a number")
else:
print("not a number")
答案 2 :(得分:0)
奇特的方式:
>>> s = "abc 123 $$%%"
>>> map(int,filter(str.isdigit,s.split()))
[123]
说明:
s.split()
将字符串拆分为空格并生成:['abc', '123', '$$%%']
str.isdigit
是一个函数,如果参数中的所有字符都是数字,则返回True
。filter
过滤掉未通过测试的列表元素。第一
参数是测试函数:str.isdigit
,第二个参数是列表。map
将一个列表转换为另一个列表。第一个参数是转换函数int
,第二个参数是从filter
找到的列表。答案 3 :(得分:0)
试试这个
string3 = "abc 123 $$%%"
list1 = string3.split()
print(list1)
for i in list1:
if i.isdigit():
print("it's a number")
else:
print("not a number")
<强>输出强>:
[&#39; abc&#39;,&#39; 123&#39;,&#39; $$ %%&#39;]
不是数字
它是一个数字
不是数字
答案 4 :(得分:0)
string3 = "abc 123 $$%%"
list1 = string3.split()
print(list1)
for i in list1:
try:
int(i)
print("It is a number")
except ValueError:
print("It is not a number")
试试此代码