沈阳网页建站模板苏州网站建设优化

当前位置: 首页 > news >正文

沈阳网页建站模板,苏州网站建设优化,自媒体害了多少人,平台推广广告宣传词一、函数的返回值 return 语句#xff1a; 1、给函数返回值(表达式) 2、用于终止函数的运行 return 语法#xff1a; 1、如果不写return 或者 写了return 但是后面不写值或者变量#xff0c;默认返回None 2、reutrn返回一个数据时#xff0c;返回的数据类型为返回值本身的…一、函数的返回值 return 语句 1、给函数返回值(表达式) 2、用于终止函数的运行 return 语法 1、如果不写return 或者 写了return 但是后面不写值或者变量默认返回None 2、reutrn返回一个数据时返回的数据类型为返回值本身的数据类型object 3、return返回多个数据是元素之间用逗号隔开返回的数据类型为元组tuple 4、函数中不同分值可以有多个return语句 5、return是函数运行结束的标识符

1、不写return 或者 写了return 但是后面不写值或者变量默认返回None

def add_func(a,b):total a breturn res add_func(11, 22) print(————————————–)

print(add_func返回的值为{}.format(res))运行结果

add_func返回的值为None

2、return返回一个值

def add_func(a,b):total a breturn total res add_func(11, 22) print(————————————–)

print(add_func返回的值为{},其数据类型为{}.format(res,type(res)))运行结果

add_func返回的值为33,其数据类型为class int

3、return返回多个值

def add_func(a,b):total1 a btotal2 a - btotal3 a * btotal4 a / breturn total1,total2,total3,total4 res add_func(11, 22) print(————————————–)

print(add_func返回的值为{},其数据类型为{}.format(res,type(res)))运行结果

add_func返回的值为(33, -11, 242, 0.5),其数据类型为class tuple

4、多分支return

def add_func(a,b,method):if method :print({} {} ,运算结果为{}.format(a,b,ab))return a belif method -:print({} - {} ,运算结果为{}.format(a, b, a - b))return a - belif method *:print({} * {} ,运算结果为{}.format(a, b, a * b))return a * belif method /:print({} / {} ,运算结果为{}.format(a, b, a / b))return a / b print(————————————–) res add_func(11, 22,) print(add_func多分支返回的值为{},其数据类型为{}.format(res,type(res))) res add_func(11, 22,-) print(add_func多分支返回的值为{},其数据类型为{}.format(res,type(res))) res add_func(11, 22,*) print(add_func多分支返回的值为{},其数据类型为{}.format(res,type(res))) res add_func(11, 22,/) print(add_func多分支返回的值为{},其数据类型为{}.format(res,type(res))) print(————————————–)————————————– 11 22 ,运算结果为33 add_func多分支返回的值为33,其数据类型为class int 11 - 22 ,运算结果为-11 add_func多分支返回的值为-11,其数据类型为class int 11 * 22 ,运算结果为242 add_func多分支返回的值为242,其数据类型为class int 11 / 22 ,运算结果为0.5 add_func多分支返回的值为0.5,其数据类型为class float ————————————–二、函数的全局变量和局部变量 局部变量 1、在函数内部定义的变量 2、其作用域仅为函数内部 3、函数的形参是局部变量 4、局部变量在函数调用时被创建调用结束后被销毁 全局变量 1、定义在函数体外python模块中的变量 2、其作用域为整个python文件 3、全局变量不能在函数体内修改其绑定关系 全局变量的修改 1、任何一个子函数直接去使用全局变量不对它进行修改则只是引用共享全局变量 2、某个子函数对全局变量进行修改全局变量是不可变数据类型相当于重新创建一个全局变量 3、某个子函数对全局变量进行修改全局变量是可变数据类型确实是修改了全局变量 global 关键字 1、声明函数内部操作的一个或多个变量是全局变量 2、不能先声明局部变量再用global声明为全局变量 3、global变量列表里的变量名不能出现在次作用域内的形参列表 函数变量引用的优先级 1、语句执行检查语法是从右到左 2、先在局部变量再找全局变量 3、当局部变量和全局变量同名时函数会优先使用局部变量 4、函数内部定义局部变量时尽量不和全局变量同名

Demo实例1—-全局和局部作用域区分

name james # 全局变量 print(—————————–)def test():name xiaowangprint(局部变量只在函数体内有效,name)return nameres test() # 局部变量通过return返回 print(局部变量可以通过函数返回,res)# 全局变量不能在函数体内修改其绑定关系 print(全局变量不能在函数体内修改其绑定关系:,name)

print(—————————–)运行结果

局部变量只在函数体内有效 xiaowang 局部变量可以通过函数返回 xiaowang 全局变量不能在函数体内修改其绑定关系: james —————————–# Demo实例2—-函数内使用全局变量报错情况一

未进行全局声明前如下代码会报错

number1 100def func1():number1 number1 100 # 会报错原因如下这行会报错函数找number1的定义时从右到左先执行number1100发现number1在该语句之前没定义因其定义的语句number1 number1 100还未生效print(number1的值为{}.format(number1))func1() print(———————————————————-)执行结果报错提示在赋值之前不能先使用得先声明再使用 UnboundLocalError: local variable number1 referenced before assignment

Demo实例3—-针对上述报错方案的优化

number2 100def func2():# 修改为如下则OK, global声明的必须先声明再使用global number2number2 number2 100print(局部定义global number2后的值为{}.format(number2))func2()运行结果 局部定义global number2后的值为200# Demo4–global关键字的使用 test_list1 [1,2,3] # 全局变量作用域整个当前的py文件

def test01():global test_list # 声明为全局变量test_list [1,2,3] # 局部变量print(打印函数内部的局部变量的内存地址,id(test_list))def test02():test01()print(global声明 打印全局变量的内存地址,id(test_list))print(打印全局变量的内存地址,id(test_list1))test02()运行结果

打印函数内部的局部变量的内存地址 2585025008712 global声明 打印全局变量的内存地址 2585025008712 打印全局变量的内存地址 2585025008200 —————————–# 某个子函数对全局变量进行修改全局变量是可变数据类型确实是修改了全局变量 test_list1 [1, 2, 3] # 全局变量作用域整个当前py文件内使用def test01():print(打印全局变量test_list1的内存地址t, test_list1, id(test_list1))def test02():test_list1.append(4)print(打印全局变量test_list1的内存地址t, test_list1, id(test_list1)) test01() test02()—————————– 打印全局变量test_list1的内存地址t [1, 2, 3] 2021704487496

打印全局变量test_list1的内存地址t [1, 2, 3, 4] 2021704487496

某个子函数对全局变量进行修改全局变量是不可变数据类型相当于重新创建一个全局变量

test_list1 3 # 全局变量作用域整个当前py文件内使用def test01():print(打印全局变量test_list1的内存地址t, test_list1, id(test_list1))def test02():test_list1 5print(打印全局变量test_list1的内存地址t, test_list1, id(test_list1)) test01() test02()—————————– 打印全局变量test_list1的内存地址t 3 140735760920896 打印全局变量test_list1的内存地址t 5 140735760920960 —————————–三、内置函数 4.1 匿名函数 lambda关键字 python 使用 lambda关键字来创建匿名函数 lambda基本语法 lambda [arg1 [,arg2,…..argn]]:expression arg1…argn: 是参数列表可以1个或者多个 expression: 是该匿名函数的返回值或者返回逻辑最多只能支持三元运算 lambda注意事项 1lambda只是一个表达式函数体比def简单很多无函数名称 2lambda的主体是一个表达式而不是一个代码块。仅仅能在lambda表达式中封装有限的逻辑 3lambda函数拥有自己的命名空间且不能访问自己参数列表之外或全局参数 4最多支持三元运算符
三元运算符条件为真时的结果 if 判段的条件 else 条件为假时的结果

demo1——简单的匿名函数

a lambda x : x*x # x 为参数x*x为返回的结果a接受函数的返回值 print(两数相乘的匿名函数返回的结果,a(10)) # 输出 100add_func lambda a,b: ab print(两数相加的匿名函数返回的结果,add_func(10,20)) # 输出 30# demo2——三元运算匿名函数 func lambda x,y: xy if xy else x-y print(若xy则相加,输入{},{}结果为{}.format(5,3,func(5,3))) print(若xy则相加,输入{},{}结果为{}.format(3,5,func(3,5)))输出结果 若xy则相加,输入5,3结果为8 若xy则相加,输入3,5结果为-24.2 常用内置函数 数据统计相关如下三个函数的参数必须为可迭代对象iterable 1、min() 获取最小值 2、max() 获取最大值 3、sum() 求和 可迭代对象数据只能用一次 list1 [1,2,3,4] print(min的最小值为,min(list1)) print(max的最大值为,max(list1)) print(sum求和,sum(list1))min的最小值为 1 max的最大值为 4 sum求和 10高级内置函数 1、eval 识别字符串中的有效的python表达式并执行表达式去引号执行表达式  print(eval函数去引号执行表达式结果为{}.format(eval(3*2))) print(未用eval函数去引号执行表达式结果为{}.format(3*2))eval函数去引号执行表达式结果为6 未用eval函数去引号执行表达式结果为3*22、enumerate 用于将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列 同时列出数据和数据下标一般用在 for 循环当中。 返回的是元组数据的格式(索引 值) list_test [james,study,python,good] for data in enumerate(list_test):print(enumerate函数打印序列的索引和值结果为元组{}.format(data))for index,item in enumerate(list_test):print(enumerate函数打印序列的索引和值元组拆包结果为{}{}.format(index,item))enumerate函数打印序列的索引和值结果为元组(0, james) enumerate函数打印序列的索引和值结果为元组(1, study) enumerate函数打印序列的索引和值结果为元组(2, python) enumerate函数打印序列的索引和值结果为元组(3, good) enumerate函数打印序列的索引和值元组拆包结果为0james enumerate函数打印序列的索引和值元组拆包结果为1study enumerate函数打印序列的索引和值元组拆包结果为2python enumerate函数打印序列的索引和值元组拆包结果为3good3、zip 用于将可迭代的对象作为参数将对象中对应的元素打包成一个个元组 然后返回由这些元组组成的对象这样做的好处是节约了不少的内存 也叫做数据的聚合打包聚合后的数据只能使用一次 如果各个迭代器的元素个数不一致则返回列表长度与最短的对象相同 利用 * 号操作符可以将元组解压为列表。

zip–两个list聚合以后才能转换成字典

list1 [a,b,c] list2 [1,2,3] res zip(list1,list2)

print(zip函数打包两个list时结果为字典{}.format(dict(res)))

print(zip函数打包两个list时结果为列表{}.format(list(res)))zip函数打包两个list时结果为字典{a: 1, b: 2, c: 3} zip函数打包两个list时结果为列表[(a, 1), (b, 2), (c, 3)] list1 [1, 2, 3, 4, 5] list2 [11, 22, 33, 44, 55] list3 [111, 222, 333, 444, 555] list4 [1111, 2222, 3333, 4444, 5555] list5 [11111, 22222, 33333, 44444, 55555]ret zip(list1, list2, list3, list4, list5) print(zip函数打包多个list时结果为列表列表的每个元素为相同索引对应的值组成的子列表\n{}.format(numpy.array(list(ret))))zip函数打包多个list时结果为列表列表的每个元素为相同索引对应的值组成的子列表 [[ 1 11 111 1111 11111][ 2 22 222 2222 22222][ 3 33 333 3333 33333][ 4 44 444 4444 44444][ 5 55 555 5555 55555]]4、filter 函数用于过滤序列过滤掉不符合条件的元素返回一个迭代器对象 如果要转换为列表可以使用 list() 来转换。接收两个参数第一个为函数第二个为序列 序列的每个元素作为参数传递给函数进行判 然后返回 True 或 False最后将返回 True 的元素放到新列表中。 stu [90, 100, 25, 425, 32, 77]ret filter(lambda x: x 80, stu) print(filter函数过滤大于80的元素, list(ret))filter函数过滤大于80的元素 [90, 100, 425]