文章目录

1.几个概念1.1 表达式1.1.2表达式的定义1.1.2 表达式特点

1.2 语句1.3 程序(program)1.4 函数(function)1.4.1 函数的定义1.4.2 函数的分类1.4.3 函数的两个要素

1.5 注释1.6 调试1.7 可变类型与不可变类型1.7.1 可变类型1.7.1.1 定义1.7.1.2 包含

1.7.2 不可变类型1.7.2.1 定义1.7.2.2 包含

2.标识符2.1 关键字2.2 标识符概念2.3 标识符的组成2.4 标识符的规则:2.5 命名方式2.5.1 驼峰命名法2.5.2 下划线命名法

3.变量3.1 变量的概念3.2变量命名规则3.3 注意 :3.4 变量的判断

4.基本数据类型4.1 数字类型4.1.1 整数(int)4.1.2 浮点型(float)4.1.3 复数类型(Complex)

4.2 字符串类型(str)4.2.1 字符串基础知识4.2.2注意:4.2.3 字符串的拆包

4.3 逻辑类型4.3.1 布尔类型(Boolean)

4.4 空值(None变量)4.5 列表(list)4.5.1 列表的定义4.5.2 列表的特点4.5.3 列表截取的语法格式4.5.4 取数据4.5.5 列表的创建4.5.6 列表的切片4.5.6.1 语法4.5.6.2 实例

4.5.7 列表的修改方法4.5.7.1 添加元素4.5.7.2 插入元素4.5.7.3 删除元素4.5.7.4 删除指定元素4.5.7.5 扩展序列4.5.7.6 反转列表4.5.7.7 排序

4.6 元组(tuple)4.6.1 元组的基本知识4.6.2 元组的拆包4.6.3 元组的修改方法

4.7 集合(set)4.7.1 集合简介4.7.2 集合和列表不同点4.7.2 集合的运算4.7.3 创建格式:

4.8 字典(Dictionary)4.8.1 字典的基本介绍4.8.2 字典的使用4.8.3 字典的增删改查4.8.3.1 获取值的方式4.8.3.2 字典的key-value添加4.8.3.3 del 删除字典中的key-value4.8.3.4 随机删除键值对4.8.3.5 清空字典4.8.3.6 修改字典3.8.3.7 删除指定value

4.8.4 遍历字典

4.9 Bytes4.9.1 bytes介绍4.9.2 bytes创建4.9.3 bytes类型常用转换4.9.3.1 字节转为字符串4.9.3.2 字符串转为字节

5. 浅拷贝与深拷贝5.1 浅拷贝(copy)5.2 深拷贝

6.数据类型转换7.思维导图8. 课后练习

1.几个概念

1.1 表达式

形如:

1 + 2

1.1.2表达式的定义

由数字、算符、数字分组符号(括号)、自由变量和约束变量等以能求得数值的有意义排列方法所得的组合

1.1.2 表达式特点

• 表达式一般仅仅用于计算一些结果,不会对程序产生实质性的影响 • 类似于数学式子 • 如果在交互模式中输入一个表达式,解释器会自动将表达式的结果输出

1.2 语句

• 一个语法上自成体系的单位,它由一个词或句法上有关连的一组词构成 • 语句的执行一般会对程序产生一定的影响,在交互模式中不一定会输出语句的执行结果

# 语句

input('请输入:')  # 输入语句

print(111)  # 打印语句

i = 6

if i < 5:  # if判断语句   只有符合判断语句的条件的时候,才会进入到if语句内部去执行代码, 后面的代码是一个tab或者四个空格的距离

# pass  # pass做占位的作用

# if语句里面的代码,我们称呼为一个代码块, 代码块要么都执行,要么都不执行

print('abc')

1.3 程序(program)

• 程序就是由一条一条的语句和一条一条的表达式构成的。

1.4 函数(function)

# 函数

# 形如:def xxx():

#          pass

# 内置函数  built in 内建函数

1.4.1 函数的定义

• 函数就是一种语句,函数专门用来完成特定的功能 • 函数长的形如:xxx()

1.4.2 函数的分类

• 内置函数 : 或者内建函数,就是由语法规定存在的函数,这些函数,包含在编译器的运行时库中,程序员不比单独书写代码实现它,只需要调用既可。 • 自定义函数 : 由程序员自主的创建的函数 当我们需要完成某个功能时,就可以去调用内置函数,或者自定义函数

1.4.3 函数的两个要素

• 参数 • 返回值

1.5 注释

当运行程序的时候,你如果不想要某一行代码执行,你可以直接注释他,那么注释的哪一行代码将不再执行

1.6 调试

打断的方式,称呼为调试,就是帮你解决代码有问题的情况

1.7 可变类型与不可变类型

1.7.1 可变类型

1.7.1.1 定义

里面的元素改变了,但是他的id还是不会变化

1.7.1.2 包含

• 列表 • 字典 • 集合

1.7.2 不可变类型

1.7.2.1 定义

里面的元素改变了,而且他的id也就发生了变化

1.7.2.2 包含

• int • float • 字符串 • 元组

2.标识符

2.1 关键字

• python一些具有特殊功能的标识符,这就是所谓的关键字关键字,是python已经使用的了,所以不允许开发者自己定义和关键字相同的名字的标识符

2.2 标识符概念

• 开发人员在程序中自定义的一些符号和名称。标识符是自己定义的,如变量名 、函数名等

2.3 标识符的组成

26个英文字母大小写 数字: 0-9 符号: _$

2.4 标识符的规则:

• 标识符中可以包含字母、数字、_,但是不能使用数字开头 例如:name1 name_1 _name1 1name(不行) • Python中不能使用关键字和保留字来作为标识符

2.5 命名方式

2.5.1 驼峰命名法

• 小驼峰式命名法: 第一个单词以小写字母开始;第二个单词的首字母大写,例如:myName、aDog • 大驼峰式命名法: 每一个单字的首字母都采用大写字母,例如:FirstName、LastName

2.5.2 下划线命名法

• 不过在程序员中还有一种命名法比较流行,就是用下划线“_”来连接所有的单词。比如 get_url buffer_size

3.变量

3.1 变量的概念

• 变量是计算机内存中的一块区域,存储规定范围内的值,值 可以改变,通俗的说变量就是给数据起个名字。

3.2变量命名规则

• 变量名由字母、数字、下划线组成要符合标识符的命名规范 • 数字不能开头 • 不能使用关键字

3.3 注意 :

• 两个对象相等和两个对象是同一个对象是两个概念 • 变量是可以是很多的数据类型的, 不仅仅局限于整数

3.4 变量的判断

判断两个变量是不是同一个变量 ,判断的是他们的id是否相等

a = 1

b = 1

print(id(a), id(b))

输出结果如下:

1700228112 1700228112

a = 12343454356456

b = 12343454356456

print(id(a), id(b))

输出结果如下:

2037718433520 2037718433520

d = [1, 2, 3]

c = [1, 2, 3]

print(d is c)  # 判断的是id

print(d == c)  # 判断的是值

输出结果如下:

False True

d = [1, 2, 3]

c = [1, 2, 3]

print(id(d), id(c))

输出结果如下:

1785047241032 1785048082056

4.基本数据类型

数据类型指的就是变量的值的类型,也就是可以为变量赋哪些值

4.1 数字类型

4.1.1 整数(int)

所有整数 例如 : a = 1 b = 100 c =999 都是int类型

a=1

b=100

c=999

print(type(a))

print(type(b))

print(type(c))

输出结果如下:

4.1.2 浮点型(float)

所有小数 例如 a = 1.2 b=6.66 用float类型表示

a=1.2

b=6.66

print(type(a))

print(type(b))

输出结果如下:

4.1.3 复数类型(Complex)

基本不用,但是存在,a+bj的形式,其中a,b为数值

a=1+2j

print(type(a))

输出结果如下:

4.2 字符串类型(str)

4.2.1 字符串基础知识

Python中的字符串用单引号 ’ 或双引号 " 括起来,同时使用反斜杠 \ 转义特殊字符 加号 + 是字符串的连接符, 星号 * 表示复制当前字符串,与之结合的数字为复制的次数。实例如下:

a='abcde'

print(type(a))

print(a+'fghijk')  # 用“+”进行字符串的拼接

print(a*2)

print(a[0:-1])    # 输出第一个到倒数第二个的所有字符

print(a[0])       # 输出字符串第一个字符

print(a[2:5])     # 输出从第三个开始到第五个的字符

print(a[2:])      # 输出从第三个开始的后的所有字符

print('abcd\ne')  # 使用反斜杠 \ 转义特殊字符,如果你不想让反斜杠发生转义,可以在字符串前面添加一个 r,表示原始字符串:

print(r'abcd\ne') # 反斜杠(\)可以作为续行符,表示下一行是上一行的延续。也可以使用 """...""" 或者 '''...''' 跨越多行。

输出结果如下:

abcdefghijk

abcdeabcde

abcd

a

cde

cde

abcd

e

abcd\ne

4.2.2注意:

1、反斜杠可以用来转义,使用r可以让反斜杠不发生转义。 2、字符串可以用+运算符连接在一起,用*运算符重复。 3、Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。 4、Python中的字符串不能改变。

4.2.3 字符串的拆包

a = 'abcde'

b, *c = a

print(b, c)

运行结果如下:

>>> a ['b', 'c', 'd', 'e']

4.3 逻辑类型

4.3.1 布尔类型(Boolean)

只有两个值一个是True 一个是False

a=True

print(type(a))

输出结果如下:

4.4 空值(None变量)

只有一个数值就是None 也就是空值

4.5 列表(list)

4.5.1 列表的定义

List(列表) 是 Python 中使用最频繁的数据类型。 列表使用[]来表示的 用list来表示

list1 = [1, 'python', True, None]

print(list1, type(list1))

列表就是用来存储对象的对象

4.5.2 列表的特点

1.列表可以完成大多数集合类的数据结构实现。 2.列表是写在方括号 [] 之间、用逗号分隔开的元素列表。 eg:

m=['a','b','c','d']

3.列表中元素的类型可以不相同,它支持数字,字符串甚至可以包含列表(所谓嵌套) 4.和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。 5.list [ ] 有序可修改

4.5.3 列表截取的语法格式

变量[头下标:尾下标]

索引值以 0 为开始值,-1 为从末尾的开始位置。

4.5.4 取数据

通过索引来取数据

list1 = [1, 'python', True, None]

print(list1[0])

print(list1[-1])

print(list1[-2])

print(list1[-3])

print(len(list1))

[运行结果如下]

1

None

True

python

4

4.5.5 列表的创建

创建空列表

list1 = []

print(list1)

4.5.6 列表的切片

4.5.6.1 语法

str[] list[起始索引:结束索引:步长]

4.5.6.2 实例

list1 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主']

print(list1[3:5])

print(list1[-2:-4:-1])

>>> ['白骨精', '蜘蛛精']

['蜘蛛精', '白骨精']

4.5.7 列表的修改方法

4.5.7.1 添加元素

list.append() 向类表中最后的位置插入一个元素

list1 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list1.append('女儿国国王')

print(list1)

[输出结果如下:]

>>> ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主', '女儿国国王']

4.5.7.2 插入元素

list.insert() 向列表中的指定位置插入一个元素,第一个参数是要插入的位置,第二个参数是要插入的内容

list2 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list2.insert(4, '唐僧')

print(list2)

>>> ['孙悟空', '猪八戒', '白龙马', '白骨精', '唐僧', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

4.5.7.3 删除元素

list.pop() 根据索引删除并返回元素, 如果不传递索引,默认删除最后一个

list3 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

a = list3.pop()

print(a)

print(list3)

>>> 铁扇公主

['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主']

4.5.7.4 删除指定元素

list.remove() 删除指定的元素

list4 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list4.remove('铁扇公主')

print(list4)

>>> ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主']

4.5.7.5 扩展序列

list.extend() 使用新的序列来扩展当前序列

list5 = ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list5.extend(['唐僧', '沙悟净'])

print(list5)

>>> ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主', '唐僧', '沙悟净']

4.5.7.6 反转列表

reverse()

list6= ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list6.reverse()

print(list6)

>>> ['铁扇公主', '铁扇公主', '铁扇公主', '蜘蛛精', '白骨精', '白龙马', '猪八戒', '孙悟空']

4.5.7.7 排序

list.sort() 默认是正序排序 他有一个参数reverse

list7= ['孙悟空', '猪八戒', '白龙马', '白骨精', '蜘蛛精', '铁扇公主', '铁扇公主', '铁扇公主']

list7.sort(reverse=True)

print(list7)

>>> ['铁扇公主', '铁扇公主', '铁扇公主', '蜘蛛精', '白龙马', '白骨精', '猪八戒', '孙悟空']

4.6 元组(tuple)

4.6.1 元组的基本知识

元组表现形式tuple 1.元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,列表使用大括号[ ],元素之间用逗号隔开。 2.tuple () 有序不可修改 3.元组是一个不可变序列(一般当我们希望数据不改变时,我们使用元组,其他情况下基本都用列表) 4.使用()创建元素

eg:

tuple1 = (1, 2, 3, 4, 5)

print(tuple1, type(tuple1))

print(tuple1[2])

print(tuple1[2::])

>>> (1, 2, 3, 4, 5)

3

(3, 4, 5)

5.元组不是空元组至少有一个 逗号(,) 当元组不是空元组时括号可以省略

tuple2 = 10,

tuple3 = (10)

print(tuple2, type(tuple2))

print(tuple3, type(tuple3))

[运行结果如下:]

(10,)

10

6.元组解包指将元组当中的每一个元素都赋值给一个变量

4.6.2 元组的拆包

拆包: 拆包的时候如果有 “*”, 那么有且只能有一个“ * ”, * 接受参数之后,结果是用一个列表来放置的

# 元组的拆包

tuple1=(1,2,3,)

*a,b,=tuple1

print(a,b)

tuple2=(1,2,3,4)

a,b,*c###=tuple2

print(a,b,c)

>>> [1, 2] 3

>>> 1 2 [3, 4]

4.6.3 元组的修改方法

4.7 集合(set)

4.7.1 集合简介

• 使用{}来创建集合 • 集合表现形式set 集合和列表非常相似

4.7.2 集合和列表不同点

• 集合只能存储不可变对象

s1 = {1, 0.2,'abc', (1,2,3)}  # int float str tuple

print(s1, type(s1))

>>> {0.2, 1, 'abc', (1, 2, 3)}

• 集合中存储的对象是无序的

s2 = {6, 8, 9, 10}

print(s2)

>>> {8, 9, 10, 6}

• 集合不能出现重复元素

s3 = {1, 2, 3, 4, 1, 2, 3, 4}

print(s3)

>>> {1, 2, 3, 4}

• 可以通过set()来将序列和字典转换成集合

list1 = [1, 1, 2, 3, 3]

s4 = set(list1)

print(s4)

dict1 = {'1': 1}

print(set(dict1))

>>> {1, 2, 3}

{'1'}

• len() 使用len()来获取集合中元素的数量

s={1,2}

m=len(s)

print(m)

>>> 2

• add()像集合中添加元素

s = set()

s.add(1)

s.add(2)

print(s)

>>> {1, 2}

• update()将一个集合中的元素添加到另一个集合当中

s1 = {1, 2, 3}

s2 = {4, 5, 6}

s1.update(s2)

print(s1)

>>> {1, 2, 3, 4, 5, 6}

• pop()随机删除集合中的一个元素一般是删除最后一个元素

s1={1, 2, 3, 4, 5, 6}

s1.pop()

s1.pop()

s1.pop()

s1.pop()

print(s1)

>>> {5, 6}

• remove() 删除集合中指定的元素

s1={1, 2, 3, 4, 5, 6}

s1.remove(1)

print(s1)

>>> {2, 3, 4, 5, 6}

• clear() 清空集合

s1={1, 2, 3, 4, 5, 6}

s1.clear()

print(s1)

>>> set()

4.7.2 集合的运算

1.& 交集运算 2.| 并集运算 3.- 差集运算 4.^ 亦或集 5.<= 检查一个集合是否是另一个集合的子集 6.< 检查一个集合是否是另一个集合的真子集 7.>=检查一个集合是否是另一个集合的超集 8.>检查一个集合是否是另一个集合的真超集

s1 = {1, 2, 3, 7, 8}

s2 = {4, 5, 6, 7, 8}

# & 交集运算

s3 = s1 & s2

print(s3)

# | 并集运算

s4 = s1 | s2

print(s4)

# - 差集运算

s5 = s1 - s2

print(s5)

# ^ 亦或集

s6 = s1 ^ s2

print(s6)

[运行结果如下:]

>>> {8, 7}

{1, 2, 3, 4, 5, 6, 7, 8}

{1, 2, 3}

{1, 2, 3, 4, 5, 6}

4.7.3 创建格式:

parame = {value01,value02,…} 或者 set(value)

eg:

m = {'a','b','c','d','e','f' }

print(m)     # 输出集合,重复的元素被自动去掉

if 'c' in m:     # 成员测试

print('该元素在此集合中')

else:

print('该元素不在此集合中')

[输出结果如下:]

>>> {'c', 'b', 'a', 'd', 'f', 'e'}

>>> 该元素在此集合中

4.8 字典(Dictionary)

4.8.1 字典的基本介绍

1.字典属于一种新的数据结构称为映射(mapping) 2.字典的作用和列表类似,都是用来存储对象的容器 3.列表存储数据的性能好,但是查询数据的性能差,字典正好与之相反 4.在字典中每一个元素都有唯一的名字,通过这个唯一的名字可以找到指定的元素 5.这个唯一的名字我们称之为key 通过key可以快速查询value 也可以称之为值 6.字典我们也称之为键值对(key-value)结构 7.每个字典中都可以有多个键值对,而每一个键值对我们称其为一项(item) 8.创建一个有数据的字典 语法:

{key:value}

9.字典的值可以是任意对象 字典的键可以是任意的不可变对象(int str bool tuple…) 10.字典的键是不能重复的,如果出现重复的后面的会替换前面的,在同一个字典中,键(key)必须是唯一的。

4.8.2 字典的使用

• dict()函数来创建字典,其用的符号为{}

dict = {}

dict[1]="jjj"

dict[2]="iii"

print(dict[1])   # 输出键为1的值

print(dict[2])   # 输出键为2的值

用{}创建使用dict类去创建字典使用dict去创建 在python2中应用 orderdict 无序字典 需要dict()括号里的数据是属于一种双值子序列的形式 双值序列 [1, 2] 子序列 (‘a’) 双值子序列: [(1, 2), (3, 4)]

# 1.用{}创建

dict={'name':'郭靖',

'age':18,

'sex':'男',

'skill':'降龙十八掌'}

print(dict,type(dict))

# 2.使用dict类去创建字典

dict1=dict(name='郭靖',age=18,sex='男',skill='降龙十八掌')

# 3.使用dict去创建

# 在python2中应用

# orderdict  无序字典

# 需要dict()括号里的数据是属于一种双值子序列的形式

# 双值序列 [1, 2]

# 子序列  ('a')

# 双值子序列: [(1, 2), (3, 4)]

dict2 = dict([('name', '郭靖'), ('age', 18), ('sex', '男')])

print(dict2, type(dict2))

>>> {'name': '郭靖', 'age': 18, 'sex': '男'}

• 当字典中的key有重复的时候,后面的key-value会替换前面的

dict2 = {

'name': '郭靖',

'age': 18,

'sex': '男',

'name': '欧阳锋',

'skill': '蛤蟆功'

}

print(dict2, type(dict2))

获取value, 直接用 dict[key]

dict2 = {

'name': '郭靖',

'age': 18,

'sex': '男',

'name': '欧阳锋',

'skill': '蛤蟆功'

}

print(dict2['skill'])

>>> 蛤蟆功

4.8.3 字典的增删改查

4.8.3.1 获取值的方式

使用key获取value dict[key] 如果不存在key则会报错 dict.get(key) 不存在key不会报错 • get(key[,default]) 根据键来获取字典的值。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值

dict1={'a':1,'b':2,'c':3}

print(dict1.get('c'))

[运行结果如下:]

>>> 3

4.8.3.2 字典的key-value添加

• update() 将其他字典的key-value添加到当前的字典当中

dict1={'a':1,'b':2,'c':3}

dict2={'d':4,'e':5,'f':6}

dict1.update(dict2)

print(dict1)

[运行结果如下:]

>>> {'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5, 'f': 6}

4.8.3.3 del 删除字典中的key-value

dict1={'a':1,'b':2,'c':3}

del dict1['c']

print(dict1)

[运行结果如下:]

>>> {'a': 1, 'b': 2}

4.8.3.4 随机删除键值对

• popitem() 删除字典最后的一个key-value 这个方法是有返回值的。删除之后它会将删除的key-value作为返回值返回 随机删除一个键值对,一般都会删除最后一个, 有一个返回值,就是删除的对象,结果是一个元组

dict1={'a':1,'b':2,'c':3}

result = dict1.popitem()

print(result)

print(dict1)

[运行结果如下:]

>>> ('c', 3)

{'a': 1, 'b': 2}

4.8.3.5 清空字典

• dict.clear()

dict1={'a':1,'b':2,'c':3}

dict1.clear()

print(dict1)

[运行结果如下:]

>>> None

4.8.3.6 修改字典

• dict[key] = value

dict1={'a':1,'b':2,'c':3}

dict1['a']=10

print(dict1)

[运行结果如下:]

>>> {'a': '10', 'b': 2, 'c': 3}

3.8.3.7 删除指定value

• pop(key[,default]) 根据key删除自定中的value。第二个参数可以指定一个默认值,当获取不到值的时候会返回默认值

dict1={'a':1,'b':2,'c':3}

dict1.pop('a')

print(dict1)

[运行结果如下:]

>>> {'b': 2, 'c': 3}

4.8.4 遍历字典

我们主要可以通过3种方式对字典进行遍历 • keys() 该方法返回字典所有的key

dict1={'a':1,'b':2,'c':3}

for i in dict1.keys():

print(dict1[i])

[运行结果如下:]

>>> 1

2

3

• values() 该方法返回一个序列 序列中保存有字典的值

dict1={'a':1,'b':2,'c':3}

for j in dict1.values():

print(j)

[运行结果如下:]

>>> 1

2

3

• items() 该方法会返回字典中所有的项 它返回一个序列,序列中包含有双值子序列 双值分别是 字典中的key和value • 通过一项来进行遍历 dict.items()

dict1={'a':1,'b':2,'c':3}

for i,j in dict1.items():

print(i,'=',j)

[运行结果如下:]

>>> a = 1

b = 2

c = 3

4.9 Bytes

4.9.1 bytes介绍

在Python3以后,字符串和bytes类型彻底分开了。字符串是以字符为单位进行处理的,bytes类型是以字节为单位处理的。 bytes数据类型在所有的操作和使用甚至内置方法上和字符串数据类型基本一样,也是不可变的序列对象。 Python3中,bytes通常用于网络数据传输、二进制图片和文件的保存等等。

4.9.2 bytes创建

可以通过调用bytes()生成bytes实例,其值形式为 b’xxxxx’,对于同一个字符串如果采用不同的编码方式生成bytes对象,就会形成不同的值。

>>> a = b'hello'

>>> type(a)

>>> b = bytes('hello',encoding='utf8')

>>> type(b)

4.9.3 bytes类型常用转换

那在实际应用中,我们通常会将bytes类型与str类型做转换。

4.9.3.1 字节转为字符串

>>> d = b'world'

>>> d.decode()

'world'

>>> type(d)

4.9.3.2 字符串转为字节

>>> e = 'world'

>>> e.encode()

b'world'

>>> type(e)

5. 浅拷贝与深拷贝

5.1 浅拷贝(copy)

• copy() 方法用来对字典进行复制 • 做拷贝的对象必须是可变类型 • 浅拷贝只能对第一层的数据进行拷贝,如果,第一层的数据也是个可变类型,那么浅拷贝无法将这个数据重新拷贝一份形成新的id

dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}

dict2 = {'1': 1, '2': 2}

dict2 = copy.copy(dict1)

dict2 = dict1.copy()

print(id(dict1), id(dict2))

print(id(dict1['list1']), id(dict2['list1']))

[运行结果如下:]

>>> 2390268476728 2390298372280

2390298861640 2390298861640

5.2 深拷贝

• 深拷贝则可以对所有的数据全部进行拷贝,形成一个新的id

import copy

dict1 = {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]}

dict2 = copy.deepcopy(dict1)

print(dict1,id(dict1))

print(dict2,id(dict2))

[运行结果如下:]

>>> {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]} 2440433925432

>>> {'1': 1, '2': 2, 'list1': [1, 2, 3, {'name': [12, 23]}]} 2489202093296

注意:浅拷贝只会复制字典本身,如果字典中还有个字典是不会进行复制的

6.数据类型转换

函数描述int(x [,base])将x转换为一个整数float(x)将x转换到一个浮点数complex(real [,imag])创建一个复数str(x)将对象 x 转换为字符串chr(x)将一个整数转换为一个字符len(x)返回列表的长度ord(x)将一个字符转换为它的整数值tuple(x)将序列 x 转换为一个元组list(x)将序列 x 转换为一个列表set(x)转换为可变集合dict(x)创建一个字典。x必须是一个 (key, value)元组序列repr(x)将对象 x 转换为表达式字符串hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个十六进制字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象

7.思维导图

8. 课后练习

a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

# 1. a,b = 6, 8 我想让a=8 b=6我该怎么办?用2种方式实现

# 方法一:

def fun(a, b):

print("a={}".format(b))

print("b={}".format(a))

fun(6, 8)

#  方法二:

a, b = 6, 8

a = 8

b = 6

print(a, b)

完成字符串的逆序以及统计 • 设计一个程序,要求只能输入长度低于31的字符串,否则提示用户重新输入 • 打印出字符串长度 • 使用切片逆序打印出字符串

while True:

x = []

x = input('输入长度为0-30的字符串:')

if len(x) >= 31 and x is not str:

print('输入错误,请重新输入:')

else:

break

print(len(x))

print(x[::-1])

要求从键盘输入用户名和密码,校验格式是否符合规则,如果不符合,打印出不符合的原因,并提示重新输入 • 用户名长度6-20,用户名必须以字母开头 • 密码长度至少6位,不能为纯数字,不能有空格

# 知识点

# .isalpha() #检测字符串是否只由字母组成。是则为true

# .isdigit() #检测字符串是否只由数字组成。是则为true

# .isspace() #检测字符串是否只由空格组成。是则为true

admin = input('请输入用户名:(长度6-20,必须以字母开头)')

a: str = admin[:1]

if (6 < len(admin) < 20) and a.isalpha():

pass

else:

print('输入错误,请重新输入:')

password = input('请输入密码:(至少6位,不能为纯数字,不能有空格)')

if len(password) >= 6:

pass

elif password.isdigit() and password.isnotspace() and password.isalpha():

pass

else:

print('输入错误,请重新输入:')

现在有 a = [1,2,3,4,5,6] 不通过函数的形式实现列表的反转([6,5,4,3,2,1]) 并写出推导过程

# 方法一:

a = [1, 2, 3, 4, 5, 6]  # 列表的reverse方法进行逆序输出

a.reverse()

print(a)

# 方法二:

a = [1, 2, 3, 4, 5, 6]  # 列表的sort方法进行逆序输出

a.sort(reverse=True)

print(a)

# 方法三:

a = [1, 2, 3, 4, 5, 6]

b = a[::-1]

print(b)

给 用户9次机会 猜1 - 10 个数字随机来猜数字。如果随机的数字和用户输入的数字一致则表示正确,如果不一致则表示错误。最终结果要求用户怎么也猜不对

player_list = []

total_list = list(range(1, 11))

for i in range(9):

guess = int(input('请猜1 - 10 之间的一个整数:'))

player_list.append(guess)

print('猜错了,你还有', 8 - i, '次机会')

for k in total_list:

if k in player_list:

continue

else:

print('游戏结束,正确数字为:', k, ',想不到吧!')

有两个列表 lst1 = [11, 22, 33] lst2 = [22, 33, 44]获取内容相同的元素

list1 = [11, 22, 33]

list2 = [22, 33, 44]

Same_list = []

for i in list1:

if i in list2:

Same_list.append(i)

else:

continue

print(Same_list)

现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中

import random

Teacher = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

Room=[1,2,3]

for i in Teacher:

Room=random.randint(1,3)

print("{}老师分配到{}号办公室".format(i,Room))

现在有8位老师,3个办公室,要求将8位老师随机的分配到三个办公室中,要求每个办公室至少有一个老师(如果觉得上面的题不够写的话,写这个)

import random

teacher_lst = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H']

off_lst = [1, 2, 3]

basic_tindex = random.sample(range(0, 8), 3)

for i in off_lst:

print(teacher_lst[basic_tindex[i - 1]], '老师', '分在', i, '号办公室')

for j in range(8):

if j not in basic_tindex:

off_j = random.randint(1, 3)

print(teacher_lst[j], '老师', '分在', off_j, '号办公室')

else:

continue

a = {“name”:“123”,“data”:{“result”:[{“src”:“python1”},{“src”:“python2”},{“src”:“python3”}]}} 找到python1/python2/python3

a = {"name":"123",

"data":{"result":

[{"src":"python1"},

{"src":"python2"},

{"src":"python3"}

]

}}

for i in a["data"]["result"]:

print(i["src"])

有如下值集合[11,22,33,44,55,66,77,88,99,90], 将所有大于66的值保存至字典的第一个key的值中,将小于66值保存至第二个key的值中。

b = [11, 22, 33, 44, 55, 66, 77, 88, 99, 90]

dict1 = {}

c = []

d = []

for i in b:

if i < 66:

d.append(i)

else:

c.append(i)

dict1 = dict(one=c, two=d)

print(dict1)

python123基本数据类型有哪些_python的基本数据类型相关推荐

  1. python数据类型怎么定义_Python的五大数据类型的作用、定义方式、使用方法

    一.简述Python的五大数据类型的作用.定义方式.使用方法: 1. 数字类型int: 1.整形 作用:可以表示人的年龄,身份证号码,身高和体重等 定义方式: weight = 130 print(w ...

  2. python三种基本数据类型有哪些_python中基本数据类型有哪些

    python中基本数据类型有哪些 发布时间:2020-11-17 11:47:08 来源:亿速云 阅读:110 作者:小新 这篇文章将为大家详细讲解有关python中基本数据类型有哪些,小编觉得挺实用 ...

  3. python语言的数据类型有哪些_python中的数据类型有哪些?

    在Python中,基本数据类型主要可分为以下几种: 1.数字(Number): 2.字符串(String): 3.列表(List): 4.字典(Dictionary): 5.元组(Tuple): 今天 ...

  4. python各种数据类型的常用方法_python的基本数据类型:列表的方法

    整数和浮点(Python3 没有int和long只有int类型) 十进制 默认 二进制 0bnnn 八进制 0onnn 十六进制 0xnnn float() decimal 固定小数模块 fracti ...

  5. python语言的数据类型有哪些_Python语言有哪些数据类型

    在Python中,能够直接处理的数据类型有以下几种: 一.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序中,整数的表示方法和数学上的写法一模一样,例如:1,100,-80 ...

  6. python中什么是主要数据类型_python中基本数据类型是什么

    python中基本数据类型是什么,变量,整型,类型,赋值,等号 python中基本数据类型是什么 易采站长站,站长之家为您整理了python中基本数据类型是什么的相关内容. python中基本数据类型 ...

  7. python六种数据类型不可变_python面试题(-)可变数据类型与不可变数据类型

    python3中有六个标准的数据类型:number(数字型).string(字符串型).list(列表).type(元祖).dictionary(字典).set(集合),其中不可变类型三个:numbe ...

  8. python 只取年月日 字符串_Python基础:数据类型和变量amp;字符串和编码

    Python基础:1.数据类型和变量 数据类型 计算机顾名思义就是可以做数学计算的机器,因此,计算机程序理所当然地可以处理各种数值.但是,计算机能处理的远不止数值,还可以处理文本.图形.音频.视频.网 ...

  9. python复数的实部和虚部的数字类型_Python基础:数据类型-数字(5)

    在Python中,所有的数据类型都是类,每一个变量都是类的实例. Python中有6种标准数据类型:数字(Number).字符串(String).列表(List).元组(Tuple).集合(Sets) ...

最新文章

  1. Melkman's Algorithm
  2. mac通过tree源码编译安装tree
  3. java string类型时间段 转换 date类型
  4. Learning Perl chapter 4 练习题
  5. Qt路径中常用字符“./”、“../”、“/”、“*”的含义
  6. 【机器学习】 - 各种人脸数据集下载地址及说明汇总
  7. [BZOJ2502]清理雪道
  8. cmd命令之参数 c
  9. 【SHOI2002】【Luogu1434】滑雪(记忆化)
  10. 如何用python做模型_python的模型如何使用?
  11. 04 数据清洗与准备
  12. 3D建模最常用的是那三款软件?
  13. 老司机通过后视镜辨别车距 完爆倒车影像功能
  14. Spread控件使用说明_技术部分
  15. abi-dumper 理解
  16. JavaScript-作用域和作用链
  17. node.js基于vue的化妆品销售管理系统的设计与实现毕业设计源码151314
  18. html5 bdi 不起作用,html bdi标签的使用详解
  19. Rviz显示机器人运动轨迹
  20. ASP.NET中的KRE是什么?

热门文章

  1. 函数前后带两个下划线
  2. easyexcel读取合并单元格
  3. 解决Ubuntu无线网卡突然无法连接
  4. 【Unity3D Shader编程】之一 夏威夷篇:游戏场景的创建 第一个Shader的书写
  5. 网络准入认证系统方案评估_七夕小子_新浪博客
  6. 智联招聘 爬虫职位信息的爬取
  7. Transformer讲解(三)- CV变形金刚-ViT知识介绍
  8. 设置ListView中的所有Item均不可点击
  9. 高手新手都能用的140个电脑技巧 收藏
  10. 用 Python 生成 CSV 文件