当前位置: 首页 > 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://www.ds6.com.cn/news/53880.html

相关文章:

  • 石景山区城乡建设委员会网站海淀区seo多少钱
  • wordpress导航站的源码免费网站注册免费创建网站
  • 个人网站开发报告太原seo网络优化招聘网
  • 自学做网站多久建站流程主要有哪些
  • 企业网站数防泄露怎么做电子商务网站建设
  • 如何建设网站 企业seo关键词查询工具
  • 网站里的地图定位怎么做衡水seo营销
  • 天翼云主机 网站服务器网页代码大全
  • 惠州网站制作案例seo推广优化多少钱
  • 网网站建设站建设东莞网络推广系统
  • 网站木马文件删除泉州百度竞价推广
  • 2022最火的新零售模式seo快速排名优化公司
  • 做专题页的背景网站百度广告投放公司
  • 大连做网站价钱搜索引擎优化好做吗
  • 中企动力官方网站电视剧百度风云榜
  • 网站做快照怎么做seo排名优化的方法
  • 网站怎么用ftp修改网页内容日照seo公司
  • 网站开发语言html四年级小新闻50字左右
  • 西安网站制作模板爱站网关键字挖掘
  • wordpress美女主题下载长尾词seo排名优化
  • 有哪些网站可以做店面设计软件营销技巧和营销方法心得
  • 一般的web网站开发平台是重庆seo整站优化
  • 石家庄 网站开发合肥网络公司seo
  • 怎么做网站访问截取ip酒店网络营销方式有哪些
  • 宁波企业网站开发个人怎么做免费百度推广
  • 商丘网站建设公司怎么在百度上做推广上首页
  • 重庆网站seo昔年优化软文广告300字范文
  • 网站防红链接怎么做的百度商业平台
  • cms可以做多少个网站目前疫情最新情况
  • 建设网站的准备微信软文怎么写