一、 索引与切片
#索引 在公司中一般也叫做下标或者角标,可以通过索引位读取序列中的指定元素,索引可分为正向索引和负向索引,索引中正向索引从0开始,负向索引从-1开始
#range 遍历函数(起始位,结束位,隔位)
遍历函数中:包含起始不包含结束,隔位不能为0可以为
Eg: 用range求出100以内的奇数和偶数
print(list(range(0,101,2))) #使用range遍历方法求出100以内偶数
print(list(range(1,101,2)))#使用range遍历方法求出100以内奇数
#二、切片
切片的表达式:str[start_index:end_index:step] [开始索引:结束索引:步长值]
2、解释:
start_index:开始索引(可以取值)
end_index:结束索引(不能取值)
step:步长
注意点:
3、注意点
1)、切片中如果步长不写则默认为1
2)、切片取值从开始索引到结束索引,且结果不包括结束索引位的值 (取到索引位的前一位)
3)、步长从开始索引走起,步长分正负
st= ‘abcdefgihjk’ #step步长值 能取开始索引 不能取结束索引 默认步长为1
print(st[::-1]) # lkjhgfedcba 面试题目:重点把字符串中的值进行反向输出
常见的字符串函数str
字符串的定义:要用单引号或者双引号英文 括起来表示
1、 str.capitalize():(实现首字母大写输出)意思:首写大字母
2、 str.count(‘XX’):统计指定的字符在当前字符串中出现的次数
3、 ””.join(‘XX’):(拼接函数)自动定义分割,来分割当前的字符串(自定义符号)
4、 split分割函数
5、 strip#删除字符串开头和结尾的字符
6、str.lstrip(‘XX’):删除字符串以XX字符开头的内容
7、str.rstrip(‘XX’):删除字符串以XX字符结尾的内容
8、 str.startswith(‘XX’):判断字符串中以XX字符串开头,如果条件成立返回TRUE,否则返回FALSE
9、str.endswith(‘XX’)判断字符串中以XX字符串结尾,如果条件成立返回TRUE,否则返回FALSE
10、find、rfind通过具体的值来找到对应值的索引位,
12、str.replace(‘XX’,‘YY’)替换指定的字符串,且可以指定替换次数
13、replace():replace(substring,newstring,max)
14、str.lower()将字符串中的所有大写字母改为小写
15、str.upper()将字符串中的所有小写字母改为大写
16、isalnum()判断字符串是否是字母或数字,数字和字母的组合
17、isdigit 判断字符串是否是数字
18、slower判断字符串是否是小写
19、isupper判断字符串是否大写
20、#istitle():判断字符串中首字母是否为大写,其他是否为小写,其他不为小写则为否
三、python中的列表:list [ ]
定义列表方法
方法一、直接通过[ ]来定义 ([] 中括号)
list1 =[1,2,3,‘teat’]
print(type(list1)) #
方法二、a =‘hello’ #定义一个字符串
b=list(a) #通过list列表类型来将a字符串转换成为列表
通过索引赋值:格式 列表名[ 索引]=“ 新值”
通过切片赋值:格式 列表名[ 索引:]=“ 新值”
append 添加元素
exend 添加函数,(两个列表的拼接)
insert 插入
remove 删除
del 删除
sort 升序
sorted 降序
reverse 反转
pop 删除(默认删除最后一个元素)
index 索引位
四、Python中的元组tuple ()
元组是不可变
1、如果要让做一个值的的元组输出的类型是元组:在数组的后面加上,(英文逗号)s=(1,)
元组转列表
方法一:将元组转换成列表 ,通过list 方法;
(1)第一步转换:s=(1,2,3,4,5) #元组
(2)第二步:转换成列表再进行修改,增加,删除
五、python中的字典:dict类型{} 英文的大括号 也叫花括号
一、列表转换成字典步骤 重点:(使用dict 就可以转换)
第一步:定义一个列表
l =[(‘name’,‘zhangsan’),(‘age’,18)]
第二步:使用dict 将列表转换成字典
di_ct=dict(l)#将列表转换成为字典
第三步:查看字典的类型
print(type(di_ct)) #
第四步:在打印字典
print(di_ct) #{‘name’: ‘zhangsan’, ‘age’: 18}
1、字典中添加键值对: 格式:变量名[键] =值
注意:字典中添加新的的键和值,默认体在最后
2、字典中有键,替换值(键不变,值变)
3、通过keys取出对应的键
4、通过values 取出字典中对应的值
5、通过键来获取对应键的值
6、添加设置默认键值setdefault
7、删除键(删除键,值也没有了)del
8、使用for 循环获取key
9、使用for循环获取key,values
10、通过items()方法来获取对应键值对
11、通过pop函数删除指定的键,打印返回对应键的值
12、popitem在字典删除键值对,一般默认在末尾
13、clear 来清空当前字典中的键值对,返回一个空字典
14、get ,get通过键获取对应的值
15、快速生成一个新字典的方法fromkeys
#print ({ }.fromkeys([‘name’,‘age’]))
16、update 方法 将多个字典合并
17、copy 复制字典
18、del删除字典
六、集合:是不同元素的无序集合
1、可变集合(set):集合里面的元素是可以发生变化,集合中可以动态的增加和删除。
2、不可变集合(frozenset):集合里面的元素是不可以发生变化
注意:集合中的元素是无序的,且集合后元素不重复
去重:
一、(1)对列表数据重复的,进行去重
(2)对一个“字符串”进行去重
案例1:对列表数据重复的,进行去重
new = [1,2,33,2,2,99,‘test’] #列表中元素去重
print(type(new))
print(new)
yy=set(new)
print(type(yy))
print(yy)
二、update 添加集合的内容
第一种方法;
test=“hello”
yy=set(test)
print(yy)
yy.update(“8”)
print(yy)
第二种方法:
test = ‘hello’
yy = set(test)
yy.add(‘123’)
print (yy)
三、clear 清除集合种的内容
test = ‘hello’
yy = set(test)
yy.clear() #清除集合中的内容
print (yy)
pop 删除集合中的内容
讲解:pop()方法用于随机移除一个元素例如:set.pop()
备注:不带参数时一般是移除最后一位,但是我们这里删除的是第一位
test=“hello”
yy=set(test)
yy.pop()
print(yy)
remove 删除指定的内容
a=(‘99’,‘88‘)
yy=set(a)
yy=remove(‘88’)
print (yy)
复制集合
test = ‘hello’
yy = set(test)
a=yy.copy()
print (a)
不可变集合 frozenset
只能使用copy:
第一种情况:copy(只能对不可变集合复制,)
test = ‘hello’
yy = frozenset(test)
a = yy.copy()
print (a)
三、 python之判断循环语句
python 循环语句
一、if 判断
二、for 循环
第一种情况:if 单分支 (if 条件判断语句分支)
格式:if 判断条件
执行 语句块1
else:
执行 语句块2
pass的讲解
pss的用法:pass 表示占位,在语句中还没有想好写什么满足条件
注意:python中的pass的作用:
(1)pass 是一个空语句
(2)保证格式完整
(3)保证语义完整
第二种情况:if 多分支 格式:
if 判断语句1:
执行语句块1;
elif 判断语句2:
第三种情况:if 语句的嵌套语句(if中嵌套一个if)
嵌套语句格式:
if判断条件1
if 判断条件2:
# 执行语句块2
# else:
# 执行语句块3
# else:执行语句1
执行语句块2;
elif 判断语句3:
执行语句块3;
elif 判断语句4:
执行语句块4;
三、三目运算
格式: print ( '执行语句1' if 条件判断 else '执行语句2')
二、while循环语句
实例一: i=1 sum=0 while i<=10 sum +=i i+=1 print (sum)
三、for循环语句
1、for循环的语法格式如下: for ... in ... 语句块
四、continue语句
用法:continue语句用来告诉Python跳过当前循环的剩余语句,然后继续进 行下一轮循环。
list = [1,2,3,4,5,6,7,8,9]
for i in list:
if i==6: continue
print (i)
五、break语句
用法:语句会立即退出循环,在其后边的循环代码不会被执行。
list = [1,2,3,4,5,6,7,8,9]
for i in list:
if i==6:
break
print (i)
四、Python中的函数
1、函数:一个工具,随调随用
优点:
(1)降低代码冗余
(2)增加代码的复用性,提高开发效率
(3)提高程序扩展性
(3)函数有两个阶段:定义阶段,调用阶段。
(4)定义时:只检查函数体内代码语法,不执行函数体内代码。
(5)比如:我们存储的过程,就是把所有的语句块,调用
(6)封装:就是把代码片段放在函数当中
2、自定义函数
def 自定义函数名():
函数体
函数 的调用格式 函数名()
举例:def fun():
print(‘请输入密码:’)
调用:fun()
调试时调用多个函数:if __name__=='__main__':
从其他模块调用:import aa (导入aa模块)
aa.fun( )(调用aa模块的fun函数)
3、可变长元组(*list)与可变长字典(**dict)
4、全局变量与局部变量
5、return(函数的返回值)
6、内置函数(format、zip、open、with open、abs、sum、map)
1.1 format(格式化输出函数)
a ='{}'.format('hello','ni','hao')
print(a) #打印结果 hello
1.2 zip(打包函数)
打包:zip(a,b) print(list(zip(a,b)))
解压:s,c=zip(*zip(a,b)) print(list(s))
1.2 open(打开与编辑文件)
open完整的语法格式为:
open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)
file: 必需,文件路径(相对或者绝对路径)。
1.3 with open(open的扩展)
url =r'C:\Users\Administrator\PycharmProjects\untitled1\requester\ss.py'
with open(url,'r',encoding='utf-8')as o:
a=o.read()
print(a)
五、Python中的模块
1.模块的导入(import)
Time模块(时间的显示)
time.time()(显示从1970年到现在一共经历的秒数)time.ctime()(显示当前实时时间)
time.sleep()(休眠,括号内加上数字表示休眠多少秒后再执行)
time.strftime()(自定义时间格式:%Y-%m-%d-%H:%M:%S)
time.asctime()(转换为asc码形式显示时间)
3、random模块
random.random() 随机生成0开头的浮点数
random.randint(1,4) 随机取一个在1-4范围内的数(不包含4)
random.sample(a,4) 在a中随机抽取4个数生成一个列表
random.randrange() 递增随机取一个值
random.choice(a) 在a列表中随机取一个值
random.shuffle() 随机洗牌(将列表中的所有元素随机调 动输出)
2.string模块(字符串)
string.digits 生成0-9的整数
string.hexdigits 生成0-9的整数+大小写的a-f和A-F
string.ascii_uppercase 生成26个大写字母
string.ascii_lowercase 生成26个小写字母
4、加密与解密
5、OS 模块(对于目录文件路径常用的模块)
OS.getcwd() 获取当前文件对应的目录(相对路径)
os.path.isfile(a_path) 判断当前是否为文件,返回布尔值
OS.path.isdir() 判断是否为目录
os.path.exists(a_path) 判断文件(目录)是否存在
os.mkdir() 创建目录mkdir(a,755)注意:目要设置权限,755或者777
os.remove(a_path) 删除文件(无法删除目录)
os.listdir(a_path) 获取当前目录下所有的文件和目录
os.path.split(a_path) 对某个路径进行分割,要求:把路径 分隔以后,再通过索引取出分隔后的值,在使用得到的值进行拼接,拼接成新的路径
例如:
#第一步先使用split分割 a_path ="D:\\bao" print(os.path.split(a_path)) # 第二步在根据索引取值 path=os.path.split(a_path)[0] #第三步在拼接 b_path=os.path.join(path,11.py) print(b_path)
os.path.abspath(a_path) 通过名称获取当前名称对应的路径(绝对路径)
os.rename(old_path,new_path) 重命名目录和文件
6、re模块(正则匹配)
# 预定义字符集匹配:
\ d: 数字0-9
\D: 非数字
\s: 空白字符
\n: 换行符
\w: 匹配字母数字
\W: 匹配非字母数字
^:表示的匹配字符以什么开头
$:表示的匹配字符以什么结尾
*:匹配*前面的字符0次或n次 #eg:ab(* 能匹配a 匹配ab 匹配abb )
+:匹配+前面的字符1次或n次
?:匹配?前面的字符0次或1次
{m}:匹配前一个字符m次
{m,n}:匹配前一个字符m到n次(包括n次),m或n可以省略,mn都是
1、findall #从第一个字符开始查找,找到全部相关匹配为止,找不到返回一个空列表[]
2、compile #编译模式生成对象,找到全部相关匹配为止,找不到返回一个列表[]
3、match # 从第一个字符开始匹配,如果第一个字符不是要匹配的类型、则匹配失败并报错# 注意:如果规则带了'+',则匹配1次或者多次,无' +'只匹配一次
4、search #从第一个字符开始查找、一找到就返回第一个字符串,找到就不往下找,找不到则报错
六、类与对象
1、面向对象的基本概念:类(所有具有相同属性和方法的对象的集合)、对象(通过类定义的数据结构实例)、方法(类中定义的函数)、类变量(实例中对象公用的,定义在类中且在函数体之外)、实例变量(用self修饰的变量)
2、定义与使用类
定义格式:class people()
Def __init__(self,name)
创建对象:p=people(‘xx’)
3、类中的实例方法、动态方法、静态方法
实例方法
定义:第一个参数必须是实例对象,该参数名一般约定为“self”,通过它来传递实例的属性和方法(也可以传类的属性和方法);
调用:只能由实例对象调用。
动态方法(类方法classmethod)
定义:使用装饰器@classmethod。第一个参数必须是当前类对象,该参数名一般约定为“cls”,通过它来传递类的属性和方法(不能传实例的属性和方法);
调用:实例对象和类对象都可以调用。
静态方法(staticmethod)
定义:使用装饰器@staticmethod。参数随意,没有“self”和“cls”参数,但是方法体中不能使用类或实例的任何属性和方法;
调用:实例对象和类对象都可以调用。
4、类的三大特性(封装特性、继承特性、多态特性)
封装特性
1、类里面不光有属性还有方法。
2、这种将属性通过方法直接在类内部操作的形式叫做封装。这里的封装是把 属性封装在类内部。
继承特性
1、继承:类的继承是面向对象程序设计的一个重要思想,继承时子 类可以继承父类的内容,包括成员变量和成员函数。
2、在继承中一个类被另外一个类继承这个类称之为父类也称之为基 类,则另外一个类则为子类也称之为派生类。
多态特性
1、多态是以继承和重写父类方法为前提,对所有子类实例化产生的对象 调用相同的方法,执行产生不同的执行结果。
2、例如同样是人,但是当问起一个人的职业时会有不同的结果,可能是 软件测试工程师,可能是HR 3、一个对象的属性和行为不是由他所继承的父类决定的,而是由其本身 包含的属性和方法决定的。