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

阜阳建网站网络策划公司

阜阳建网站,网络策划公司,南京软件外包公司有哪些,海外广告上一天看到第四章的一半#xff0c;介绍了一些常用的流程控制工具#xff0c;也就是常用语句#xff0c;主要是if、for、range()、break、continue、else和pass。今天把第四章剩下的看完#xff0c;讲的是如何在python中定义和使用函数。函数其实就是一种对代码的封装…上一天看到第四章的一半介绍了一些常用的流程控制工具也就是常用语句主要是if、for、range()、break、continue、else和pass。今天把第四章剩下的看完讲的是如何在python中定义和使用函数。函数其实就是一种对代码的封装对于一段完成某种功能的代码如果需要在程序中多次用到这个功能不使用函数的话就要写多次相同的代码很麻烦如果使用函数的话定义函数只需要一次往后每次需要使用这个函数的话调用就行了即实现了代码重用简便很多。 4.6. 定义函数 python中我们使用关键字 def 引入一个函数定义。它必须后跟函数名称和带括号的形式参数列表。构成函数体的语句从下一行开始并且必须缩进。 函数体的第一个语句通常是注释或者帮助文档用三引号‘’‘ ’‘’括起来里面应该写上函数的功能和各参数的意义等等是面向用户的。在notebook里面使用help()就可以查看到这些信息。写帮助文档是一个应该养成的好习惯。 函数调用执行则是直接运行函数名如果有参数则写在括号内一个用于输出斐波拉契数列的函数例子如下 def fib(n): # 函数定义 ... 函数功能打印n以内的斐波拉契数列 ... a, b 0, 1 ... while a n: ... print(a, end ) ... a, b b, ab ... print() ...# 函数调用 ... fib(2000) 0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597定义了的函数是一个特定的类型它也支持重命名如下f和fib就是同一个函数了 fib function fib at 10042ed0f fibf(100) 0 1 1 2 3 5 8 13 21 34 55 89学过其他语言的人可能会问python的函数有返回值吗答案是肯定的我们可以用return语句返回指定的值如果像上面的例子一样没有return呢实际上也有返回值只不过是一个None而已使用print()就可以看到它了。 总结一句return 语句会从函数内部返回一个值。 不带表达式参数的 return 会返回 None。 函数执行完毕退出也会返回 None。 fib(0)print(fib(0)) None最后我们改写上面的斐波拉契函数不是直接打印print()而是先调用函数返回return一个列表再打印这个列表 def fib2(n): # 函数定义 ... 函数功能返回一个列表里面包含了n以内的斐波拉契数列 ... result [] ... a, b 0, 1 ... while a n: ... result.append(a) # 向列表新增一个数据 ... a, b b, ab ... return result ...f100 fib2(100) # 函数调用f100 # 打印结果 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]4.7. 函数定义的更多形式 4.7.1. 参数默认值 最有用的形式是对一个或多个参数指定一个默认值。这样创建的函数可以用比定义时允许的更少的参数调用比如: def ask_ok(prompt, retries4, reminderPlease try again!):while True:ok input(prompt)if ok in (y, ye, yes): # in关键字可以测试一个序列是否包含某个值return Trueif ok in (n, no, nop, nope):return Falseretries retries - 1if retries 0:raise ValueError(invalid user response)print(reminder)这个函数可以通过几种方式调用: 只给出必需的参数参数promptask_ok(Do you really want to quit?)给出一个可选的参数参数prompt和retriesask_ok(OK to overwrite the file?, 2)或者给出所有的参数参数prompt、retries和reminderask_ok(OK to overwrite the file?, 2, Come on, only yes or no!) 有两点需要注意 一、默认值是在 定义过程 中在函数定义处计算的所以以下结果会打印5而不是6 i 5def f(argi): # 此处传入默认值i所以argi5print(arg)i 6 # 不影响f的默认值 f()二、默认值只会执行一次。这条规则在默认值为可变对象列表、字典以及大多数类实例时很重要。比如下面的函数会存储在后续调用中传递给它的参数: def f(a, L[]):L.append(a)return Lprint(f(1)) print(f(2)) print(f(3))打印结果为 [1] [1, 2] [1, 2, 3]如果你不想要在后续调用之间共享默认值你可以这样写这个函数: def f(a, LNone):if L is None:L []L.append(a)return L打印结果为 [1] [2] [3]4.7.2. 关键字参数 4.7.3. 特殊参数 这两节已经在我之前的文章中介绍过了感兴趣的小伙伴可以去看看 python函数参数那些事关键字参数与位置参数 4.7.4. 任意的参数列表 最后最不常用的选项是可以使用任意数量的参数调用函数。这些参数会被包含在一个元组里参见 元组和序列 。在可变数量的参数之前可能会出现零个或多个普通参数。: def write_multiple_items(file, separator, *args):file.write(separator.join(args))一般来说这些可变参数 将在形式参数列表的末尾如上面代码中的*args参数和C语言区分一下注意不是指针。因为它们收集传递给函数的所有剩余输入参数简单来说就是捡破烂的剩下的参数都归他了。 但也有例外它不在参数列表的末尾。此时出现在 *args 参数之后的任何形式参数都是 仅关键字参数也就是说它们只能作为关键字参数而不能是位置参数: def concat(*args, sep/): ... return sep.join(args) ...concat(earth, mars, venus) earth/mars/venusconcat(earth, mars, venus, sep.) earth.mars.venus4.7.5. 解包参数列表 如果我们的参数已经在列表或元组里了但是想把里面的元素作为单独的参数传入函数应该怎么做呢此时称为对参数列表进行解包。 例如内置的 range() 函数需要单独的 start 和 stop 参数。如果它们不能单独使用可以使用 *操作符 来编写函数调用以便从列表或元组中解包参数: list(range(3, 6)) #正常的调用向range函数传入两个单独的参数3和6 [3, 4, 5]args [3, 6]list(range(*args)) #解包调用从列表args中解包出数字3和6再传入range函数 [3, 4, 5]如果参数在字典里则用**操作符解包出字典的值value来提供关键字参数: def parrot(voltage, statea stiff, actionvoom): ... print(-- This parrot wouldnt, action, end ) ... print(if you put, voltage, volts through it., end ) ... print(Es, state, !) ...d {voltage: four million, state: bleedin demised, action: VOOM}parrot(**d) -- This parrot wouldnt VOOM if you put four million volts through it. Es bleedin demised !4.7.6. Lambda 表达式 可以用 lambda 关键字来创建一个小的匿名函数。Lambda函数可以在需要函数对象的任何地方使用。它们在语法上限于单个表达式。从语义上来说它们只是正常函数定义的语法糖。与嵌套函数定义一样lambda函数可以引用所包含域的变量。 简单来说Lambda函数有两个作用返回一个函数或者传递一个小函数作为参数。 作用1 def make_incrementor(n): ... return lambda x: x n ...f make_incrementor(42)f(0) 42f(1) 43作用2 pairs [(1, one), (2, two), (3, three), (4, four)]pairs.sort(keylambda pair: pair[1])pairs [(4, four), (1, one), (3, three), (2, two)]4.7.7. 文档字符串 4.7.8. 函数标注 这两节介绍的是关于函数帮助文档和注释内容和格式的一些约定这里不详细展开了。
http://wiki.neutronadmin.com/news/121012/

相关文章:

  • 网站出现搜索做博客网站什么空间好
  • 做分子生物实验常用网站seo自学网视频教程
  • 著名网站有哪些备案 增加网站
  • 企业网站最重要的访问对象是航达建设集团有限公司网站
  • 哪个网站可以做担保交易平台wordpress搜索小工具
  • 中国站长之家爱站网.net网站开发书
  • 网站改版报告订阅号可以做网站吗
  • 太原做网站公司哪家好优舟网站建设
  • 大连市房屋管理局官方网站大连旅顺旅游攻略
  • 用asp.net开发网站的优势合肥本地建网站
  • 艺术品电商网站开发北京丰台区做网站公司
  • 网站建设企业服务商北京营销型网站建站公司
  • 重庆免费网站建站模板事件营销的案例
  • 嘉兴网站制作案例荥阳做公司网站的公司
  • 个人建网站网站开发相关专业
  • 营销型网站商城国外网站域名
  • 福建鞋子做淘宝图片网站公司做网站可以用个人域名
  • 做图网站有哪些东西微软公司做网站的软件
  • 网站网页打开的速度什么决定的湖南常德红网百姓呼声
  • 网站建设的域名的选择河南省住房和城乡建设部网站首页
  • 天元建设有限公司网站泰安市最新消息今天
  • 台前做网站的公司深圳h5网站制作
  • 龙江手机网站建设wordpress微博登陆插件
  • 外贸网站seowordpress newcon
  • 海外做淘宝网站网络工程师职业分析
  • 设计网站做多大合适茶叶响应式网站
  • 深圳网站建设延安手机网上银行
  • 东莞做网站做什么赚钱珠海网站制作服务
  • dedecms生成xml网站地图百度云网站建设教程
  • 网页设计新手制作的网站代码免费安全