目录
一、基础语法
1、行与缩进:
python使用缩进来表示代码块,不需要使用" { } "。缩进的空格数是可变的,但同一代码块的语句必须使用相同的缩进空格数。
python通常是一行写完一条语句,但如果语句很长,我们可以使用" \ "来实现多行语句,在" [ ],{ },或( ) "中的多行语句,则不需要使用反斜杠。
python可以在同一行中使用多条语句,语句之间使用" ;"分割。
2、注释:单行注释以" # "开头,多行注释可以使用' ' '或" " "(python中单引号与双引号相同)
3、变量:
python中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。在python中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
python中对多变量赋值可以:变量1 , 变量2… = 值1 , 值2…(也可以通过列表、元组实现多重赋值)
python中可通过内置函数type( )判断变量数据类型:一般情况下你只需要将数据类型作为函数名即可,如int( )、float( )、str( )等。
4、读入输出:
读入函数:input("…")输出…后等待用户输出相关内容,按下回车后结束语句。不管用户输入的是什么内容input( )函数都将其作为字符串来处理,所以应按需进行类型转换。
输出函数与输出格式化:print("我叫 %s 今年 %d 岁!" % ('小明', 10))
关键字end可以用于将结果输出到同一行,或者在输出的末尾添加不同的字符
5、import 与 from...import:用import导入相应的模块,用from...import…导入某模块中的函数
二、数字
1、类型:python中数字有四种类型:整数(int)(可以使用十六进制和八进制来代表整数)、布尔型(bool)(整型的子类型)、浮点数(float)和复数(complex)。
2、运算符:
赋值:=、…=
算数:+、-、*、/、//(向下整除)、**(幂运算)、%
比较:==、!=、>、<、>=、<=
位运算:&、|、!、^、~、>>、<<
'''
逻辑运算符:and、or、not
成员运算符:in、not in
身份运算符:is、not is(id( )函数可用于获取对象内存地址)
'''
三、字符串
1、使用三引号' ' ' 或 " " "允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
2、字符串索引:
通过len( )函数可以获取字符串长度,转义符的长度为1。
从左往右以 0 开始,从右往左以 -1 开始。
字符串的截取的语法格式如下:变量名[头下标:尾下标:步长],遵循左闭右开原则
与 C 字符串不同的是,Python 字符串不能被改变。向一个索引位置赋值,如 word[0] = 'm' 会导致错误。
3、转义符" \ ":可以用来转义,使用r可以让反斜杠不发生转义。如 r"this is a line with \n" 则 \n 会显示,并不是换行。
4、字符串可以用 + 运算符连接在一起,用 * 运算符重复。
5、函数调用方法:常量或变量.相关函数名称( )
6、字符串格式化函数format( ):
str.format( ):基本语法是通过{ }和:来代替以前的%format 函数可以接受不限个参数,位置可以不按顺序。
'…{<参数序号>:<格式控制标记>}…'.format(<逗号分隔的参数列表>)
四、序列类型:字符串、列表、元组
1、序列类型通用操作:
索引:正向0-n-1,反向-1--n
分片:[开始索引:结束索引:步长]
连接:+
重复:*
成员资格检查:in,not in
计算元素出现次数:count
五、列表
1、创建列表:list( )函数强制类型转换、[' '、' '、… ]创建列表
2、列表基本操作:
通过索引:赋值修改元素、del函数删除元素、分片赋值
3、常用方法:
extend( ):在列表末端插入(多个)元素(逐个插入)
append( ):在列表末端插入元素(看作一个整体)
pop( ):移除并返回指定某个位置的元素
copy( ):生成新列表,复制调用者的所有元素
//Python中,变量和对象被保存在不同的部分,通过引用相关,直接赋值实际是赋值引用关系,copy可生成新的、与目标变量相同的独立变量。
sort( ):对列表元素进行排序(默认升序,可通过设置reverse参数修改为降序:reverse=True)
insert( ):在指定位置插入元素
remove( ):移除某个元素
reverse( ):反向储存元素
index( ):找出某个值第一个匹配项的索引位置
六、元组
1、创建元组:tuple( )、( )
2、元组特性:单个元素的元组(6,);在不引起二义性的情况西圆括号可以省略;不可变性
七、控制结构
1、条件结构
if语句:
if condition_1:
statement_block_1
elif condition_2:
statement_block_2
else:
statement_block_3
match_case语句:
match subject:
case <pattern_1>:
<action_1>
case <pattern_2>:
<action_2>
case <pattern_3>:
<action_3>
case _:#“_”可以匹配一切
<action_wildcard>
2、循环结构
while:
while <expr>:
<statement(s)>
else:#循环中没有break才能执行该语句,break将while和else看作循环整体
<additional_statement(s)>
for:
for <variable> in <sequence>:
<statements>
else:
<statements>
#整数范围值可以配合 range() 函数(左闭右开)使用
for number in range(1, 6):
print(number)
#可以结合 range() 和 len() 函数以遍历一个序列的索引
for i in range(len(a)):
print(i, a[i])
break&continue
pass:空语句,为保持程序结构的完整性。
zip() 函数:用于将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象
>>> a = [1,2,3]
>>> b = [4,5,6]
>>> c = [4,5,6,7,8]
>>> zipped = zip(a,b) # 返回一个对象
>>> zipped
<zip object at 0x103abc288>
>>> list(zipped) # list() 转换为列表
[(1, 4), (2, 5), (3, 6)]
>>> list(zip(a,c)) # 元素个数与最短的列表一致
[(1, 4), (2, 5), (3, 6)]
>>> a1, a2 = zip(*zip(a,b)) # 与 zip 相反,zip(*) 可理解为解压,返回二维矩阵式
>>> list(a1)
[1, 2, 3]
>>> list(a2)
[4, 5, 6]
>>>
map() 函数:根据提供的函数对指定序列做映射,第一个参数 function 以参数序列中的每一个元素调用 function 函数,返回包含每次 function 函数返回值的新列表。
>>> def square(x) : # 计算平方数
... return x ** 2
...
>>> map(square, [1,2,3,4,5]) # 计算列表各个元素的平方
<map object at 0x100d3d550> # 返回迭代器
>>> list(map(square, [1,2,3,4,5])) # 使用 list() 转换为列表
[1, 4, 9, 16, 25]
>>> list(map(lambda x: x ** 2, [1, 2, 3, 4, 5])) # 使用 lambda 匿名函数
[1, 4, 9, 16, 25]
>>>
enumerate() 函数:用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环当中。
>>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
>>> list(enumerate(seasons))
[(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
>>> list(enumerate(seasons, start=1)) # 下标从 1 开始
[(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print(i, element)
3、推导式:
列表推导式:[表达式 for 变量 in 列表 if 条件],列表中满足if条件的经过表达式修改后生成新列表