Python 基础语法学习整理


### (一)字符串操作

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编程从入门到实践 (人民邮电出版社)

暂无评论

发布评论