《Python工匠》学习笔记----第二章:数值与字符串

写在前面:
本系列文章仅作为对《Python工匠》一书的知识点总结笔记。内容会比较简练,仅作为个人复习使用,大家喜欢的话就去买来原作看看吧,还是很有意思的。

数值与字符串

2.1基础知识

2.1.1数值基础

python中共有三种数值类型:整型(int)、浮点型(float)、复数(complex)
对于常用的两种类型:int与float,可通过内置方法进行转换:

	float_num=12.3
    int_num=10
    x=float("inf")#无穷大
    y=float("-inf")#无穷小
    print(int(float_num))#12,小数部分被舍去
    print(float(int_num))#10.0

对于较长的数值字面量,可以通过插入 “ _ ” 的方式使得数值变得清晰易读。

 	num=1_000_000
    print(num+100)#1000100

Python的数值类型很方便,不必考虑溢出的问题,
如无符号64位最大值(2**64-1)*10也不必担心数值溢出造成的错误。
浮点精度问题

 print(0.1+0.2)#0.30000000000000004

造成浮点精度问题的原因是:
计算机二进制无法绝对精准地表示小数,所以使用一个固定的精度近似表示小数。
解决方案
使用内置模块decimal

from decimal import Decimal

print(Decimal('0.1')+Decimal('0.2'))#注意必须使用字符串作为数值定义

2.1.2 布尔值作为数字

True=1 False=0

2.1.3 字符串常用操作

字符串属于序列,则包括遍历切片等操作
反转操作

s="Hello World"
s[::-1]#切片反转,[起点:终点+1:步长],步长为-1表示反转
"".join(reversed(s))#reversed返回可迭代对象,可理解为字符列表,使用空白字符串加join方法进行拼接

字符串格式化微语言(需扩展)

#str.format格式
s="Hello {},你好 {}".format("World","世界")
s2="Hello {0},你好 {0} - {1}".format("World","世界")#可通过索引重复使用

#f-string格式
name="xxx"
s3=f"你好,我叫{name}"

字符串拼接

s="a"
s+="b"
print(s)#ab

l=["ab","b","c"]
s2="-".join(l)#join前的字符串作为被拼接序列的分隔符
print(s2)#ab-b-c

s3="xyz"
s3="+".join(s3)
print(s3)#x+y+z,字符串可看为字符列表(序列)

字符串好用方法

str.isdigit()#判断字符串是否包含数字
str.partition(sep)#切分字符串,sep为分隔符,返回三元素元组,(before,sep,after)即分隔符前后与分隔符本身。
str.translate(table)#一次性替换多个字符,table为自定义规则,详细使用方法如下:
	s="ABC+DEF-XYZ"
	table=s.maketrans('+-','()')#自定义规则,+替换为(,-替换为)
	print(s.translate(table))#ABC(DEF)XYZ

2.1.4 字符串与字节串

字符串人类层,对应str类型,s="str字符串",文本形式,encode()方法编码为字节串
字节串计算机层,对应bytes类型,s=b"bytes字节串",二进制形式,包含真正的编码格式(默认UTF-8),decode()方法解码为字符串

凡是写入计算机的字符串文件都会被显式或隐式地转换为字节串,在open函数中指定encoding
参数,则显式转换,若不指定,系统会根据当前环境的偏好进行编码。

import locale
locale.getpreferredencoding()#获取当前环境的偏好编码格式
后续延伸

Jinja2模板替代字符串拼接
textwarp更好融入多行字符串
SQLAlchemy模块处理SQL语句

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值