python 知识成长(持续更新)

目录

1.控制浮点数输出的位数的三种方法:

2.格式化输出 大小写问题

3.字符串处理常用函数小汇总

4.数组排序

5. python如何判断两个列表、字典是否相同

6.Python 字典的 cmp() 函数用于比较两个字典元素

7.Python中文转数字


1.控制浮点数输出的位数的三种方法:

  1. 使用round函数,用法为:round( x,n ),x为浮点数,n为保留的小数位数参数是可选的如果不写那么默认不保留小数。
    1. 当参数n不存在时,round()函数的输出为整数
    2. 当参数n存在时,即使为0,round()函数的输出也会是一个浮点数
    3. 此外,n的值可以是负数,表示在整数位部分四舍五入,但结果仍是浮点数
    4. 例子:print(round(123.45)) print(round(123.45,0)) print(round(123.45,-1))
  2. 利用 "%.nf" 输出n位小数,四舍五入。
  3. 例子:print('%.2f'%1.0000)
  4. 使用format函数格式化数字输出,format函数中使用一个大括号表示需要填充的参数,:后面可以规定数字的精度与类型,四舍五入的值。
  5. 例子: print("{:.2f}".format(2.256))

2.格式化输出 大小写问题

  1. .lower() --- 全部小写
  2. .upper() --- 全部大写
  3. .title() --- 各个字符的首字母大写
  4. .capitalize() --- 首字母大写
  5. 例子: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

  1. cn2an GitHub
  2. pycnnum GitHub
  3. pycnnum PyPI
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值