目录
6.Python 字典的 cmp() 函数用于比较两个字典元素
1.控制浮点数输出的位数的三种方法:
- 使用round函数,用法为:round( x,n ),x为浮点数,n为保留的小数位数参数是可选的如果不写那么默认不保留小数。
- 当参数n不存在时,round()函数的输出为整数。
- 当参数n存在时,即使为0,round()函数的输出也会是一个浮点数。
- 此外,n的值可以是负数,表示在整数位部分四舍五入,但结果仍是浮点数。
- 例子:print(round(123.45)) print(round(123.45,0)) print(round(123.45,-1))
- 利用 "%.nf" 输出n位小数,四舍五入。
- 例子:print('%.2f'%1.0000)
- 使用format函数格式化数字输出,format函数中使用一个大括号表示需要填充的参数,:后面可以规定数字的精度与类型,四舍五入的值。
- 例子: print("{:.2f}".format(2.256))
2.格式化输出 大小写问题
- .lower() --- 全部小写
- .upper() --- 全部大写
- .title() --- 各个字符的首字母大写
- .capitalize() --- 首字母大写
- 例子:name = input() print(name.lower()) print(name.upper()) print(name.title())
3.字符串处理常用函数小汇总
text="only YOU Loving yoU,你是我的唯一,jUst YoU,我能等你下课吗?\
能不能一起去逛街?达能小王子"
#大小写转换
text.upper() #大写
text.lower() #小写
text.title()#首字母大写
text.capitalize()#第一个字母大写
text.swapcase()#大小写对调
#字符串的搜索
text.count("o")#搜索并统计"o"出现的次数
text.count("o",28)#搜索并统计,从第28位开始,"o"出现的次数
text.startswith("only")#text以"only"开通
text.startswith("only",2,10)#text的第3-9个字符以"only"开通
text.find("you")#查找you
text.replace("u","V",2)
#填充或者剔除某些信息
"1999".rjust(10,"$")#前一个字符代表填充后字符串的总长度
"1999".rjust(5,"$")
"1999".zfill(9)#用0填充,类似 "1999".rjust(9,"0")
"1999".rjust(9,"0")
"1999".center(50) #在左右两边都假设空格
" 1999 ".strip()#去重左右两边的空格
"1999".strip("9")#去重左右两边的"9"
" 1999 ".strip("9")#去重左右两边的"9",两边是空格没有9
#字符串的分割与合并
text.replace("能",",")
text1=text.replace("能","\n")
print(text1)
print(text.replace("能","\n"))
text.split("能")#以"能"为结点把str拆成一个字列表
text.partition("能") #以"能"为结点把str拆成一个字元组
text.rpartition("能")
text1.splitlines()#识别空行进行分割
text1.split("\n")#同上分割空行
"@".join(text)#把@插入到str的每一个字符中
"12345".join(" ")#重复并拼接
4.数组排序
sort 与 sorted 区别:
sort 是应用在 list 上的方法,sorted 可以对 所有可迭代的对象 进行排序操作。
list 的 sort 方法返回的是对已经存在的列表进行操作,无返回值,而内建函数 sorted 方法返回的是一个新的 list,而不是在原来的基础上进行的操作。
sorted(x) 可以对所有可迭代对象进行排序,返回一个新的列表
sort(reverse=True)列表内的排序方法,reverse=True 为倒序,False为正序 (默认为False),没有返回值,是对已存在的列表做操作。
(1)创建列表 列表名称=[元素,元素,元素......] (2)使用sorted函数临时排序 新列表=sorted(旧列表名称) (3)输出排序后完整列表 print(新列表) (4)输出原始列表 print(旧列表) (5)使用sort函数对列表降序排序 旧列表.sort(reverse = True) sort函数用法: 列表名.sort(reverse = False) 其中,reverse = True 降序, reverse = False 升序(默认) (6)输出排序后完整列表 print(旧列表)
5. python如何判断两个列表、字典是否相同
判断两个列表是否相同,在Python2中可以使用cmp()函数,但是在Python3中我们可以使用下面的方法来比较两个list是否相等
import operator a=[1,-1,0] b=[1,-1,0] c=[-1,1,0] print(operator.eq(a,b)) print(operator.eq(a,c))
分析:两个列表必须完全相同(包括位置),只有这样才能是True。
(如果只判断元素是否相同,而不考虑位置,可先使用 list.sort() 排序后作比较)
6.Python 字典的 cmp() 函数用于比较两个字典元素
# cmp()方法语法: # cmp(dict1, dict2) # 参数 # dict1 — 比较的字典。 # dict2 — 比较的字典。 # 返回值 # 如果两个字典的元素相同返回0,如果字典dict1大于字典dict2返回1, # 如果字典dict1小于字典dict2返回-1。 # 实例 # 以下实例展示了 cmp()函数的使用方法: dict1 = {'Name': 'Zara', 'Age': 7} dict2 = {'Name': 'Mahnaz', 'Age': 27} dict3 = {'Name': 'Abid', 'Age': 27} dict4 = {'Name': 'Zara', 'Age': 7} print "Return Value : %d" % cmp (dict1, dict2) print "Return Value : %d" % cmp (dict2, dict3) print "Return Value : %d" % cmp (dict1, dict4)
7.Python中文转数字
Python中文转阿拉伯数字
使用 cn2an 库,可进行中文和数字互转,支持繁体、小数、负数、人民币描述、日期、分数、摄氏度
安装 pip install cn2an
cn2an 需要 PyYAML>=5.3.1,若不满足可尝试另一个库——pycnnum
7.1中文数字 → 阿拉伯数字
取值范围 10的-16次方 <= n <= 10的16次方
import cn2an print(cn2an.cn2an("一百二十三")) # 默认为strict模式,需要严格符合数字拼写才可以转化 # 123 print(cn2an.cn2an("一二三", "normal")) # normal模式,可以转化一二三 # 123 print(cn2an.cn2an("1百23", "smart")) # smart模式,可以转化混合拼写的1百23 # 123 print(cn2an.cn2an("负一百二十三", "strict")) # 以上三种模式均支持负数 # -123 print(cn2an.cn2an("一点二三", "strict")) # 以上三种模式均支持小数 # 1.23
7.2阿拉伯数字 → 中文数字
import cn2an print(cn2an.an2cn("123")) # 默认为low模式,转化为小写中文数字 # 一百二十三 print(cn2an.an2cn("123", "up")) # up模式,转化为大写中文数字 # 壹佰贰拾叁 print(cn2an.an2cn("123", "rmb")) # rmb模式,转化为人民币描述 # 壹佰贰拾叁元整 print(cn2an.an2cn("-123", "low")) # 以上三种模式均支持负数 # 负一百二十三 print(cn2an.an2cn("1.23", "low")) # 以上三种模式均支持小数 # 一点二三
7.3句子转化(实验性功能)
import cn2an print(cn2an.transform("小王捡了一百块钱")) # 默认为cn2an模式,将句子中的中文转数字 # 小王捡了100块钱 print(cn2an.transform("小王捡了100块钱", "an2cn")) # 默认为an2cn模式,将句子中的数字转中文 # 小王捡了一百块钱 print(cn2an.transform("小王的生日是二零零一年三月四日", "cn2an")) # 支持日期 # 小王的生日是2001年3月4日 print(cn2an.transform("小王的生日是2001年3月4日", "an2cn")) # 小王的生日是二零零一年三月四日 print(cn2an.transform("抛出去的硬币为正面的概率是二分之一", "cn2an")) # 支持分数 # 抛出去的硬币为正面的概率是1/2 print(cn2an.transform("抛出去的硬币为正面的概率是1/2", "an2cn")) # 抛出去的硬币为正面的概率是二分之一 print(cn2an.transform("抛出去的硬币为正面的概率是百分之五十", "cn2an")) # 支持百分比 # 抛出去的硬币为正面的概率是50% print(cn2an.transform("抛出去的硬币为正面的概率是50%", "an2cn")) # 抛出去的硬币为正面的概率是百分之五十 print(cn2an.transform("今天二十七摄氏度", "cn2an")) # 支持摄氏度 # 今天27℃ print(cn2an.transform("今天27℃", "an2cn")) # 今天二十七摄氏度
安装 pip install pycnnum
from pycnnum import cn2num, num2cn print(cn2num('十')) print(cn2num('一亿六点三')) print(num2cn(33212222222, numbering_type='high', alt_two=True, big=True, traditional=True)) for i in range(25): print(num2cn(i), end=' ') print() # 10 # 160000000.3 # 貳佰參拾貳億貳仟貳佰貳拾貳萬貳仟貳佰貳拾貳 # 一 二 三 四 五 六 七 八 九 一十 一十一 一十二 一十三 一十四 一十五 一十六 一十七 一十八 一十九 二十 二十一 二十二 二十三 二十四
7.4参考文献
扩展:英文转数字 en2an