1.注释:
单行注释:#注释内容
多行注释:
"""
第一行
第二行
第三行
"""
或
'''
第一行
第二行
第三行
'''
2.定义变量
变量名=值
变量名满足标识符命名规则即可
3.标识符命名规则:
- 有数组、字母、下划线组成
- 不能数字开头
- 不能使用内置关键字
- 严格区分大小写
内置关键字如下:
4.数据类型
5.格式化符号
%06d,表示输出的整数显示位数,不足以0补全,超出当前位数原样输出
%.2f,表示小数点后显示的小数位数
eg:print('今年我的年龄是%d' % age)
print('我的名字是%s,年龄是%d' % (name,age))
6.格式化输出字符串:
print(f'我的名字是{name},今年{age}岁')
python3.6新增的方法
7.转义字符
\n:换行
\t:制表符,一个tab键的距离
8.输入功能:
input("提示信息")
input接受用户输入后,一般存储到变量使用,接收到的数据都当作字符串处理
9.转化数据
10.运算符:
- 算数运算符
- 赋值运算符
- 复合赋值运算符
先算复合运算符右边的值,再算复合运算符
- 比较运算符
- 逻辑运算符
11.if语句
if 条件:
代码1
代码2
……..
elif 条件:
代码1
代码2
……
else:
以上条件都不执行的情况下执行的代码
12.随机数:
1.导入random模块
import 模块名
2.使用random模块中的随机整数功能
random.randint(开始,结束)
13.三目运算符
条件成立的表达式 if 条件 else 条件不成立执行的表达式
14.while
while 条件:
代码1
代码2
…..
else:
循环正常结束之后要执行的代码
15.break:终止此循环
continue:退出当前一次循环继而执行下一次循环代码
16:for循环
for 临时变量 in 序列:
代码1
代码2
……
17.字符串:
使用引号创建字符串
eg:
name1='tom'
name2="sam"
name3='''rose'''
name4="""kate"""
输出:print('helloword')
print('我的名字是%s' % name)
输入:name=input('提示')
查找:
find():
检测某个子串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则返回-1
语法:字符串序列.find(子串,开始位置下标,结束位置下标)
index():
检测某个字串是否包含在这个字符串中,如果在返回这个子串开始的位置下标,否则则报异常
rfind():和find()功能相同,但查找方向为右侧开始
rindex():和index()功能相同,但查找方向为右侧开始
count():返回某个子串在字符串中出现的次数
修改:
replace():替换
语法:字符串序列.replace(旧子串,新子串,替换次数)
注意:替换次数如果查出子串出现的次数,则替换次数为该子串出现次数
split():按照指定字符分割字符串
语法:字符串序列.split(分割字符,num)
注意:num表示的是分割字符出现的次数,即将来返回数据个数为num+1个
join():用一个字符或子串合并字符串,即是将多个字符串合并为一个新的字符串
语法:字符或子串.join(多字符串组成的序列)
18.下标(索引):
str='abcdefg'
str[1]---->b
19.切片:
切片指对操作的对象截取一部分的操作。字符串、列表、元组都支持切片操作。
语法:
序列[开始位置下标:结束位置下标:步长]
注:不包含结束位置下标对应的数据,正负整数均可
步长是选取间隔,正负整数均可,默认步长为一
20.大小写转换:
capitalize():将字符串第一个字符转换成大写
注意:capitalize()函数转换后,只字符串第一个字符大写,其他字符全都小写
title():将字符串每个单词首字符转换成大写
lower():将字符串中大写转小写
upper():将字符串中小写转大写
21.删除空白字符:
lstrip():删除字符串左侧空白字符
rstrip():删除字符串右侧空白字符
strip():删除字符串两侧空白字符
22.字符串对齐
ljust():返回一个原字符串左对齐,并使用指定字符(默认空格)填充至对应长度的新字符串
字符串序列.ljust(长度,填充字符)
rjust():返回一个原字符串右对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同。
center():返回一个原字符串居中对齐,并使用指定字符(默认空格)填充至对应长度的新字符串,语法和ljust()相同
23.判断
startswith():检查字符串是否以指定子串开头,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
语法:字符串序列.startswith(子串,开始位置下标,结束位置下标)
endswith():检查字符串是否是以指定子串结尾,是则返回True,否则返回False。如果设置开始和结束位置下标,则在指定范围内检查
语法:字符串序列.endswith(子串,开始位置下标,结束位置下标)
isalpha():如果字符串至少有一个字符并且所有字符都是字母则返回True,否则返回False。
isdigit():如果字符串只包含数字则返回True,否则返回False
isnum():如果字符串至少有一个字符并且所有的字符都是字母或数字则返回True,否则返回False
issapce():如果字符串中只包含空白,则返回True,否则返回False。
24.列表
列表可以一次性存储多个数据,且可以为不同数据类型
[数据1,数据2,…… ]
查找:(1)下标:
序列排序从0开始,
(2)函数:
index() :返回指定数据所在位置的下标
count():统计指定数据在当前列表中出现的次数
ken():访问列表长度,即列表中数据的个数
in:判断指定数据在某个列表序列,如果在返回True,否则返回False
eg:
not in:判断指定数据不在某个列表序列,如果不在返回True,否则返回False
增加:append():列表结尾追加数据,若追加的数据是一个序列,则追加整个序列到列表
列表.append(数据)
extend():列表结尾追加数据,若追加的数据是一个序列,则将序列数据逐一添加到列表
insert():指定位置新增数据
列表序列.insert(位置下标,数据)
删除:del():
del 目标
pop():删除指定下标的数据(默认为最后一个),并返回该数据
列表序列.pop(下标)
修改:(1)修改指定下标的数据
列表[序号]=赋值
(2)逆序:reverse()
(3)排序:列表序列.sort(key=None,reverse=False)
reverse代表排序规则,True降序,False升序(默认)
复制:copy()
eg:list2=list1.copy()
25.列表的循环遍历:
(1):while循环
i=0
while(i<len(name_list)):
print(name_list[i])
i+=1
(2):for循环
for i in name_loist:
print(i)
26.元组:元组内的数据不可修改
(数据1,数据2,…… )
单个数据元组:(数据1,)
查找:(1):下标
(2):元组.index(‘数据’)
(3):元组.count('数据') 统计某数据出现的次数
(4):元组.len()
修改:元组内的直接数据如果修改则报错
但如果元组里有列表,修改列表里面的数据则支持
27.字典:
特点:符号为大括号
数据为键值对形式出现
各个键值对直接用逗号隔开
创建:(1):有数据的字典:
dict1={'name':'tom','age':20,'gender':'男'}
(2):空字典:
dict2={}
dict3=dict()
新增: 字典序列[key]=值
若key不存在,新增键值对,如果存在,则修改值
删除:del 字典序列[ ]
字典序列.clear()清空字典
修改:字典序列[key]=值
查找:(1)字典序列['key值']
(2):函数
字典序列. get('key值')
存在则返回值,不存在则返回none
字典序列.keys()
返回所有key值
字典序列.value
返回所有value值
字典序列.items()
返回所以键值对,每个键值对形成一个元组
遍历:(1)遍历字典的key:
for key in dict1.keys():
print(key)
(2)遍历字典的value:
for value in dict1.values():
print(value)
(3)遍历字典的元素:
for item in dict1.items():
print(item)
(4)遍历字典的键值对:(拆包)
for key,value in dict1.items():
print((f'{key}={value}'))
28.集合:无序,不支持下标
创建:s1={数据,数据}
s2=set('abcd')
s3=set() 创建空集合
增加:(1)s1.add(需要增加的新数据) 只能增加单一数据
若增加的数据集合中存在,集合有去重功能,无事发生
(2)s1.update():增加的数据是序列
删除:(1)集合.remove(指定数据) #数据不存在报错
(2)集合.discard(指定数据) #数据不存在不报错
(3)集合.pop() #随机删除某个数据,并返回该数据
查找:in:判断数据在集合序列
not in :判断数据不在集合序列
容器类型转换:
tuple(需要转换的)
list(需要转换的)
set(需要转换的)
29.推导式:
用一个表达式创建一个有归路的列表或控制一个有规律列表,又叫列表生成式
eg:
30.函数
定义函数:
def 函数名(参数):
代码
……
调用函数:
函数名(参数)
31.函数的说明文档:
help(函数名):查看函数的说明文档
写法:
def 函数名(参数):
“””说明文档的位置“”“
代码
……
32.变量作用域:
局部变量:定义在函数体内部的变量,只在函数体内部生效
作用:在函数体内部临时保存数据,即当函数调用完成后,则销毁局部变量
全局变量:函数体内、外都能生效的变量
33.位置参数:
调用函数时根据函数定义的参数位置来传递参数
34.关键字参数:
函数调用,通过”键=值“形式加以指定。
无先后书写顺序
位置参数必须写在关键字参数的前面
35.缺省参数
即默认参数,用于定义函数,为函数提供默认值,调用函数时可以不传该默认参数的值
位置参数必须出现在默认参数之前,包括函数定义和调用
36.不定长参数
即可变参数,用于不确定调用的时候会传递多少个参数(不传参也可以)的场景。此时,可以用包裹位置参数,或者包裹关键字参数,来进行参数传递
传进的所有参数都会被args变量收集,它会根据传进参数的位置合并为一个元组
包裹关键字:
无论是包裹位置传递还是包裹关键字传递,都是一个组包过程
37.拆包:
拆包:元组
拆包:字典
38.交换两个变量可使用
a,b=b,a
39.引用:
在python中,值是靠引用传递来的
我们可以用id()来判断两个变量是否为同一个值的引用。我们可以id理解为内存的地址标识
40.递归:
函数内部自己调用自己
41.lambda表达式
无参数:
lambda :100
一个参数:
lambda:参数:含参数表达式
可变参数:
lambda:*args:args
这里的可变参数传入到lambda之后,返回值为元组
42.高阶函数:
把函数作为参数传入,这样的函数称为高阶函数
map(func,list):吧传入的函数变量func作用到list变量的每个元素中,并将结果组成新的列表/迭代器返回
reduce(func,list):func必须有两个参数,每次func计算的结果继续和序列的下一个元素做累积计算
filter(func,list)用于过滤序列,过滤掉不符合条件的元素,返回一个filter对象。如果要转换为列表,可以使用list()来转换
43.文件操作步骤
打开:
open(name,mode):可以打开一个已经存在的文件或者创建一个新文件
name:要打开的目标文件名的字符串(可以包含文件所在的具体路径)
mode:设置打开文件的模式(访问模式):只读、写入、追加等
‘r’:如果文件不存在,报错;不支持写入操作,只读
‘w’:只写,如果文件不存在,新建文件,执行写入,会覆盖原有内容
‘a’:追加:如果文件不存在,新建文件,在原有内容基础上,追加新内容
如果省略不写,表示访问模式为r
其他访问模式:
读取:
文件对象.read(num)
num表示要从文件中读取的数据的长度(单位是字节),如果没有传入num,那么就表示读取文件中所有的数据
如果有换行(\n)则读取字节数与展示数不同,换行符有字节占位
文件对象.readlines()
按照行的方式把整个文件中的内容进行一次性读取,并且返回的是一个列表,其中每一行的数据为一个元素
文件对象.readline()
一次读取一行内容
seek函数:
用来移动指针
文件对象.seek(偏移量,起始位置)
起始位置:
0:文件开头
1:当前位置
2:文件结尾
44.文件和文件夹的操作
1.导入os模块
2.使用os模块相关功能
os.函数名()
os.rename(目标文件名,新文件名) 重命名文件
os.remove(目标文件名) 删除文件
os.mkdir(文件夹名字) 创建文件夹
os.rmdir(文件夹名字) 删除文件夹
os.getcwd() 获取当前目录
os.listdir() 获取当前文件目录列表