变量和字符串
变量定义形式:交换两个变量(简便):
Alt + p 重复上一次的命令
当字符串的内容存在单(双)引号时,可以用双(单)引号将其引起来,也可以用转义字符反斜杠 \
将字符串中的引号转义
当需要转义的字符太多时,可以使用原始字符串:在字符串前面添加 r
当输入多行字符串时,可以在一行的末尾加上反斜杠 \
表示下一行继续输入
也可以用三引号
"""
输入多行字符串,就无需在行末加反斜杠 \
,三引号需要成对使用数字
x//y 地板除,x除以y向下取整(取小于目标结果的最大整数)
pow(a,b,c) a的b次方的结果对c取余
布尔
bool()
可以直接计算表达式的布尔值
所有结果为false的情况:
Python里的 and or 都遵从短路逻辑
运算符优先级(从上至下优先级变高):
分支与循环
条件语句缩写形式:
条件成立时执行的语句 if condition else 条件不成立时执行的语句
while循环可以和else语句一起使用,表示只有while循环的内容执行完毕才会执行else里面的语句,如果是因为break语句退出了while循环,则不会执行else里面的语句
for 循环 语法:
for循环常与range()函数搭配使用,range()函数有三种常用形式:
- range(stop)
生成从0开始的整数数列,作为可迭代对象 - range(start, stop)
生成从start到stop-1的整数数列(左闭右开),作为可迭代对象 - range(start, stop, step)
生成从start到stop-1的整数数列(左闭右开),作为可迭代对象,每次迭代步长为step
循环嵌套:
找出10以内的素数:
列表
Python的列表可以包含不同的数据类型
num = [1, 2, 3, 4, 5, "six"]
想访问列表最后一个元素时:
列表切片
列表切片是处理列表的部分元素,也就是把整个列表切开
列表切片也可以搭配步长
num[::-1]
步长为-1,可以倒序输出
添加元素
- 列表可以使用 append() 方法添加一个元素,
- 也可以使用 extend() 方法添加一组元素,注意extend()方法的参数必须是一个可迭代对象
新的内容是追加到原列表最后一个元素的后面
- 添加元素也可以通过切片的方式实现:
- 想要在任意位置添加元素,可以使用 insert() 方法
删除元素
-
使用 remove() 方法删除元素,存在多个匹配的元素时只删除第一个,不存在待删除的元素时会报错
-
使用 pop() 方法删除指定位置的元素,参数为索引值
-
使用 clear() 方法删除所有元素,清空列表
更改元素
- 可以直接用列表和下标进行更改
-
可以利用切片对列表元素进行更改
- 可以使用 sort() 方法对列表进行排序,默认是升序,将sort()方法的reverse参数设置为true时为降序排列
查找元素
- 使用 count() 方法查看列表有多少个指定元素
- 使用 index() 方法查看特定元素的索引值,存在多个匹配的元素时返回第一个匹配元素的索引值,还可以在元素后面指定开始和结束查找的位置
拷贝列表
- 使用 copy() 方法实现拷贝
- 使用 切片 实现列表拷贝
这里实现的拷贝都是浅拷贝
浅拷贝只是拷贝的外层对象,如果包含嵌套对象,拷贝的只是其引用,要实现深拷贝,需要引入 copy 模块,使用其 deepcopy() 方法
-
浅拷贝
-
深拷贝
列表推导式
通过列表推导式修改列表,执行速度通常是for循环的两倍,列表推导式采用更快的C语言的速度来运行,比PVM里面以步进的速度运行的for循环快得多
语法: [Expression for target in Iterable]
列表推导式与for循环的效果并不完全一样:
- 循环是通过迭代来逐个修改原列表中的元素
- 列表推导式则是直接创建一个新的列表,然后再赋值回原先的变量
- 从效果上来看,列表推导式几乎都可以实现我们的需求
列表推导式还可以添加条件
语法: [Expression for target in Iterable if condition]