### (一)字符串操作
strip() # 删除左右空白字符
lstrip() # 删除左侧空白
rstrip() # 删除右侧空白
str() # 将 非字符串类型 转换成 字符串类型,用于字符的拼接
### 浮点数计算
# 浮点数相除时,如果使用 3/2 ,结果是1,并非1.5,因为Python会自动删掉小数点后面(不是四舍五入),正确写法 3.0/2 或 3/2.0 或 3.0/2.0 都可以
### (二)列表操作
lis = ['a','b','c']
lis.append('d') # 在列表尾部添加元素
lis.insert(0, 'd') # 在列表中添加元素,参数1是待插入元素的索引位置,参数2待插入的元素
del lis[0] # 删除下标为0的元素
lis.pop() # 删除列表末尾的元素,并返回删除的元素
lis.pop(0) # 弹出列表中任何位置处的元素
lis.remove('a') # 根据值删除元素,仅删除第一个值为a的元素,如果列表中有多个a,需要循环删除
lis.sort() # 对列表永久性排序,按字母正序排序
lis.sort(reverse=True) # 对列表永久性排序,按字母反序排序
lis.sorted() # 对列表临时性排序,按字母正序排序
lis.sorted(reverse=True) # 对列表临时性排序,按字母反序排序
### 列表循环
for value in lis:
do something
### 使用range()创建数字列表
range(1,5) # 生成1,2,3,4数值,不包含数值5
list(range(1,5)) # 生成1~4的数值列表 [1,2,3,4]
list(range(2,11,2)) # 生成大于等于2,小于11的偶数列表,参数3表示每次递增的数值 [2,4,6,8,10]
### 列表统计
num = [1,2,3,4,5]
min(num) # 列表最小值
max(num) # 列表最大值
sum(num) # 列表和
### 创建平方数列表(简写)
squares = [value**2 for value in range(1,11)] # 创建平方数列表 简写 [1,4,9,16,25,36,49,64,81,100]
### (三)切片
lis = ['a','b','c','d','e','f']
lis[0:3] # 截取列表索引0~3(不包含3)的元素 返回['a','b','c']
lis[:2] # 从列表头开始截取到索引为2的元素 ['a','b']
lis[2:] # 从第三个元素截取到列表尾部 ['c','d','e','f']
lis[-3:] # 截取列表最后三个元素
### 打印切片
for value in lis[:3]:
print(value)# 打印列表前三位元素 得到 ['a','b','c']
### 复制列表
lis1 = ['a','b','c']
lis2 = lis1[:]# 正确的复制列表
lis3 = lis1# 错误的复制,这样仅仅是引用列表1的位置信息,对lis3的操作等同于对lis1的操作,很像php中变量引用
### 元祖(不可变的列表)
dimen = (200,50) # 定义元祖
dimen[0] = 300 # 错误的修改元祖方式,元祖元素不能像列表元素一样被修改
dimen = (300,100) # 元祖元素修改,只有重新赋值
for dim in dimen: # 元祖循环
### (四)条件判断
# (1) 简单判断
if xxx == xxx:
# ...
elif xxx:
#...
else:
#...
# (2)与
if (xx == xx) and (yy == yy):
# (3)或
if (xx == xx) or (yy == yy):
# (4)判断值是否在列表中
if xx in listArr:
if xx not in listArr:
# (5)判断列表是否为空
if listArr:
### (五)字典
# 字典就是一组键值对,很相似于PHP的 Json
# 定义
test = {'name' : 'Eason', 'age' : '18', 'sex' : 'man'}
# 访问
test['name']
# 添加
test['height'] = '176'
# 修改
test['age'] = 20
# 删除
del test['height']
# 遍历字典
for key, value in test.items():
# 仅遍历字典的所有键
for name in test.keys():
# 仅遍历字典的所有值
for name in test.values();
# 按顺序遍历字典中的所有健
for name in sorted(test.keys()):
# 嵌套(列表中嵌套字典、字典中嵌套列表、字典中嵌套字典)
test = [{'name' : 'Eason'}, {'name' : 'Tom'}]
test = {'name' : 'Eason', 'data' : ['data1', 'data2']}
test = {
'Eason' : {
'age' : 18,
'sex' : 'boy'
},
'Tom' : {
'age' : 22,
'sex' : 'girl'}
}
### (六)用户输入和while循环
# 用户输入
input() # 3.0版本使用这个
raw_input() # 2.7版本使用这个
# 如果用户输入数值,之后需要用这个数值来进行if比较,那就需要将这个值转为数值
int()
# while循环
while 循环条件:
# ...
break # 退出循环
continue # 跳出当前循环,进入下一循环
### (七)函数
# 定义函数
def function_name(形参1, 形参2, 形参3 = 'xxx'):
"""函数或者类的功能注释,采用这样的注释方式,多引号的方式"""
# 调用, 传递参数
function_name()
function_name(实参1, ...) # 可以根据形参位置顺序给定实参
function_name(形参2='xxx', 形参1='yyy') # 也可以通过这样的方式,可不必按照形参位置顺序,⭐️ 注意:键值对等号两侧不要有空格
# 向函数传递列表
# (1)直接给函数列表,相当于引用列表,函数内对列表的操作,会影响原列表的内容
test = ['元素1','元素2']
def modify_list(listArr):
listArr[0] = '元素3'
modify_list(test) # 这里运行后,列表test将变为 ['元素3', '元素2']
# (2)禁止函数修改原列表,那就是将列表的副本传递给函数
modify_list(test[:]) # 复制一个列表的副本,传递给函数
# (3)传递任意数量的实参
def function_name(*toppings):
# 不管调用该函数时,传递了多少参数,全部在toppings这个空元祖里,名字可任意取,但必须前面加上*号
function_name(x, y, z)
# (4)结合使用位置实参和任意数量参数
def function_name(形参, *toppings):
function_name(实参, N, M, W)
# (5)使用任意数量的关键字实参(使用两个**号,可以接收任意数量的键-值对)
def function_name(x, y, **):
function_name(x, y, name='Eason', age=16) # ⭐️注意:键值对等号两侧不要有空格
# (6)函数模块的导入
假设以下函数,保存在 eason.py 这个模块文件中
def say():
# ...
def run():
# ...
def jump():
# ...
# 导入整个模块并调用函数
import eason
eason.say() # 使用eason文件模块的say函数
eason.jump()
# 导入特定的函数并使用
from eason import jump
jump()
# 给函数起别名
from eason import say as s
s()
# 给模块起别名
import eason as e
e.say()
e.run()
# 导入整个模块的所有函数(不推荐使用,可以会造成命名的冲突或覆盖等不可预知的结果)
from eason import *
# 函数编写指南
⭐️ 给函数形参指定默认值时,等号两边不要有空格
def function_name(x='aaa', y)
⭐️ 对于函数调用中的关键字实参,也应遵循这个约定
function_name(x, y='zzz')
学习书籍:Python编程从入门到实践 (人民邮电出版社)