这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件简单的事。

我的路还很长,但千里之行始于足下,努力学习,不断总结,持续提高,做自己喜欢做的事,享受快乐 ……

# 写一个判断是小数的函数def is_float(s):    s = str(s)    if s.count('.') == 1:        s_left = s.split('.')[0]        s_right = s.split('.')[1]        if s_left.isdigit() and s_right.isdigit():            return True        elif s_left.startswith('-')and s_left.count('-') == 1 and s_right.isdigit():            if s_left.split('-')[1].isdigit():                return True    return False

# 下面的代码和以上相同,是加了注释的 ^_^
def is_float(s):    s = str(s)   # 强制转化操作是因为传进来的被判断对象的类型具有不确定性,你需要将其统一在一个起点进行处理。    if s.count('.') == 1:  # 小数的首要前提就是有且只有一个小数点。        s_left = s.split('.')[0]  # 以小数点为分界点把字符串拆成左右两部分以备进一步分析。        s_right = s.split('.')[1]        if s_left.isdigit() and s_right.isdigit(): # 小数点左右都是纯的正整数,一个标准的正小数情况。            return True        elif s_left.startswith('-')and s_left.count('-') == 1 and s_right.isdigit():            # 负小数情况稍复杂,首先以负号开头,排除多个负号情况,同时小数点右侧是纯的正整数,在此情况下,            if s_left.split('-')[1].isdigit():  # 小数点左侧负号身后的部分如果是正整数字符,是个合法的负小数                return True    return False    # 除了以上正小数和负小数两种合法的情况外,其它均是不合法情况,上边的判断路线也走不进去,直接返回False结束。    # 而当符合上面的任何条件都会判断是合法小数,返回True结束程序,也走不到最后的return False这个语句。    # 所以不用看到程序最后一句是 return False 而担心。

# 以下是检测上面函数的用例,有没包含的情况吗?
print(is_float(123.456))print(is_float(-123.456))print(is_float(123))print(is_float(-123))print(is_float('123.45.6'))print(is_float('123.4a'))print(is_float('123a.456'))print(is_float('-1-23.456'))print(is_float(.456))print(.456)  # 0.456print(is_float(-.456))print(-.456)  # -0.456print(is_float('..456'))print(is_float(--123))print(--123)  # 123 是整数print(is_float(--.456))print(--.456)   # 0.456 是小数print(is_float(''))

转载于:https://www.cnblogs.com/houzhizhe/p/6957964.html

Python_代码练习_写一个判断是否为小数的函数相关推荐

  1. python自定义函数判断一个数是否大于0_Python_代码练习_写一个判断是否为小数的函数...

    这两天在学习函数,练习写一个判断是否为小数的函数,看起来蛮简单的,飞速写完很是得意,然后测了一下,发现差得好多呀,这个并不像想象那样简单,我得到的教训是,想要把一个需求哪怕再小的需求考虑周全,都不是件 ...

  2. ACMNO.23 C语言-素数判定 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime

    题目描述 写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息. 输入 一个数 输出 如果是素数输出prime 如果不是输出not prime 样例输入 97 样例输出 prime 来源/ ...

  3. 用java写一个判断身份验证是否过期

    要用 Java 写一个判断身份验证是否过期,可以使用 Java 的日期和时间 API,例如:java.time 包中的 Instant 类. 首先,需要存储身份验证的创建时间,并在每次请求时与当前时间 ...

  4. python爬虫都能干什么用_5 行代码就能写一个 Python 爬虫

    欢迎关注我的公众号:第2大脑,或者博客:高级农民工,阅读体验更好. 摘要:5 行代码就能写一个 Python 爬虫. 如果你是比较早关注我的话,会发现我此前的大部分文章都是在写 Python 爬虫,前 ...

  5. 写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息。提示:int main(){int x=23; if (isprime(x)) print

    写一个判断素数的函数(isprime),在主函数输入一个正整数,输出是否是素数的信息. 提示: int main() {int x=23; if (isprime(x)) printf("i ...

  6. 写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息

    写一个判断素数的函数,在主函数输入一个整数,输出是否为素数的信息 #include<stdio.h> #include<math.h> int a; int prime(int ...

  7. python制作u盘病毒_十行代码--用Python写一个USB病毒!

    大家好,我又回来了. 昨天在上厕所的时候突发奇想,当你把usb插进去的时候,能不能自动执行usb上的程序.查了一下,发现只有windows上可以,具体的大家也可以搜索(搜索关键词usb autorun ...

  8. java脚本_写一个在线Java脚本执行器

    在生产环境中,有时候我们想要快速执行一段代码,但是又不得不经历上线的痛苦(分情况哈,有时候这种痛苦是必须的)或者在某些场景中,不能重启避免破坏现场,那么有个在线脚本执行器就最好不过了.于是在工作之余, ...

  9. python写一个游戏多少代码-使用Python写一个贪吃蛇游戏实例代码

    我在程序中加入了分数显示,三种特殊食物,将贪吃蛇的游戏逻辑写到了SnakeGame的类中,而不是在Snake类中. 特殊食物: 1.绿色:普通,吃了增加体型 2.红色:吃了减少体型 3.金色:吃了回到 ...

  10. python写一个服务_写一个Python的windows服务

    1. 安装pywin32和pyinstaller pip install pywin32 pip install pyinstaller 2.写一个服务Demo # -*- coding: utf-8 ...

最新文章

  1. 速领:1024大礼包
  2. 【R语言-20行代码】牛顿迭代法求伽马函数极大似然估计法的参数估计
  3. 子进程无法从标准输入读取数据
  4. Java 源程序与编译型运行区别
  5. JBUILDER 2006怎么配置 STRUTS?[
  6. mysql批量查询版本号最大的_mysql子查询批量找id最大的
  7. 提交日期表单状态操作_奇怪的知识又增加了,表单还能查寝?
  8. Java拓展(数据类型及其大小)
  9. 解决 Error:No suitable device found: no device found for connection System eth0
  10. 通过FTP实现上传和下载
  11. 利用vlmcs客户端区分KMS服务器是KMS模拟器还是正版微软KMS服务器
  12. cad等比例缩放快捷键_CAD比例缩放怎么用,快捷键命令SCALE
  13. DongDong认亲戚 来源:牛客网
  14. Python对Excel的常规操作 之 读取带密码的文件,解除Sheet密码
  15. 使用阿里云实现短信发送服务(测试版)
  16. [solved] login to server failed: EOF
  17. 云控系统机房搭建为什么用到网络交换机?
  18. jsf<h:outpytText>实现换行
  19. Linux进程内存分析pmap命令
  20. uniapp m3u8格式视频加载

热门文章

  1. 多媒体计算机图形,计算机图形学几何造型多媒体可视化虚拟现实.DOC
  2. 比较两个字符数组是否相等_Java比较两个数组是否相等(equals())
  3. Java8 - Stream API快速入门
  4. 学习笔记-小甲鱼Python3学习第二十三、二十四讲:函数:这帮小兔崽子、汉诺塔...
  5. 修改他人代码:怎么才能减少发布Bug概率?
  6. 大家一起用gtk编程4(使用GDB调试程序)[zt]
  7. 我的第一次--我与51CTO的故事
  8. (ORBSLAM3关联文章)论文翻译Inertial-Only Optimization for Visual-Inertial Initialization视觉惯性初始化的仅惯性优化
  9. 2月20日 梯度下降、三种方式、三种超参数学习率冲量衰减因子、应用举例
  10. attention的前世今生