2.1 基本数据类型

版权声明:@Abby-YTJ https://blog.csdn.net/weixin_43564773/article/details/85563118

1. 数值类型

1.1 数值类型包括:整数、浮点数和复数

  • 整数类型:无取值范围、二进制/八进制/十进制/十六进制
  • 浮点数类型:有取值范围、不确定尾数问题、科学计数法、大精确浮点运算
  • 复数类型:与数学中复数概念一致、获取实部和虚部

1.2 整数类型

4种进制表示形式

  • 十进制:123
  • 二进制:以0b或0B开头:-0B110
  • 八进制:以0o或0O开头:0o456、-0O789
  • 十六进制:以0x或0X开头:0x1A、-0X2B
print(pow(2,pow(2,10)))

输出结果

    179769313486231590772930519078902473361797697894230657273430081157732675805500963132708477322407536021120113879871393357658789768814416622492847430639474124377767893424865485276302219601246094119453082952085005768838150682342462881473913110540827237163350510684586298239947245938479716304835356329624224137216

1.3 浮点数类型

  • 有取值范围和精度约定
  • 不确定尾数问题(浮点数在计算机中无法精确表达)
    • 使用round()辅助浮点数运算,消除不确定尾数
    • 不确定尾数一般发生在10-16左右,round()十分有效
import sys
print(sys.float_info)

输出结果

    sys.float_info(max=1.7976931348623157e+308, max_exp=1024, max_10_exp=308, min=2.2250738585072014e-308, min_exp=-1021, min_10_exp=-307, dig=15, mant_dig=53, epsilon=2.220446049250313e-16, radix=2, rounds=1)
print(0.1 + 0.2)

输出结果
0.30000000000000004

round(0.1 + 0.2, 1) # 第二个参数表示小数点后保留位数

输出结果
0.3

2. 数值运算函数与方法

2.1 数值运算

  • 操作符:+ - * / //等
  • 函数:Python解释器提供的内置函数
  • 方法:数值类型在Python解释器内部都是类,类的方法

赋值增强操作符

  • x op y,其中op为二元操作符,如 x += y, x -= y, x *= y, x /= y,等
  • Python没有x++操作

2.2 数值类型的运算关系

类型间可进行混合运算,生成结果为"最宽"类型

  • 三种类型存在一种逐渐”扩展“或”变宽“的关系
  • 整数->浮点数->复数
  • 例如:123 + 4.0 = 127.0

2.3 数值运算函数

函数及使用 描述
abs(x) 绝对值,x的绝对值
divmod(x,y) 商余,(x//y, x%y),同时输出商和余数
pow(x,y[,z] 幂余,(x**y)%z,[]表示参数z可忽略
round(x[,d]) 四舍五入,d是保留小数位数,默认值为0
max(x1,x2,...,xn) 最大值,返回x1,x2,…,xn中的最大值,n不限
min(x1,x2,...,xn) 最小值,返回x1,x2,…,xn中的最小值,n不限

类型转换函数

函数及使用 描述
int(x) 将x变成整数,舍弃小数部分
float(x) 将x变成浮点数,增加小数部分
complex(x) 将x变成复数,增加虚数部分

3. 整数的位运算

整数之间可以进行位运算

  • 位运算按照二进制方式逐位进行
  • 位运算只针对整数有作用
位运算符 描述
x&y 与,x与y的与操作
x\|y 或,x与y的或操作
~x 非,x按位取反
x^y 异或,x与y的异或操作
x<<n 左移,将x按位左移n位
x>>n 右移,将x按位右移n位
101&99

输出结果
97

bin(101)

输出结果
‘0b1100101’

bin(99)

输出结果
‘0b1100011’

0b1100001

输出结果
97

~101
# 101取反,111...1110011010,首位是1,负数的补码->源码:取反+1
# 101取反二进制 '-0b1100110'

输出结果
-102

bin(-102)

输出结果
‘-0b1100110’

bin(101>>4)

输出结果
‘0b110’

bin(101<<4)

输出结果
‘0b11001010000’

4. 字符串类型

4.1 字符串:由0个或多个字符组成的有序字符序列

  • 单行字符串由一对单引号或双引号表示
  • 多行字符串由三个单引号或三个双引号表示

4.2 字符串的序号

  • 正向递增序号
  • 反向递减序号

4.3 字符串的索引和切片

使用[]获取字符串中一个或多个字符

  • 索引:返回字符串中单个字符 <字符串>[M]
  • 切片:返回字符串中一段字符子串 <字符串>[M:N],不含N

使用[M:N:K]根据步长对字符串切片

  • <字符串>[M:N],M缺失表示至开头,N缺失表示至结尾
  • <字符串>[M:N:K],根据步长K对字符串切片
"〇一二三四五六七八九十"[::-1]

输出结果
‘十九八七六五四三二一〇’

4.4 字符串的特殊字符:转义符\

转义符是表达特殊字符串或功能的方式

  • 转义符表达特定字符的本意
  • 转义符形成一些组合,表达一些不可打印的含义

4.5 字符串操作符

操作符及使用 描述
x + y 连接两个字符串
n * x 或 x * n 复制n次字符串
x in s 如果x是s的子串,返回True,否则返回False
weekStr = "星期一星期二星期三星期四星期五星期六星期日"
weekId = eval(input("请输入星期数字(1-7): "))
pos = (weekId - 1) * 3
print(weekStr[pos:pos+3])
请输入星期数字(1-7): 4
星期四
weekStr = "一二三四五六日"
weekId = eval(input("请输入星期数字(1-7): "))
print("星期" + weekStr[weekId - 1])
请输入星期数字(1-7): 2
星期二

4.6 字符串操作函数与方法

字符串操作函数

函数及使用 描述
len(x) 长度,返回字符串x的长度
str(x) 任意类型x所对应的字符串形式
hex(x)oct(x) 整数x的十六进制或八进制小写形式字符串
chr(u) x为Unicode编码,返回其对应的字符
ord(x) x为字符,返回其对应的Unicode编码

Unicode编码

  • 统一字符编码,即覆盖几乎所有字符的编码方式
  • 从0到1114111(0x10FFFF),每个编码对应一个字符
  • Python中每个字符都是Unicode编码字符

字符串处理方法

  • “方法”是一个面向对象中的专有名词
    • 方法特指类中的函数,调用时表现为<a>.<b>()方式
    • 方法本身也是函数,即<b>(),但与<a>有关
    • Python所有类型本质上都是类,即<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]) 字符串str根据宽度width居中,fillchar可选
str.strip(chars) 从str中去掉在其左侧和右侧chars中列出的字符
str.join(iter) 在iter变量除最后元素外每个元素后增加一个str
"AbCdEfGh".lower()

输出结果
‘abcdefgh’

"a,b,c,d".split(",")

输出结果
[‘a’, ‘b’, ‘c’, ‘d’]

"a apple a day".count("a")

输出结果
4

"python".replace("n","n.org")

输出结果
python.org

"python".center(20,"=")

输出结果
‘=python=’

"= python=".strip(" =np")

输出结果
‘ytho’

",".join("12345") # 主要用于字符串分隔等

输出结果
‘1,2,3,4,5’

字符串格式化方法

  • 格式化是字符串处理方法中的一种,进行字符串格式表达
<模板字符串>.format(<逗号分隔的参数>)
  • format()槽格式控制
: <填充> <对齐> <宽度> <,> <.精度> <类型>
引号符号 用于填充的
单个字符
< 左对齐
> 右对齐
^居中对齐
槽设定的
输出宽度
数字的千位
分隔符
浮点数小数
精度
或字符串最大
输出长度
整数类型
b,c,d,o,x,X
浮点数类型
e,E,f,%
"{}:计算机{}的CPU占用率为{}%".format("2018-10-10","C",10)

输出结果
‘2018-10-10:计算机C的CPU占用率为10%’

"{1}:计算机{0}的CPU占用率为{2}%".format("2018-10-10","C",10)

输出结果
‘C:计算机2018-10-10的CPU占用率为10%’

"{0:20}".format("PYTHON")

输出结果
'PYTHON ’

"{0:=^20}".format("PYTHON")

输出结果
‘=PYTHON=’

"{0:*>20}".format("PYTHON")

输出结果
‘**************PYTHON’

"{0:,.2f}".format(12345.6789)

输出结果
‘12,345.68’

"{0:b},{0:c},{0:d},{0:o},{0:x},{0:X}".format(425)

输出结果
‘110101001,Ʃ,425,651,1a9,1A9’

"{0:e},{0:E},{0:f},{0:%}".format(3.14)

输出结果
‘3.140000e+00,3.140000E+00,3.140000,314.000000%’

5. 字节串类型

5.1 字节串:由0个或多个字节组成的有序字节序列

  • 单行字节串由一对单引号或双引号表示 b'abcdef123455
  • 多行字节串由三个单引号或三个双引号表示
  • 字节串中只允许存在ASCII字符

5.2 字节串的序号

  • 正向递增序号
  • 反向递减序号

5.3 字节串的索引和切片

使用[]获取字节串中一个或多个字符

  • 索引:返回字节串中单个字符 <字节串>[M]
  • 切片:返回字节串中一段字节子串 <字节串>[M:N],不含N

使用[M:N:K]根据步长对字节串切片

  • <字节串>[M:N],M缺失表示至开头,N缺失表示至结尾
  • <字节串>[M:N:K],根据步长K对字节串切片
b'abcde1234'[1]
b'abcde1234'[1:5]

输出结果
b’bcde’

5.4 字节串操作函数与方法

字节串操作函数

函数及使用 描述
len(x) 长度,返回字节串x的长度

字节串处理方法

方法及使用 描述
bytes.lower()bytes.upper() 返回字节串的副本,全部字节小写/大写
bytes.split(sep=None) 返回一个列表,由str根据sep被分隔的部分组成
bytes.count(sub) 返回子串sub在str中出现的次数
bytes.center(width[,fillbyte]) 字节串bytes根据宽度width居中,fillbyte可选
bytes.strip(bytes) 去掉在其左侧和右侧bytes中列出的字符
bytes.replace(old,new) 返回字节串str副本,所有old子串被替换为new
b"A,B,C".split(b",")

输出结果
[b’A’, b’B’, b’C’]

b"an apple a day".count(b"a")

输出结果
4

猜你喜欢

转载自blog.csdn.net/weixin_43564773/article/details/85563118
2.1
今日推荐