整数类型:int 表示为长整型
Python长整数仅受限于用户计算机的虚拟内存总数
在C语言中:
long型所表示的范围为:-2147483648 ~ +2147483647 (4 Bytes)
long long所表示的范围为:-9223372036854775808 ~ +9223372036854775807 (8 Bytes)
浮点数类型:float
Python中浮点数受到17位有效数字的限制,如果超过17位要用科学计数法来表示
浮点数标准是IEEE754
规定了4种浮点数类型:单精度、双精度、延伸单精度、延伸双精度
浮点数在计算机中是以二进制来表示的,指数称为阶码、有效数称为尾数
有些时候浮点数在转换以及运算过程中会产生一些误差
用浮点数进行比较的时候最好不要用==来比较,而是做差,如果差小于一个很小很小的数,就认为这两个浮点数相等。
可以使用.real来取出复数的实部,使用.imag取出复数的虚部
复数的表示是a+bi,在Python中用j代表i,即a+bj
求平面上两个点之间的距离
>>> abs(1+1j)
1.4142135623730951
bytes 只负责以二进制形式来存储数据
可以通过字符串来创建 bytes 对象,或将字符串转换成 bytes 对象
如果字符串的内容都是 ASCII 字符,在字符串前面添加b前缀就可以转换成 bytes
b1 = b'youchanwill'
调用bytes,可以将字符串按照指定的字符集转换成 bytes;如果不指定字符集,那么默认采用 UTF-8
>>>b1 = bytes()
>>>b1 = bytes('youchanwill', encoding='UTF-8') #encoding:编码方式
通过encode()将字符串转换成 bytes,如果不指定字符集,那么默认采用UTF-8
>>>b1 = "youchanwill".encode('UTF-8')
>>>print(b1)
b'youchanwill'
对于非ASCII 字符,print输出的是它的字符编码值(十六进制形式),而不是字符本身
通过decode()将bytes对象转换为字符串
>>> str1 = b1.decode('UTF-8')
>>> print(str1)
youchanwill
ASCII 编码为每个字符都分配了唯一的编号,称为编码值。
在 Python 中,一个 ASCII 字符可以用它的编码值表示。这种使用编码值来表示字符的方式称为转义字符(Escape Character)。
Python中的转义字符只能使用八进制或者十六进制,转义字符以\0或\x开头,\0和\x后面最多只能跟两位数字
以\0开头表示后跟八进制形式的编码,不能表示所有的 ASCII 字符
以\x开头表示后跟十六进制形式的编码值
>>>str1 = "\061\062\063" #使用八进制形式的转义字符无法表示xyz,的编码值转换成八进制以后有三位
>>>str2 = "\x31\x32\x33\x78\x79\x7A"
>>>print(str1)
>>>print(str2)
123
123xyz
Python支持的转义字符:
转义字符 | 说明 |
---|---|
\n | 换行符,将光标位置移到下一行开头 |
\r | 回车符,将光标位置移到本行开头 |
\t | 水平制表符,即 Tab 键,相当于四个空格 |
\b | 退格(Backspace),将光标位置移到前一列 |
\\ | 反斜线 |
\" | 双引号 |
\’ | 单引号 |
\ | 在字符串行尾的续行符 |
print() 函数使用以%开头的转换说明符对各种类型的数据进行格式化输出
转换说明符(Conversion Specifier)只是一个占位符,它会被后面表达式的值代替
转换说明符 | 作用 |
---|---|
%d、%i | 转换为带符号的十进制整数 |
%o | 转换为带符号的十进制整数 |
%x、%X | 转换为带符号的十六进制整数 |
%e、%E | 转化为科学计数法表示的浮点数 |
%f、%F | 转化为十进制浮点数 |
%g | 智能选择使用 %f 或 %e 格式 |
%G | 智能选择使用 %F 或 %E 格式 |
%c | 格式化字符及其 ASCII 码 |
%r | 使用 repr() 函数将表达式转换为字符串 |
%s | 使用 str() 函数将表达式转换为字符串 |
name = "you"
print("%schanwill!" % name)
在print()函数中,由引号包围的是格式化字符串相当于一个模板,可以放置一些转换说明符,最终会被后面的变量的值所替代
name = "you"
name1 = "chanwill"
age = 1016
print("%s%s%d" % (name, name1, age))
有几个占位符,后面就跟着几个表达式,多个表达式必须使用小括号( )包围
%10d 表示输出的整数宽度至少为 10
%20s 表示输出的字符串宽度至少为 20
对于整数和字符串,当数据的实际宽度小于指定宽度时,会在左侧以空格补齐;当数据的实际宽度大于指定宽度时,会按照数据的实际宽度输出
>>>n = 12345
>>>print("n(10):%10d" % n)
>>>print("n(3):%3d" % n)
n(10): 12345
n(3):12345
当数据的实际宽度足够时,指定的最小宽度没有实际意义
Python 允许在最小宽度之前增加一个标志来改变对齐方式
标志 | 说明 |
---|---|
– | 指定左对齐 |
+ | 表示输出的数字总要带着符号;正数带+,负数带– |
0 | 表示宽度不足时补充 0 |
>>>b = 10.16
>>>print("b(-+0):%-+010f" % b)# %-+010f 表示最小宽度为10,左对齐,带上符号
b(-+0):+10.160000
对于浮点数,print() 允许指定小数的输出精度
精度值需要放在最小宽度之后,中间用点号.隔开;也可以不写最小宽度,只写精度
%m.nf %.nf #m表示最小宽度,n表示输出精度 .必须存在
>>>pi = 3.1415926
>>>print("%+08.2f" % pi) # 最小宽度为8,小数点后保留2位,左边补0,带符号
+0003.14
strname[index]
strname 字符串名字,index 表示索引值
>>>name = 'youchanwill'
>>>print(name[0]) #获取索引为0的字符
y
>>>name = 'youchanwill'
>>>print(name[-1]) #获取索引为-1的字符
l
strname[start : end : step]
strname 字符串名字
start:表示要截取的第一个字符所在的索引(截取时包含该字符),不指定默认为0
end:表示要截取的最后一个字符所在的索引(截取时不包含该字符),不指定默认为字符串的长度
step:指的是从start索引处的字符开始,每step个距离获取一个字符,直至 end索引处的字符,step默认值为1,当省略该值时,end后的冒号也可省略
>>>name = 'youchanwill'
>>>print(name[:: 3]) #每隔3个字符取出一个字符
ycnl
title() 将字符串中每个单词的首字母转为大写,其他字母全部转为小写
str.title() #str表示要进行转换的字符串
lower() 将字符串中的所有大写字母转换为小写字母
str.lower() #str表示要进行转换的字符串
upper() 将字符串中的所有小写字母转换为大写字母
str.upper() #str表示要进行转换的字符串
*以上方都仅限于将转换后的新字符串返回,不会修改原字符串
删除字符串左右两边的空格和特殊字符
strip() 用于删除字符串左右两边的空格和特殊字符
str.strip([chars])
str 表示原字符串,[chars] 用来指定要删除的字符,可以同时指定多个
如果不手动指定,则默认会删除空格以及制表符、回车符、换行符等特殊字符
lstrip() 用于删除字符串左侧的空格和特殊字符
str.lstrip([chars])
同strip()语法格式中的 str 和 chars
rstrip() 用于删除字符串右侧的空格和特殊字符
str.rstrip([chars])
同strip()语法格式中的 str 和 chars
*以上方法只是返回字符串指定字符被删除之后的副本,并不会改变字符串本身
split() 将字符串按指定分割符分割成多个短语
>>>name = 'you chan will'
>>>print(name.split()) #使用空白对字符串进行分割
>>>print(name.split(None,1)) #使用空白对字符串进行分割,只分割前1个单词
['you', 'chan', 'will']
['you', 'chan will']
join() 将多个短语连接成字符串
>>>name1 = name.split()
>>>print('/'.join(name1)) # 使用'/'为分割符,连接成字符串
you/chan/will