Python判断输入的数是否为数值类型,如果是则指出类型

这篇具有很好参考价值的文章主要介绍了Python判断输入的数是否为数值类型,如果是则指出类型。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

题目:Python:判断输入的数是否为数值类型(int或float),如果可以的话,请指出类型。

情景: 假如有个程序,输入a和b两个数,程序可以判断a和b到底是不是数值类型(即是整数还是浮点数),若不是则要求用户重新输入,若是则对a和b进行运算(+-*/等),如果可以的话请转化成相应的int或float类型

文章涉及: isdigit(),replace(), try...except....语句, eval()的用法

我遇到这个问题时也看过其他博主的回答,但感觉结果不尽人意,或多或少有点片面,因此随写这么一篇文章。

一.判断a和b 到底是不是数值类型  即输入 123  123.123 等可以过 但 52aa 或 dd52等不能过,这里运用 isdigit()和 replace()来实现。这两个函数功能百度可查到。

a = input()
a_to_judge = a.replace('.','') #将a中的小数点的点‘.’ 去掉,其中replace用法可以百度
if a_to_judge.isdigit():
    print('a为数值类型')
else:
    print('a不是数值类型')

上面的代码实现了对数值类型的判断,即可直接float(a)进行后续计算,但若我们很迫切的想知道a到底为int类型还是float类型该怎么办呢

a = input()
a_to_judge = a.replace('.','') #将a中的小数点的点‘.’ 去掉,其中replace用法可以百度
if a.isdigit():
    print('a为int类型')
    a = int(a)
else:
    if a_to_judge.isdigit():
        print('a为float类型')
        a = float(a)
    else:
        print('请输入正确的数值类型')

二.这项功能还可以用try..except....语句实现 以《python入门到精通》一书的习题为例子,输入height和weight,  计算bmi的值。(下面这个代码可以不看,写的很差)

def bmi(height, weight):
    if (type(eval(height)) == float or type(eval(height)) == int) and (
            type(eval(weight)) == float or type(eval(weight)) == int):
        if eval(height) == 0:
            raise ValueError('高度不能为0')
        hei = float(height)
        wei = float(weight)
        bmi = wei / (hei * hei)
        print(bmi, type(bmi))

try:
    height = input('高')
    weight = input('体重')
    bmi(height, weight)
except (ValueError, TypeError, NameError, SyntaxError,ZeroDivisionError) as e:
    print('请输入正确数据', '错误原因为', e)
else:
    print('运行成功')

上面我是我自己开始写的,但后面改进了很多,如果目的只是计算,而不是去纠结他到底是int还是float 可以这样写,这样很方便,强烈推荐。

while True:
    try:
        a = float(input('a的值为'))
        b = float(input('b的值为'))
        print('计算a+b 值为',a+b)
        break
    except:
        print('请输入正确数据')
        continue

那么如果我们又想要知道a和b具体为int或float中哪个改怎么办呢

下面以判断a为int或是float作为例子: 用try....except....实现,判断b同理。随后可进行计算(略)文章来源地址https://www.toymoban.com/news/detail-463064.html

while True:
    a = input('a的值为')
    try:
       a = int(a)
       print('a为int')
       break
    except:
        try:
            a = float(a)
            print('a为float')
            break
        except:
            print('请输入正确的数值,而不是aa44 55dd这些')
            continue

到了这里,关于Python判断输入的数是否为数值类型,如果是则指出类型的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【Python】进阶学习:判断一个对象是否是NoneType类型

    【Python】进阶学习:判断一个对象是否是NoneType类型 🌈 个人主页:高斯小哥 🔥 高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程👈 希望得到您的订阅和支持~ 💡 创作高质量博文(平均质量分92+),分享更多关于深度学习、

    2024年04月28日
    浏览(40)
  • Python输入账号密码判断是否正确并输出,典型案例-百钱买百鸡的两个程序代码

    目录 前 一、输入账号密码判断是否正确并输出 1.实现的功能 2.代码程序 3.运行截图 二、典型案例-百钱买百鸡 1.实现的功能 2.代码程序 3.运行截图 1.因多重原因,本博文由两个程序代码部分组成,如果想使用快速查找, 建议浏览目录检索; 2.本代码为Python语言,我使用的是

    2024年02月04日
    浏览(57)
  • JS判断输入值是否为正整数,判断变量是否为数字

    这篇文章将讨论如何确定一个变量是否代表 JavaScript 中的有效数字。 1.JS中的test是原来是JS中检测字符串中是否存在的一种模式,JS输入值是否为判断正整数代码: 扩展: 附判断数字、浮点的正则表达:  ”^\\\\d+$” //非负整数(正整数 + 0) “^[0-9]*[1-9][0-9]*$” //正整数 “^(

    2024年02月06日
    浏览(80)
  • 3的幂,给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false。

    题记: 给定一个整数,写一个函数来判断它是否是 3 的幂次方。如果是,返回 true ;否则,返回 false 。 整数 n 是 3 的幂次方需满足:存在整数 x 使得 n == 3^x 示例 1: 输入 :n = 27 输出 :true 示例 2: 输入 :n = 0 输出 :false 示例 3: 输入 :n = 9 输出 :true 示例 4: 输入 :

    2024年02月15日
    浏览(56)
  • C#判断输入的IP地址是否合法

    代码中链接java后端时,要从界面中的输入框读取输入的ip地址,而ip地址尤其特定的格式,因此编写函数判断输入的ip地址是否格式正确,如果格式正确,则返回true;如果格式错误,则返回false。代码如下:

    2024年02月13日
    浏览(51)
  • C语言--输入一个数判断是否为素数(多种方法)

     需要解决这个问题,首先我们要明白 --------什么是素数? (质数)素数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数。 举个例子:4  可以 由2*2=4  和1*4 得到,不符合素数的条件,所以不是素数。                   5  只能由1*5 得到,符合素数的

    2024年01月25日
    浏览(54)
  • uniapp表单密码校验:判断两次密码输入是否一致

    uniapp表单密码校验: 无需使用自定义validator进行校验,使用uniapp文档内自带的this.$u.test.object({value:password})即可。 表单中,prop后是判定校验的规则名,v-model动态绑定data内的值。 在微信小程序中使用,如果不是自定义的判定校验,则在onready中添加setRules方法设置规则: 最后

    2024年02月11日
    浏览(52)
  • C++(11):判断tuple是否含有某个类型

    有的时候需要判断tuple中是否有个某个类型,可以借助变长模板的递归调用方式进行检查: C++(11):变长模板_变长模板参数 c++11-CSDN博客 另外还使用了true_type和false_type:

    2024年02月04日
    浏览(47)
  • es查询nested字段类型数组长度来判断是否包含多个值

    使用es时经常会碰到查询数组格式的字段是否有多个值的情况,总结一下。 一、字段类型为keywork时 当字段类型为keyword时(创建索引后,添加的第一条数据id字段格式为数组格式,便会导致后续的数据都是数组),查询id字段有多值时用以下查询语句: 二、字段类型为nested类型时

    2024年02月11日
    浏览(66)
  • chatgpt赋能python:Python数值区间判断

    Python是一种高级编程语言,具有强大的数值计算和处理功能。在Python中,经常需要进行数值区间判断,以确定一个特定的数值是否位于指定的范围内。本文将介绍Python中常用的数值区间判断方法,并对其进行详细的讲解和示例。 Python中常用的数值区间判断方法包括以下几种:

    2024年02月05日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包