我是靠谱客的博主 可爱百褶裙,最近开发中收集的这篇文章主要介绍Python语法基础(四)循环,函数,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

循环

基本的格式为: for 变量 in 可迭代对象
可迭代的对象包括

  1. 序列:字符串,列表,元组
  2. 字典
  3. 迭代器对象(iterator)
  4. 生成器函数(generator)
  5. 文件对象
  6. range对象

else语句
对于for和while语句 可以附带else语句,如果for语句有被break语句结束,则会执行else语句。

zip()
zip()并行迭代
for a,b,c in zip(as,bs,cs)
print();

推导式创建序列
推导式是一个或者多个迭代器快速创建序列的一种方法。可以将循环与条件判断结合,避免冗长代码。
列表推导式生成列表对象
[表达式 for item in 迭代对象]
>>> [x for x in range(1,5)]
[1,2,3,4]

>>> [x*2 for x in range(1,5)]
[2,4,6,8]

>>> [x*2 for x in range(1,5) if x%2==0]
[2,4,6,8]

字典推导式(Map)
{key :value for 表达式 in 迭代对象} 生成字典对象
/>>>

集合推导式(Set)
{表达式 for item in 迭代对象} 生成字典对象
/>>>

生成器推导式(生成元组)
(表达式 for item in 迭代对象) 生成的对象只能使用一次

函数用法与底层分析

Python中的函数分类

  1. 内置函数,例如str(),list(),len()函数是直接可以用的
  2. 通过import语句导入库
  3. 第三方库,通过安装后可以通过import方法引入函数
  4. 自定义函数

自定义函数
def 函数名 ([参数列表]):

调用函数时不用使用分号结尾

变量的作用域
全局变量:

  1. 作用域为定义的模块
  2. 全局变量一般作为2常量作用
  3. 如果在方法中修改全局变量需要修改gobal

局部变量:

  1. 函数体中声明的变量
  2. 如果局部变量与全局变量重名则隐藏全局变量,只是用局部变量。

参数的传递
对于可变的对象(字典,列表,集合,自定义对象等)实际传递的是对象的引用。浅拷贝
对于不可变的对象(数字,字符串,元组,function等)实际是会产生的一个新的对象。深拷贝。在传递不可变对象的时候由于是不可变的对象,实际会创建一个新的对象。

默认值参数
默认值参数必须位于普通位置参数后面,在调用函数时,可以不用加上默认值的参数

可变参数
可变参数指的是可变数量的参数。分为两种情况

  1. *param,将多个参数收集到一个元组对象汇总
  2. **param(两个星号)将多个参数收集到字典中

强制命名参数
带有星号的可变参数,后面增加新的参数,必须是强制命名参数

def f1(*a,b,c)
print(a,b,c)

f1(2,3,4) # 会报错。由于a是可变参数,将2,3,4全部收集。造成b和c没有赋值
f1(2,b=3,c=4)

lambda表达式和匿名函数
lambda表示可以用来声明匿名函数。lambda函数的基本语法:
lambda arg1,arg2,arg3 : <表达式>
arg1/arg2/arg3 分别为函数的参数。<表达式>相当于函数体。运算结果是:表达式运算结果。
例如:f = lambda a,b,c,d:abc*d

嵌套函数
内部函数用来封装逻辑

nonlocal关键字
nonlocal用来声明外层的局部变量
gobal用来声明全局变量

LEGB规则
Python在查找名称时,是按照legb的规则查找的即local–>enclosed–>global–>bulit-in
如果变量在局部没有找到就会在闭包区域(enclosed)找,在全局变量中查找,最后会在内建命名空间搜索

最后

以上就是可爱百褶裙为你收集整理的Python语法基础(四)循环,函数的全部内容,希望文章能够帮你解决Python语法基础(四)循环,函数所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(61)

评论列表共有 0 条评论

立即
投稿
返回
顶部