黑马程序员技术交流社区
标题:
技术笔记
[打印本页]
作者:
Aldebaran
时间:
2019-3-27 13:00
标题:
技术笔记
近期学习了Python中字符串的 .isdigit() .isdecimal() .isnumeric()方法,发现这三者均不能判断一个小数是否为数,比如1.23。
于是练习写了一段判断字符串是否为数的函数,包含了浮点型的判断,抛砖引玉,请大佬轻拍...
def
isnumber
(num):
if
num.isdecimal():
# 是整形就不用判断了
num =
int
(num)
elif
num.find(
'.'
) == num.rfind(
'.'
)
and
num.find(
'.'
) != -
1
:
# 左右都搜索“.”,如果索引存在且一致,说明只有一个“.”
num_1 = num[:num.find(
'.'
)] + num[(num.find(
'.'
)+
1
):]
# 这里把“.”给剔除掉
if
num_1.isdecimal():
# 把“.”剔除掉后再判断是否是数
num =
float
(num)
else
:
print
(
'%s is not a number.'
% num)
return False
else
:
print
(
'%s is not a number.'
% num)
return False
print
(
'%s is a number, type: %s'
% (num
,
type
(num)))
return True
num0 =
input
(
'Please input a string: '
)
isnumber(num0)
作者:
Aldebaran
时间:
2019-3-27 22:53
def isnumber(num):
try:
print(float(num), '是数')
except:
print('%s非数' % num)
num0 = input('Please input a string: ')
isnumber(num0)
好像这样也可以。
作者:
Aldebaran
时间:
2019-3-27 22:54
def isnumber(num):
try:
print(float(num), '是数')
except:
print('%s非数' % num)
num0 = input('Please input a string: ')
isnumber(num0)
这个好像也可以
作者:
Aldebaran
时间:
2019-3-27 22:56
def isnumber(num):
try:
print(float(num), '是数')
except:
print('%s非数' % num)
num0 = input('Please input a string: ')
isnumber(num0)
这个好像也可以
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2