IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> Python知识库 -> 记一次用python写序数词转换的经历 -> 正文阅读

[Python知识库]记一次用python写序数词转换的经历

序数词(…st,…nd,…rd,…th)转换的想法

在看python书的时候看到这么一个有趣的练习,根据输入年月日后转换输出,其中对1-31的序数转换来了兴趣,于是就想到能不能设计一段代码将输入的+∞的数都转换成序数呢

思路

一开始的想法是通过for循环将规律找出来,但仔细一想,转换序数的规律用for循环的话不好找到。规律是这样的,1,2,3英文序数写作first,second,third,简写为1st,2nd,3rd,作为英语学渣的我都忘了11,12,13的英文序数是eleventh,twelfth,thirteenth,也就是11th,12th,13th,再往上的个位数为1,2,3的都以st,nd,rd结尾,除此以外都是以th结尾,这就有一个规律不好找的问题。思索半天想到取余,可是设置什么数合适是一个问题,10?可是有一个问题,结尾为11,12,13作为特殊的几个数用10取余并不可取,于是我就想到了100,取余后经过几次判断得到最终结果,想法可行,办它!!!

写代码过程

# 首先获取输入,以便后续判断
number = input("请输入一个数x以得到该数的简写序数(x∈+∞):")

# 然后获取输入数除以100得到的余数
new_number = number % 100
# 关于特殊的1,2,3的问题我的思路是设置一个列表,以作判断
number_list = (1, 2, 3, 11, 12, 13, 21, 22, 23,
				31, 32, 33, 41, 42, 43, 51, 52, 53,
				61, 62, 63, 71, 72, 73, 81, 82, 83,
				91, 92, 93)

写到后面的if语句的时候才发现列表设置不合理,如果将个位数为1,2,3的数都放到一个列表里的话,那么判断的难度将会加大不少,于是便有了以下改动:

# 首先获取输入,以便后续判断
number = input("请输入一个数x以得到该数的简写序数(x∈+∞):")

# 然后获取输入数除以100得到的余数
new_number = number % 100
# 将个位数为1,2,3的数分三个列表存放,以便判断
number_list_1 = (1, 21, 31, 41, 51, 61, 71, 81, 91)
number_list_2 = (2, 22, 32, 42, 52, 62, 72, 82, 92)
number_list_3 = (3, 23, 33, 43, 53, 63, 73, 83, 93)


# 因为是做+∞的序数转换,所以这里0及以下的数不做考虑
if number <= 0:
    print("输出错误!")
# 将个位数为1的输出为.1st,以下同理    
elif new_number in number_list_1:
    print(f"\n该数的简写序数为:{number}st")
elif new_number in number_list_2:
    print(f"\n该数的简写序数为:{number}nd")
elif new_number in number_list_3:
    print(f"\n该数的简写序数为:{number}rd")
else:
    print(f"\n该数的简写序数为:{number}th")

总结

如果不是突然的突发奇想的话,我大概再遇到这种问题的时候会有些手足无措,什么感觉呢,就是那种给个数据范围限制的话,可以很快得到方案,但这种1到+∞的开区间,第一感觉就是比较复杂,但最终看到输出后,原来可以这么简单,所以,人千万不能停止思考啊,所有莫名的想法都会成为驱动生产力的动力,瑞斯拜!

  Python知识库 最新文章
Python中String模块
【Python】 14-CVS文件操作
python的panda库读写文件
使用Nordic的nrf52840实现蓝牙DFU过程
【Python学习记录】numpy数组用法整理
Python学习笔记
python字符串和列表
python如何从txt文件中解析出有效的数据
Python编程从入门到实践自学/3.1-3.2
python变量
上一篇文章      下一篇文章      查看所有文章
加:2021-12-16 17:37:39  更:2021-12-16 17:39:58 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/16 6:00:37-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码