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

介绍自己做衣服的网站哪里有软件培训班

介绍自己做衣服的网站,哪里有软件培训班,徐州注册公司,国际贸易综合服务平台目录 1.函数相关术语 2.函数类型分类 3.栈 4.位置参数和关键字参数 5.默认参数 6.局部变量和全局变量 7.返回多个值 8.怀孕函数 9.匿名函数 10.可传递任意个数实参的函数 11.函数地址与函数接口 12.内置函数修改与函数包装 1.函数相关术语 函数的基本概念有函数头…

目录

1.函数相关术语

2.函数类型分类

3.栈

4.位置参数和关键字参数

5.默认参数

6.局部变量和全局变量

7.返回多个值

8.怀孕函数

9.匿名函数

10.可传递任意个数实参的函数

11.函数地址与函数接口

12.内置函数修改与函数包装


1.函数相关术语

函数的基本概念有函数头,函数名,形参和实参,函数体,如下图所示

  • 参数是可选的,也就是说函数可以不包含参数,比如 def main():
  • 使用 return result 返回语句来返回一个值,函数为带返回值的函数。
  • 不使用 return 语句,函数为不带返回值的函数。不用 return 的函数,python 默认函数末尾加上了一个 return None,就是说返回了一个 None,空值。

2.函数类型分类

带参数,有返回值的函数
def myfunc(a, b):result = 0for i in range(a, b + 1):result += ireturn result
不带参数,无返回值的函数
def main():print("月满则亏")print("水满则溢")print("花满则衰")print("爱满则痴")main()  # 执行 main()
带参数,无返回值的函数
def nprint(n):for i in range(n):print("xxxxxx")print(nprint(2))

3.栈

栈是在函数调用时产生的一个内存区域,用来存储函数的参数和局部变量的激活记录。
当调用一个函数时,这个函数的参数和局部变量的激活记录被压入栈。
当这个函数执行完毕,这些激活记录将会被从栈中删除。

示例代码

def func(Data1, Data2):Data3 = Data1 * Data2return Data3ret = func(1, 2)

对于语句ret = func(1, 2),func在调用时会产生一个栈,实参传递给形参,以及函数体内部的变量激活记录都会逐步记录在栈中(称为"压入栈"),函数调用完毕,这些记录会逐步从栈中清除出去("出栈")。

栈的特点:"后进先出"。就是最后进来的激活记录先被弹出堆栈。

4.位置参数和关键字参数

调用函数时,实参的值传递给形参,这个过程叫做值传递。值传递有多种方式,比如按默认位置,或者使用关键字参数。比如下面这个例子中f函数有3个关键字参数:x,y,z。

def f(x, y, z):return (x + y) / z# 使用位置参数调用函数
print(f(1, 2, 3))  # 1.0# 使用关键字参数调用函数
print(f(z=2, y=3, x=5))  # 4.0# 同时使用位置参数和关键字参数
print(f(7, z=3, y=2))  # 3.0

注意:调用函数时,位置参数在左边,关键字参数在右边。

5.默认参数

函数定义时, 形参如果带有关键字,表示当实参不赋值时,该变量具有默认值。
而当实参有赋值时,使用实参的赋值,而不是用默认值。
# 非默认值参数必须在默认值参数之前
def f(x, y=1, z=2):return x + y + zprint(f(1, 1, 1))  # 3
print(f(y=1, x=2, z=3))  # 6
print(f(1, z=3))  # 5

6.局部变量和全局变量

在函数内部定义的变量被称为局部变量。
在函数之外创建的变量被称为全局变量。
使用 global variable 语句将局部变量变为全局变量。
示例代码
x = 1
y = 1
z = 1def f(x):global yx = 2y = 2z = 2f(100)
print(x)  # 1
print(y)  # 2
print(z)  # 1

在以上代码中:

  • 一开始定义了x和y,它们是全局变量。
  • 然后定义了一个函数f,形参有x,注意这里的x为函数的形参名,跟前面那个全局变量x不是同一个
  • 函数体内部先使用了global y语句,它的作用是函数内部等会如果有y的调用,则y调用的是全局变量那个y。
  • x = 2语句是一个赋值语句,注意这条赋值语句的x不是全局变量那个x,是形参变量x,因此全局变量那个x的值不会发生改变,仍为1
  • y = 2语句:由于global y的作用,这里的y是全局变量的那个y,因此全局变量y的值会变成2
  • z = 2语句:由于没有global z语句,这里的z是函数内部产生的局部变量,因此这里的赋值语句不会对全局变量那个z造成影响。

7.返回多个值

python 函数允许返回多个值。
函数多个数本质上是以元组的形式在传递值。
def sort(n1, n2):if n1 < n2:return n1, n2return n2, n1print(sort(2, 3))  # (2, 3)
a, b = sort(3, 2)print(a)  # 2
print(b)  # 3def func(num1, num2):return num1 + num2, num1 - num2x = func(2, 3)
print(type(x))  # <class 'tuple'>

8.怀孕函数

怀孕函数就是函数内部又定义了一个函数。

python 函数很特殊,可以无限嵌套。
def Test():def TestX():print("hello world")for i in range(3):TestX()Test()

9.匿名函数

匿名函数就是函数的简洁表达,使用关键字 lambda 实现。

# 例子1
myfunc = lambda a, b: a + b
print(myfunc(2, 3))   # 5# 例子2(用来装逼)
ret = (lambda a, b: a * b)(4, 5)
print(ret)  # 20
(lambda data: print(data))("hello world")  # hello world

10.可传递任意个数实参的函数

在Python中,可以创建一个函数,它可以接收任意数量的实参。这通过使用星号表达式()实现。星号运算符有两种形式:单星号(*)和双星号(**)。

①单星号(*):将实参列表转换为元组。

def mysum(*data):print(type(data))   # <class 'tuple'>ret = 0for x in data:ret += xreturn retprint(mysum(1, 2))  # 3
print(mysum(1, 2, 5, 7))  # 15

②双星号(**):将字典转换为关键字参数。

def mysum(**data):print(type(data))   #  <class 'dict'>ret = 0for key in data:ret += data[key]print(key, data[key])return retprint(mysum(a=2, b=2, c=5, d=7))  # 这里用等号,等号左边为关键字,右边为值print(mysum(x=2, y=3))  # 这里用等号,等号左边为关键字,右边为值

③同时使用单星号(*)和双星号(**):函数可以接收任意数量的实参,并且可以是以上两种类型。

def print_args_kwargs(*args, **kwargs):print(args)print(kwargs)print_args_kwargs(1, 2, 3, a=1, b=2, c=3)
# 输出: (1, 2, 3) {'a': 1, 'b': 2, 'c': 3}

11.函数地址与函数接口

函数的本质是一个地址,可函数名赋值来实现相同功能

def myadd(num1, num2):return num1 + num2print(id(myadd))  # 2363817237224
print(type(myadd))  # <class 'function'>go = myadd  # 注意软件规范不允许这样赋值,不然容易出问题
print(id(go), id(myadd))  # id 会相同
print(type(go), type(myadd))  # 类型都是函数ret = go(1, 2)
print(ret)  # 3

函数名赋值实现函数的调用和定义的分离,实现函数接口,搭建框架。

# 函数的定义
def add(x, y):return x + y - 1# 函数的定义
def minus(x, y):return x - y + 10# 函数调用框架
def work(func_name, num1, num2):value = func_name(num1, num2)print(value)for i in range(value):print("hello world")return value + 1# 函数调用
work(add, 1, 2)# 函数调用
work(minus, 3, 4)

运行结果

2
hello world
hello world
9
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world
hello world

12.内置函数修改与函数包装

修改内置函数

import osdef myprint(mystr):os.system("echo ---------------")if mystr.find("python is handsome.") != -1:os.system("echo " + mystr)else:os.system("echo " + "python is handsome!")os.system("echo " + mystr)print = myprint  # 切换函数的地址
print("hello world")
print("Full love leads to madness")

运行结果

---------------
python is handsome!
hello world
---------------
python is handsome!
Full love leads to madness
函数包装
  • 加密 or 保护费
  • 还可以给函数的使用加密
  • 每次调用都要输入密码才行

示例代码

import os# 备份原来的函数地址
backossystem = os.system# 等价的调用
# backossystem("notepad")# 需要收费的系统
def system_check(mystr):if mystr.find("A") != -1:backossystem(mystr)else:print("请开通会员否则 " + mystr + " 无法执行")# 修改内置函数地址
os.system = system_check
os.system("echo hello world")

运行结果

请开通会员否则 echo hello world 无法执行

end


文章转载自:
http://piping.mdwb.cn
http://athenaeum.mdwb.cn
http://untamable.mdwb.cn
http://hemispheroidal.mdwb.cn
http://spirelet.mdwb.cn
http://acls.mdwb.cn
http://kamaishi.mdwb.cn
http://denumerable.mdwb.cn
http://highwayman.mdwb.cn
http://polymorphism.mdwb.cn
http://videogenic.mdwb.cn
http://pdt.mdwb.cn
http://balderdash.mdwb.cn
http://dextrane.mdwb.cn
http://boodle.mdwb.cn
http://externalism.mdwb.cn
http://kamsin.mdwb.cn
http://acanthopterygian.mdwb.cn
http://eaglet.mdwb.cn
http://precordial.mdwb.cn
http://trictrac.mdwb.cn
http://doorstep.mdwb.cn
http://debra.mdwb.cn
http://luxon.mdwb.cn
http://floriated.mdwb.cn
http://plo.mdwb.cn
http://turbidimeter.mdwb.cn
http://diastalsis.mdwb.cn
http://legally.mdwb.cn
http://sciurine.mdwb.cn
http://lacustrian.mdwb.cn
http://sphingomyelin.mdwb.cn
http://clarinetist.mdwb.cn
http://gonad.mdwb.cn
http://lascar.mdwb.cn
http://glossily.mdwb.cn
http://nympha.mdwb.cn
http://roofscaping.mdwb.cn
http://bookwork.mdwb.cn
http://sarcoadenoma.mdwb.cn
http://foolery.mdwb.cn
http://eutectiferous.mdwb.cn
http://thickback.mdwb.cn
http://clarionet.mdwb.cn
http://claretian.mdwb.cn
http://phenylalanine.mdwb.cn
http://trepan.mdwb.cn
http://garnett.mdwb.cn
http://neonatology.mdwb.cn
http://iaba.mdwb.cn
http://chastise.mdwb.cn
http://finegrained.mdwb.cn
http://platinate.mdwb.cn
http://nox.mdwb.cn
http://sulfasuxidine.mdwb.cn
http://countryfolk.mdwb.cn
http://entrechat.mdwb.cn
http://renunciative.mdwb.cn
http://interrogator.mdwb.cn
http://granitoid.mdwb.cn
http://rootstock.mdwb.cn
http://trifid.mdwb.cn
http://hexapody.mdwb.cn
http://sidesplitting.mdwb.cn
http://jerkin.mdwb.cn
http://unused.mdwb.cn
http://outlandish.mdwb.cn
http://hetairism.mdwb.cn
http://baudekin.mdwb.cn
http://haematoxylin.mdwb.cn
http://knobcone.mdwb.cn
http://accutron.mdwb.cn
http://latecomer.mdwb.cn
http://trismegistus.mdwb.cn
http://synchroflash.mdwb.cn
http://prance.mdwb.cn
http://olympia.mdwb.cn
http://mannite.mdwb.cn
http://masker.mdwb.cn
http://surjective.mdwb.cn
http://chinchy.mdwb.cn
http://olfactronics.mdwb.cn
http://rightless.mdwb.cn
http://solemn.mdwb.cn
http://somatological.mdwb.cn
http://ablush.mdwb.cn
http://gymkana.mdwb.cn
http://multiplicative.mdwb.cn
http://leathercraft.mdwb.cn
http://etching.mdwb.cn
http://disloyalty.mdwb.cn
http://capacitate.mdwb.cn
http://twyformed.mdwb.cn
http://lambent.mdwb.cn
http://unput.mdwb.cn
http://frippet.mdwb.cn
http://coenocyte.mdwb.cn
http://satire.mdwb.cn
http://interspace.mdwb.cn
http://pruinose.mdwb.cn
http://www.15wanjia.com/news/84059.html

相关文章:

  • 虚拟商品购物网站源码广西网络推广公司
  • 主题资源网站建设步骤seo排名快速优化
  • 怎么给网站做seo优化泉州全网推广
  • 做网站的服务器多少钱互联网企业营销策略
  • wordpress datebase back企业网站seo优化公司
  • 做网站的工作要求沧州网站seo公司
  • 广告设计费宁波seo关键词如何优化
  • 网站开发需要的学历seo的基本步骤包括哪些
  • 网站收录了怎么做排名怎么用手机创建网站
  • 成都网站的成都私人网站建设
  • 佛山个人网站建设推广哪些app最挣钱
  • 网站后台实际访问地址与注册的域名地址不同bt磁力搜索引擎索引
  • 专业网站设计公司排行榜成都seo推广
  • 网站上广告百度一下百度网页官
  • 做网站什么数据库用的多排名函数
  • 家里面的服务器可以做网站吗湖北seo公司
  • 电子商务网站建设试题3seo网站优化课程
  • 设计平台网站站长之家域名
  • 首页重庆网站建设优化工作流程
  • 网站建设文档广告投放平台有哪些
  • 网站推广120种方法湖南发展最新消息公告
  • 建网站的网站有哪些百度商务合作联系
  • 网站要交钱吗网络推广是啥
  • 顶尖手机网站建设什么样的人适合做营销
  • 北京网站制作人才淘宝seo具体优化方法
  • 自己的网站怎么做实时监控电视剧百度搜索风云榜
  • WordPress主题开源网络优化大师app
  • 网站 做内容分发资格美容美发培训职业学校
  • 个人网站与企业网站区别广州白云区新闻头条最新消息今天
  • 临湘做网站seogw