python3.2.2 如何判断输入的字符串为数字,int或者float的,是要写正则表达式吗?
3个回答
展开全部
不用写正则表达式也行的,介绍你两种方法
第一种:将变量转换为float型,如果能成功则是数字,如果抛出错误则不是数字。
代码如
def isisnumber(a):
try:
float(a)
return 'is number' #能成功转换为浮点型,则是数字
except:
return 'not number' #不能成功转换为浮点型,则不是数字
==================================================
第二种:将要判断的每一位转换为ASCII码如果在48-57之间则是数字
代码如
def isnumber(a):
t=0
for i in range(0,len(a)):
if ord(a[i])>57 or ord(a[i])<48: #转化为ascii码 判断每一位是否都为数字
if a[i] != '.' or t==1 : #如果不是数字或第二次出现小数点,那么得到结果不是数字
return 'not number'
elif a[i] == '.': #如果不是数字但是是小数点.那么做个标记,表示已出现过一次小数点
t=1
return 'is number' #如果完成全部循化,则是数字
==========================================
使用时,比如print(isnumber(x)),如果x为数字则会输出is number 如果不是数字 则会输出not number。
希望能对你有所帮助!
第一种:将变量转换为float型,如果能成功则是数字,如果抛出错误则不是数字。
代码如
def isisnumber(a):
try:
float(a)
return 'is number' #能成功转换为浮点型,则是数字
except:
return 'not number' #不能成功转换为浮点型,则不是数字
==================================================
第二种:将要判断的每一位转换为ASCII码如果在48-57之间则是数字
代码如
def isnumber(a):
t=0
for i in range(0,len(a)):
if ord(a[i])>57 or ord(a[i])<48: #转化为ascii码 判断每一位是否都为数字
if a[i] != '.' or t==1 : #如果不是数字或第二次出现小数点,那么得到结果不是数字
return 'not number'
elif a[i] == '.': #如果不是数字但是是小数点.那么做个标记,表示已出现过一次小数点
t=1
return 'is number' #如果完成全部循化,则是数字
==========================================
使用时,比如print(isnumber(x)),如果x为数字则会输出is number 如果不是数字 则会输出not number。
希望能对你有所帮助!
展开全部
给你个简单的方法,在2.7下好用↓
利用isinstance()函数,来判断一个对象是否是一个已知的类型:
lst = []
isinstance(lst, list)
True
isinstance(lst, (int, str, list))
True
利用isinstance()函数,来判断一个对象是否是一个已知的类型:
lst = []
isinstance(lst, list)
True
isinstance(lst, (int, str, list))
True
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
def isisnumber(s):
try:
float(s)
return 1
except:
return 0
s=input("please inupt string:")
if s.isdigit() or isisnumber(s):
print('都是数字!')
else:
print('不知道是什么鬼')
try:
float(s)
return 1
except:
return 0
s=input("please inupt string:")
if s.isdigit() or isisnumber(s):
print('都是数字!')
else:
print('不知道是什么鬼')
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询