Python基础语法(2)
数字类型
整数(int)
- 四种进制表示方法及其转化
十进制(系统默认,dec):369
二进制(bin): 以0b或0B开头,e.g.: 0b11011或0B11011
八进制(oct): 以0o或0O开头,e.g.: 0o457或0O457
十六进制(hex): 以0x或0X开头,e.g.: 0x4a2或0X4a2
bin(), oct(), hex()为内置转化函数,分别转化为二进制,八进制,十六进制
- 函数pow(x, y[, z])表示
x ** y % z
,[…]中的参数可省略
e.g.: pow(3, pow(3, 99), 1000) == 587
- 可以使用int()内置函数将其他数据类型转化成整数
浮点数(float)
- 浮点数的取值范围和运算精度
取值范围数量级:-10308 ~ 10308 精度数量级:约10-6
- 浮点数间的运算存在不确定的尾数,不是BUG
>>> 0.1 + 0.3
0.4
>>> 0.1 + 0.2
0.30000000004
之所以会出现不确定尾数,是因为计算机运算会先将十进制的书转化为二进制的数进行数值运算,再转化成十进制的数。由于二进制与十进制之间不存在严格的对等关系,十进制的有限小数转化为二进制时会变成无限小数,中间就存在舍去的部分,导致最终结果出现不确定尾数。
使用round(x[, d])四舍五入函数,d参数表示保留几位小数,默认为0
辅助浮点数的运算,能更加准确
- 使用科学计数法表示浮点数
使用字母e或E作为幂的符号,以10为基数,格式如下:
<a>e<b>
表示a * 10b
e.g.: 4.3e-3 == 0.0043, 9.6E5 == 960000
数值运算
- 二元操作符有对应的增强赋值操作符
增强操作符及使用 | 描述 |
---|---|
即x = x op y, 其中op为二元操作符 | |
x op= y | x +=y, x -= y, x *= y, x /=y, x //= y, x %= y, x **= y |
x **= 3 表示x = x ** 3 |
- 数值运算函数
函数及使用 | 描述 |
---|---|
abs(x) | 绝对值函数,取x的绝对值 |
divmod(x, y) | 商余函数,(x // y, x % y), 同时输出商和余数 |
pow(x, y[, z]) | 幂余,x ** y % z, […]中的参数可省去 |
int(x) | 将x变成整数,舍弃小数部分 |
float(x) | 将x变成浮点数,增加小数部分 |
complex(x) | 将x变成复数,增加虚数部分 |
round(x[, d]) | 四舍五入函数,d参数表示保留小数位数,,默认值为0 |
max(x1, x2, …, xn) | 最大值,返回x1, x2, …, xn中的最大值,n不限 |
min(x1, x2, …, xn) | 最小值,返回x1, x2, …, xn中的最小值,n不限 |
字符串
- 高级切片:<字符串>[头下标 : 尾下标: 步长]
特殊:<字符串>[ : :-1]能够将字符串倒序
- 转义符\
转义符表达特定字符的本意
>>> print("这里有个双引号(\")")
这里有个双引号(")
\b # 回退
\n # 换行(光标移动到下行首)
\r # 回车(光标移动到本行首)
- 字符串处理函数
函数及使用 | 描述 |
---|---|
len(x) | 长度,返回字符串x的长度 |
str(x) | 任意类型x所对应的字符串形式 |
hex(x)或oct(x) | 整数x的十六进制或八进制的小写字符串 |
chr(u) | u为Unicode编码,返回其对应的字符 |
ord(x) | x为字符,返回字符对应的Unicode编码 |
- 字符串处理方法
“方法”特指<a>.<b>()
风格中的函数<b>()
方法本身也是一个函数,但与<a>
有关,<a>.<b>()
风格使用
字符串及变量也是<a>
,也存在一些方法
方法及使用 | 描述 |
---|---|
str.lower()/str.upper() | 返回字符串副本,全部字符小写/大写 |
str.split(sep = None) | 返回一个列表,由str根据sep被分割的部分组成 |
str.count(sub) | 返回子串sub在str出现的次数 |
str.replace(old, new) | 返回字符串str副本,所有的old子串被替换成new |
str.center(width[, fillchar]) | 字符串根据宽度width居中,fillchar可选填充符号,默认为空格 |
str.strip(chars) | 从str中去除在其左侧和右侧chars中列出的字符 |
str.join(iter) | 在iter变量除最后一个元素外每个元素后增加一个str |
>>> "AbCdEfGh".lower()
"abcdefgh"
>>> 'A,B,C,D'.split(',')
['A', 'B', 'C', 'D']
>>> 'eat an apple a day'.count('a')
5
>>> 'python'.replace('n', 'n123.io')
'python123.io'
>>> 'python'.center(20, '=')
'=======python======='
>>> ' =python='.strip(' =pn')
'ytho'
>>> ','.join('ABCDEF')
'A,B,C,D,E,F'
- 字符串类型的格式化
槽:相当于一个占位信息符,使用一对花括号{}
来表示,只在字符串中有用。
>>> '{}访问了{}的{}'.format('Tom', 'Jack', '空间')
'Tom访问了Jack的空间'
>>> '{1}访问了{0}的{2}'.format('Tom', 'Jack', '空间')
'Jack访问了Tom的空间'
槽内部对格式化的配置方式:
{<参数序号> : <格式控制标记>}
: | <填充> | <对齐> | <宽度> | <,> | <.精度> | <类型> |
---|---|---|---|---|---|---|
引导符号 | 用于填充的单个字符 | < 左对齐; > 右对齐; ^ 居中对齐 | 槽设定的输出宽度 | 数字的千位分隔符 | 浮点数小数精度或字符串最大输出长度 | 整数类型:b, c, d, o, x, X;浮点数类型:e, E, f, % |
>>> '{:=^20}'.format('python')
'=======python======='
>>> '{:*>20}'.format('Good')
'****************Good'
>>> '{:10}'.format('Good')
'Good '
>>> '{:,.2f}'.format(12345.6789)
'123,45.68'
>>> '{0:b}, {0:c}, {0:d}, {0:o}, {0:x}, {0:X}'.format(245)
'11110101, õ, 245, 365, f5, F5' # b代表二进制,c代表Unicode,d代表十进制,o代表八进制,x代表十六进制,X代表大写十六进制
>>> '{0:e}, {0:E}, {0:f}, {0:%}'.format(1.23)
'1.230000e+00, 1.230000E+00, 1.230000, 123.000000%'