1 集合(set)是一个不重复,是无序的元素队列,每个元素只能出现一次
2.可以用set()函数或者方括号{}创建,元素之间用逗号”,”分隔。
3.与字典相比少了键
4.不可索引,不可切片,不可以有重复元素
# 两种方法创建
set1 = set('kydaa')
set2 = {'abc', 'jaja', 'abc', 'kyda'}
print(set1)
print(set2)
结果:自动将重复元素去除
{'a', 'y', 'd', 'k'}
{'jaja', 'abc', 'kyda'}
简单用途:集合中的元素不可重复的特点使它被拿来去重
1允许重复的集合,是无序的;元素是可以修改的
2 字典是另一种可变容器模型,且可存储任意类型对象。
3 元素由键(key)和值(value)组成
4 可以用dict()函数或者方括号()创建,元素之间用逗号’,‘’分隔,键与值之间用冒号”:”隔开
5 键必须是唯一的,但值则不必。值可以取任何数据类型,但键必须是不可变的,如字符串,数字或元组
6 使用键(key)来访问元素
# 用dict()函数创建
dict1 = dict([('name', 'kyda'), ('e', 10)])
# 用{}创建
dict2 = {'name': 'lin', 'age': 21}
print(dict1)
# 使用键(key)来访问元素
print(dict2['name'])
# 使用键(key)来访问元素,并修改元素的值
dict2['age'] = 23
print(dict2)
{'name': 'kyda', 'age': 10}
lin
{'name': 'lin', 'age': 23}
用途
1允许重复的集合,是有序的;但子元素是不可以修改的
2 用tuple()函数或者方括号()创建,元素之间用逗号’,‘’分隔。
3 可以使用索引来访问元素
4 可用切片来获取数据,也可以用一些函数来操作增删改查
5 与列表区别:元素的值一旦创建就不可修改
# 可用tuple()函数创建
tuple1 = tuple([1, 2])
# 用()建立,可包含不同数据类型
tuple2 = (1, 3, 'hello', 3.5)
# 可用下标访问
print(tuple1[1])
# 可切片
print(tuple2[1:3])
# 不可以修改元素
tuple1[1] = 10
简单用途:元组为不可变序列,用于对象长度已知的情况下,而且元组元素一旦创建变就不可修改
1列表 list() 允许重复的集合,是有序的;即元素可以是一样的,也可以修改元素;
2 是可变的数据类型【可进行增删改查】以方括号“[]”包围的数据集合,不同成员以“,”分隔
3 可以使用索引来访问元素
4 可用切片来获取数据,也可以用一些函数来操作增删改查
# 可用list()函数建立
list1 = list((1, 2))
# 用[]建立,可包含不同数据类型
list2 = [1, 3, 'hello', 3.5]
# 可用下标访问
print(list1[1])
# 切片
print(list2[1:3])
简单用途: 列表是可变序列主要用于对象长度不可知的情况下
小结:列表(list)重复、有序、 可变类型
元祖(tuple) 重复 、有序 、 不可变类型
字典(dict) 重复 、无序、 可变类型
集合(set)不重复 、无序、 可变类型
对于有序无序的理解:
例如:1 列表是一组任意类型的值,按照一定顺序组合而成的
2 通过偏移读取,每一个元素被标识一个索引,第一个索引是0,序列的功能都能实现
3 列表中的元素可以是任意类型,甚至是列表类型,也就是说列表可以嵌套
4 可变的序列 支持索引、切片、合并、删除等等操作,它们都是在原处进行修改列表
5 对象引用数组 ,列表可以当成普通的数组,每当用到引用时,Python总是会将这个引用指向一个对象,所以程序只需处理对象的操作。当把一个对象赋给一个数据结构元素或变量名时,Python总是会存储对象的引用,而不是对象的一个拷贝
Python中的数组和列表具有相同的存储数据方式。但是,数组只能包含单个数据类型元素,而列表可以包含任何数据类型元素。
Python中的内置类型如下:整型、浮点型、复数、字符串、布尔等。
数字(digit),列表(list),元祖(tuple),字典(dictionary),字符串(string),集合(sets)
从对象内存地址方向来说
可变数据类型:在内存地址不变的情况下,值可改变(列表和字典是可变类型,但是字典中的key值必须是不可变类型)
不可变数据类型:内存改变,值也跟着改变。(数字,字符串,布尔类型,都是不可变类型)可以通过id()方法进行内存地址的检测
列表和元组之间的区别在于列表是可变的而元组不是。元组可以被散列,例如作为词典的关键。
Python中的所有内容都是一个对象,所有变量都包含对象的引用。参考值是根据功能; 因此,您无法更改引用的值。但是,如果对象是可变的,则可以更改它们。
有可变和不可变类型的Pythons,内置类型为Mutable内置类型
不可变的内置类型
在Python中,引入的每个名称都有一个存在的地方,可以被连接起来。这称为命名空间。它就像一个框,其中变量名称映射到放置的对象。每当搜索到变量时,将搜索此框以获取相应的对象。
要在Python中生成随机数,您需要将命令导入为:
import random
random.random()
这将返回[0,1)范围内的随机浮点数。
局部变量:如果在函数体内的任何位置为变量赋值,则假定它是本地的。
全局变量:仅在函数内引用的那些变量是隐式全局变量。
编译型语言:
使用专门的编译器,针对特定的平台,将高级语言源代码一次性的编译成可被该平台硬件执行的机器码,并包装成该平台所能识别的可执行性程序的格式。
特点:
在编译型语言写的程序执行之前,需要一个专门的编译过程,把源代码编译成机器语言的文件.
执行方式:
源代码 ———> 编译(一次编译) ———>目标代码———>执行(多次执行)———>输出
解释型语言:
使用专门的解释器对源程序逐行解释成特定平台的机器码并立即执行。
特点:
解释型语言不需要事先编译,其直接将源代码解释成机器码并立即执行,所以只要某一平台提供了相应的解释器即可运行该程序。
执行方式:
源代码 ———> 解释器(每次执行都需要解释)———>输出
编译型: C c++, c#
解释型: python PHP ruby, java
1 三元运算又称三目运算,是对简单的条件语句的简写:
为真时的结果 if 判断条件 else 为假时的结果(注意,没有冒号)
x = x+1 if x%2==1 else x
2 三元运算符是用于显示条件语句的运算符。这包含true或false值,并且必须为其评估语句。其基本语法为:
[on_true] if [expression] else [on_false] x,y = 25,50big = x if x 字符串:索引、查找find('e')、移除空白strip()、长度len()、替换replace('h', 'H') 列表:切片[1:4]、追加append()、插入insert()、修改li[2]="修改"、删除remove和pop 元组:索引ages[3]、切片name[0:2]、长度len()、创建tuple、删除del 字典:keys()返回包含字典所有key的列表;values()返回包含字典所有value列表;items()返回一个包含所有键值的列表;get()查看字典key对应的值;len()查看字典长度。 append:在列表末尾添加新元素。 insert:在列表的特定位置添加元素。 extend:通过添加新列表来扩展列表。 requests json sleep webdriver threading pymysql unittest # 在python中,unittest是Python中的单元测试框架。它拥有支持共享搭建、自动测试、在测试中暂停代码、将不同测试迭代成一组。 # 而在我们自动化测试中unittest可以帮助我们实现数据参数化,窗口在执行出错的时候自动截屏,自动生成测试报告等相关操作, # 其中的FixTure可以帮助我们节省大量的冗余代码。 2 至少列举8个常用模块都有那些? pip、pygame、pyMysql、sys、math、time、os、wxPython 在PyCharm中,只需要敲出main,然后回车,PyCharm就会自动会补全if __name__ == '__main__'。 __name__ 是模块的一个私有属性。 当前运行的模块的名字都为:__main__ 即,作为被导入的模块时,不会被运行。 os:提供了不少与操作系统相关联的函数 path sys: 通常用于命令行参数 re: 正则匹配 math: 数学运算 datetime:处理日期时间 lambda函数也叫匿名函数,该函数可以包含任意数量的参数,但只能有一个执行操作的语句。 self是类的实例或对象。在Python中,self包含在第一个参数中init方法中的self变量引用新创建的对象,通过使用self关键字,我们可以在Python中访问类的属性和方法。 注意,在类的函数当中,必须使用self,因为类中没有用于声明变量的显式语法。 当我们不确定将多少个参数传递给函数,或者我们想要将存储的列表或参数元组传递给函数时,我们使用* args。 **当我们不知道将多少关键字参数传递给函数时使用kwargs,或者它可以用于将字典的值作为关键字参数传递。标识符args和kwargs是一个约定,你也可以使用* bob和** billy。 可变类型:list[]、dict{key,value}、set、可变集合 不可变类型:string、int、float、tuple()、不可变集合 1、Python中的小括号(): 代表tuple元祖数据类型,元祖是一种不可变序列。创建方法很简单,大多数时候都是小括号括起来的。 2、Python中的中括号[]: 代表list列表数据类型,列表是一种可变序列。创建方法既简单又特别。 3、Python中的花括号{}: 代表dict字典数据类型,字典是Python中唯一内建的映射类型。字典中的值没有特殊的顺序,但都是存储在一个特定的键(key)下。键可以是数字、字符串甚至是元组。 “__init__”是Python类中的保留方法。 它被称为构造函数,每当执行代码时都会自动调用它,它主要用于初始化类的所有变量。 在unittest单元测试框架中提供了丰富的断言方法,例如assertEqual()、assertIn()、assertTrue()、assertIs()等,而pytest单元测试框架中并没提供特殊的断言方法,而是直接使用python的assert进行断言。 python装饰器本质上就是一个函数,它可以让其他函数在不需要做任何代码变动的前提下增加额外的功能,装饰器的返回值也是一个函数对象。 pickling是将Python对象(甚至是Python代码),转换为字符串的过程。 unpickling是将字符串,转换为原来对象的逆过程。 split:只要模式匹配,此方法就会拆分字符串。 sub:此方法用于将字符串中的某些模式替换为其他字符串或序列。 subn:和sub很相似,不同之处在于它返回一个元组,将总替换计数和新字符串作为输出。 面向对象编程,抽象(Abstraction)、封装(Encapsulation)、继承(Inheritance)、多态(Polymorphism)10 字符串、列表、元组、字典每个常用的5个方法?
10.1 Python中append,insert和extend的区别?
11 常用的包 和内置库
2 列出5个python标准库
12 什么是lambda函数?
13 Python中的self是什么?
14 为什么使用* args,** kwargs?
15 python当中如何操作数据库?
# 1. 连接
导入pymysql包
conn = pymysql.connect(
user = 'root', # 用户名
password = '111111', # 用户密码
db = 'aaa', # 连接的数据库
charset = 'gbk', # 设置字符编码
cursorclass=pymysql.cursors.DictCursor # 设置游标类型,已返回不同类型数据
)
# 只是完成了连接
# 2. 创建游标
cursor = conn.cursor()
# 相当用创建了数据库操纵对象,获取数据的工具
# 3. 执行sql语句
cursor.execute('select * from student') # 返回了3条数据
# 4. 获取数据
result = cursor.fetchall()
print(result)
# 默认返回嵌套的元组,元组里的每一个元组是一行数据,未设置cursorclass的情况下
# 如果设置cursorclass=pl.cursors.DictCursor,返回的是一个字典列表,每个字典就是一行数据
# 5. 执行完毕之后关闭游标
cursor.close()
# 6. 关闭连接
conn.close()
16 简述Python的可变类型和不可变类型?
17 python 中的 __new__和 __init__方法的作用是什么?
18 单元测试框架的断言方式?
19 装饰器 - 知道它是什么?
20 什么是pickling和unpickling?
21、解释re模块的 split、sub、subn方法 ?
22 Python中OOPS是什么?