题目: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)breakexcept:print('请输入正确数据')continue

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

下面以判断a为int或是float作为例子: 用try....except....实现,判断b同理。随后可进行计算(略)

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

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

  1. python判断质数的函数并输出_【python基础】|| 用python判断输入的数是否为素数

    微信公众号:龙跃十二 我是小玉,一个平平无奇的小天才!持续更新,欢迎关注! 用心分享,共同成长 没有什么比你每天进步一点点更实在了 本文已经收录至我的GitHub,欢迎大家踊跃star . https ...

  2. Python判断输入的数是否是完数

  3. Python -- 定义一个函数,判断输入的数是不是质数

    Python – 定义一个函数,判断输入的数是不是质数 质数是指在大于1的自然数中,除了1和它本身以外不再有其他因数的自然数,否则称为合数. #定义一个函数,判断该数是不是质数 def sum(n): ...

  4. python判断回文数字,Python判断回文数的三种方法实例

    需求: 从控制台输入一个五位数,如果是回文数就打印"是回文数",否则打印"不是回文数",例如:11111 12321 12221 "回文"是 ...

  5. 判断输入的数是否质数,求范围内的质数有哪些

    /*质数判断2个条件: * 条件1:判断是否为分数,得出分数i * 条件2:如果成立就是质数,否则是合数 * */ package Day12; import java.util.Scanner; p ...

  6. 5.随机输入一个整数,判断输入的数是正数、负数还是0,如果是正数那么我们输出,”刚刚输入的一个正数”,如果是负数,那么我们输出,”刚刚输入的那个数是负数”,如果我们输入的0的话,那么我们出输,”刚刚输

    package com.javaprictic.homework; import java.util.Scanner; public class Test02 {     public static ...

  7. python判断输入的内容是否为一个数字(整数、负数)

    python判断输入的内容是否为一个数字 isdigit() 方法检测字符串是否只由数字组成,返回True或False def is_number(s):s = str(s)if s.count('. ...

  8. python判断回文_用python判断回文数

    信息举报 时间:2020-11-23 本页为您甄选多篇描写用python判断回文数,用python判断回文数精选,用python判断回文数大全,有议论,叙事 ,想象等形式.文章字数有400字.600字 ...

  9. python判断回文数_Python练习题---判断回文数

    设n是一个任意自然数,如果n的各位数字反向排序所得的自然数与n相等,则n被称为回文数,从键盘输入一个5位数字 ,请编写程序判断这个数字是不是回文数. 思路:先获取一个字符串,再判断该字符串是否满足是自 ...

最新文章

  1. 第九周项目实践2 二叉树遍历的递归算法
  2. boost::graph模块实现dijkstra算法的测试程序
  3. UG集成显卡 显示成烂面
  4. SAP CRM呼叫中心里多重Contact person confirm的处理
  5. python编程小案例_用Python3编程写第一个小案例!-Go语言中文社区
  6. 【CodeChef - CLIQUED 】Bear and Clique Distances(建图,缩点技巧,思维)
  7. Г函数(伽马函数)、分布
  8. SimpleDateFormat 线程不安全及解决方案
  9. [转载] application/json 四种常见的 POST 提交数据方式
  10. linux vi 内存,Vi Linux内存 之 Slub分配器(四)
  11. Python学习-20180105
  12. 也谈怎么学好英语这件小事(转)
  13. tomcat .appcache html5离线缓存,html5 application cache遇到的严重问题
  14. Python安装 chardet
  15. ROS智能车自主导航roslaunch racecar_gazebo racecar_runway_navigation.launch报错
  16. dw01均衡电路_电池平衡电路工作原理
  17. ROS学习笔记7:gazebo搭建机器人学习
  18. Argument(s) are different! Wanted:
  19. vue中下载文件使用file-saver,文件错误excel无法打开
  20. 中国基因工程药物产业应用市场需求及投融资动态分析报告2021-2027年

热门文章

  1. Manjaro安装配置小记
  2. 每个程序员都有的经历:从程序员到高级架构师,必须经历的三个阶段
  3. 04以太坊测试网(Testnets)
  4. 2、JavaScript快速入门
  5. 非对称加密——RSA算法JAVA代码实践
  6. 高通平台GPIO模拟PWM控制背光
  7. 微服务--Gateway--服务网关
  8. C语言实现来实现字符串反转,只有单词顺序反转,组成单词的字母不反转
  9. RxJava之过滤操作符
  10. TreeMap的用法