本博文将使用python对长度单位、时间单位、重量单位、字节单位等实现单位换算。

1、长度单位

示例代码:

import redef length_conversion(num: str, unit: str = 'm'):"""长度单位由大到小包括:千米(km)、米(m)、分米(dm)、厘米(cm)、毫米(mm)"""dic_conversion = {'km': 1000 * 10 * 10 * 10, 'm': 10 * 10 * 10, 'dm': 10 * 10, 'cm': 10, 'mm': 1}try:unit_name = re.findall(r"[^\d].*", num)[0].strip().lower()  # 匹配不以数字开头的字符串num_value = int(re.findall(f"\d*", num)[0])except Exception as e:print(e)return f"您输入的数值:{num}格式错误!"if unit_name.lower() not in ['km', 'm', 'dm', 'cm', 'mm']:return f"您输入的数值:{num}格式错误!"if unit_name == 'km':mm_value = num_value * dic_conversion['km']elif unit_name == 'm':mm_value = num_value * dic_conversion['m']elif unit_name == 'dm':mm_value = num_value * dic_conversion['dm']elif unit_name == 'cm':mm_value = num_value * dic_conversion['cm']else:mm_value = num_valuereturn mm_value / dic_conversion[unit]if __name__ == '__main__':num = '65Km'res = length_conversion(num, 'm')print(res, type(res))print(length_conversion('65m'))print(length_conversion('65dm'))print(length_conversion('65cm'))print(length_conversion('65mm'))

运行结果:

2、时间单位

示例代码:  【年月转换目前存在问题】

import redef time_conversion(num: str, unit: str = 's'):"""时间单位由大到小包括:年(year)、月(month)、日(day)、时(hour)、分(minute)、秒(second)""""""一月默认30天计算,一年365年"""tips = '年(year)、月(month)、日(day)、时(hour)、分(minute)、秒(second)'dic_conversion = {'year': 365 * 24 * 60 * 60, 'month': 30 * 24 * 60 * 60, 'day': 24 * 60 * 60, 'hour': 60 * 60, 'minute': 60, 'second': 1}try:unit_name = re.findall(r"[^\d].*", num)[0].strip().lower()  # 匹配不以数字开头的字符串num_value = int(re.findall(f"\d*", num)[0])except Exception as e:print(e)return f"您输入的数值:{num}格式错误!请参考:{tips}"if unit_name.lower() not in ['year', 'month', 'day', 'hour', 'minute', 'second']:return f"您输入的数值:{num}格式错误!请参考:{tips}"if unit_name == 'year':mm_value = num_value * dic_conversion['year']elif unit_name == 'month':mm_value = num_value * dic_conversion['month']elif unit_name == 'day':mm_value = num_value * dic_conversion['day']elif unit_name == 'hour':mm_value = num_value * dic_conversion['hour']elif unit_name == 'minute':mm_value = num_value * dic_conversion['minute']else:mm_value = num_valuereturn mm_value / dic_conversion[unit]if __name__ == '__main__':num = '2year'res = time_conversion(num, 'day')print(res, type(res))print(time_conversion('2day', 'second'))print(time_conversion('2hour', 'second'))print(time_conversion('2minute', 'second'))print(time_conversion('2second', 'second'))

运行结果;

3、字节单位

示例代码:

import redef bytes_conversion(num: str, unit: str = 'M'):"""字节单位由大到小包括:B、K、M、G、T、P"""tips = 'K、M、G、T、P'dic_conversion = {'K': 1, 'M': 1024 ** 1, 'G': 1024 ** 2, 'T': 1024 ** 3, 'P': 1024 ** 4}try:unit_name = re.findall(r"[^\d].*", num)[0].strip().upper()[0]  # 匹配不以数字开头的字符串num_value = int(re.findall(f"\d*", num)[0])except Exception as e:print(e)return f"您输入的数值:{num}格式错误!请参考:{tips}"if unit_name not in ['B', 'K', 'M', 'G', 'T', 'P']:return f"您输入的数值:{num}格式错误!请参考:{tips}"if unit_name == 'P':mm_value = num_value * dic_conversion['P']elif unit_name == 'T':mm_value = num_value * dic_conversion['T']elif unit_name == 'G':mm_value = num_value * dic_conversion['G']elif unit_name == 'M':mm_value = num_value * dic_conversion['M']else:mm_value = num_valuereturn mm_value / dic_conversion[unit[0].upper()]if __name__ == '__main__':num = '2GB'res = bytes_conversion(num, 'm')print(res, type(res))print(bytes_conversion('1024m', 'GB'))print(bytes_conversion('1m', 'K'))

运行结果;

python实现单位换算计算相关推荐

  1. python字节单位换算

    python字节单位换算,将'B'转换为'B', 'K', 'M', 'G', 'T', 'PB') def StrOfSize(size):'''递归实现,精确为最大单位值 + 小数点后三位'''d ...

  2. 第一个python程序 单位换算

    第一个python程序 humansize.py ,这个脚本定义了一个单一的函数,这个approximate_size()函数把一个精确到字节的文件大小计算成一个有漂亮格式(大约计算的)的大小. 脚本 ...

  3. 米的换算单位和公式_数学单位换算公式,1-6年级计算必备!

    原标题:数学单位换算公式,1-6年级计算必备! 在小学数学的学习中,单位换算贯穿始终.无论是在小升初数学考试中,还是在生活方面,都会涉及单位换算的问题. 在小学阶段,主要涉猎的单位换算包括长度.面积. ...

  4. 计算机存储单位和网速单位换算,数据速度计算:在线进行网速各种bps mbps kbps B/秒 KB/秒 MB/秒单位之间换算...

    数据速度计算:在线进行网速各种bps mbps kbps B/秒 KB/秒 MB/秒单位之间换算 2018-12-14 1. 数据单位的换算(可进行手机上网流量,硬盘容量,内存容量,显存容量,缓存容量 ...

  5. java通过坐标计算距离,并进行单位换算

    <dependency><groupId>org.gavaghan</groupId><artifactId>geodesy</artifactI ...

  6. 用python做简单的单位换算程序

    大家好,在单位换算中,有些人时不时把单位换算错误.混淆,造成不必要的烦恼. 所以我今天跟大家分享的内容就是用python的math和time模块做的单位换算小程序(目前做的单位还不全面,只有一些常用单 ...

  7. python与材料计算公式_《从问题到程序:用Python学编程和计算》——2.11 补充材料-阿里云开发者社区...

    本节书摘来自华章计算机<从问题到程序:用Python学编程和计算>一书中的第2章,第2.11节,作者 裘宗燕,更多章节内容可以访问云栖社区"华章计算机"公众号查看. 2 ...

  8. Python 第三方模块 科学计算 SciPy模块1 简介,常数,IO

    官方文档:https://www.scipy.org/\qquadhttps://docs.scipy.org/doc/scipy/reference/index.html 一.基本信息 1.介绍: ...

  9. python tkinter 单位转换工具

    文章目录 前言 一.最终效果 二.设计思路 1.整体布局 2.布局代码 三.整体逻辑 3.1单位类型选择 3.2 单位转换 3.2.1 体积单位转换 3.2.2 面积单位转换 3.2.3 长度单位转换 ...

最新文章

  1. 基于深度学习的自然图像和医学图像分割:网络结构设计
  2. canvas初体验之加载图片
  3. java高性能阻塞队列,Linux c/c   后台开发组建之:高性能阻塞队列
  4. session中存放一个对象,只修改对象的属性,不将修改后的对象存放session,发现session中存放的对象也发生改变!
  5. 10款精选的用于构建良好易用性网站的jQuery插件
  6. HDU1251 统计难题 trie树 简单
  7. 【C语言】C语言里++能随便用吗?
  8. python123m与n的数学运算_python小白进阶之路三——循环结构入门练习+Random库练习...
  9. 经典排序算法(七)--冒泡排序Bubble Sort
  10. rocketmq 两个线程同时消费一个消息
  11. 操作系统学习笔记(一)
  12. zuc算法代码详解_ZUC算法原理及实现过程.doc
  13. 软件项目经理应具备的素质和条件_软件企业项目经理应具备的基本能力
  14. golang mysql null_Golang将变量声明为NULL
  15. 7、Cannot broadcast operands together.
  16. 没有任何借口-----提升职场能力的文章
  17. 力扣5713. 字符串中不同整数的数目
  18. collections.Counter 用法
  19. CentOS7 配置与管理DHCP服务器及DHCP中继代理 DHCP服务实训整合
  20. 8. python基础之基础数据类型--bytes

热门文章

  1. 序列化二叉树(序列化和反序列化)
  2. 人工神经网络算法模型简介
  3. 怎么在命令行里运行python脚本 (合集)
  4. css+javascript网页抖动图标、抖动制作教程,输入抖动命令js执行命令让网页抖动起来(详细版)
  5. WebLogic域配置策略
  6. MSN无法登陆折射本地化之殇
  7. mysql 导入dmp_navicat如何导入dmp
  8. 前目的地罗伯森是谁_《前目的地》阴谋论,还有一些疑点分析
  9. JavaScript 名称排序示例
  10. 华硕飞行堡垒安装Ubuntu16.04