热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python中函数的详细说明

后端开发|Python教程python函数后端开发-Python教程斐波拉希数列外星人源码论坛骗局,vscode颜色大全,ubuntu系统中文版,tomcat实质,sqlite不需

后端开发|Python教程python中函数的详细说明
python函数
后端开发-Python教程
斐波拉希数列
外星人源码论坛 骗局,vscode颜色大全,ubuntu系统中文版,tomcat实质,sqlite不需安装,空间ns服务器地址 和域名商dns,wordpress 播放器插件,前端ui框架国产,python爬虫实战项目,外派php,seo快排精灵,发布任务的网站 模板,自我介绍的网页源代码,手机订餐微信网站模板,404自动跳转页面,java web图书管理系统,wpf程序框架lzw

>>> fibs[0, 1]>>> n=input('How many Fibonacci numbers do your what?')How many Fibonacci numbers do your what?10>>> for n in range(n-2): fibs.append(fibs[-2]+fibs[-1]) >>> fibs[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]

注意:内建的callable函数可以用来判断函数是否可以调用

仿互站网 友价t5商城源码,vscode快捷操作html,ubuntu引导efi,tomcat内嵌启动,sqlite3记录存储,matlab爬虫百度文库文档,php 评论盖楼,文章标题seo优化,下载 网站 服务器,网页代码字体大小,苹果maccms模板标签lzw
def 定义函数
手机查看web源码,ubuntu设置外网关,爬虫立体绘本,用php写一个校园论坛源代码,seo收费低lzw

>>> def hello(name): print "Hello"+name >>> hello('world')Helloworld

用函数写斐波拉希数列

>>> def fibs(num): s=[0,1] for i in range(num-2): s.append(s[-2]+s[-1]) >>> fibs(10)

注意:return语句从函数中返回值

函数说明:如果给函数写文档,让其他人能理解的话,可以加入注释(#开头)。另外一种方法就是直接写上字符串。

>>> def square(x): 'Calculates the square of the number x.' return x*x>>> square.__doc__'Calculates the square of the number x.'

内建的help函数,可以得到关于函数,包括它的文档字符串信息

>>> help(square)Help on function square in module __main__:square(x) Calculates the square of the number x.

在函数内为参数赋予新值不会改变外部变量的值:

>>> def try_to_change(n): n='Mr,Gumby' >>> name='Mrs,Entity'>>> try_to_change(name)>>> name'Mrs,Entity'

字符串(以及数字和元组)是不可改变的,即无法修改。若将可改变的数据结构(列表或字典)修改,参数会被修改

>>> n=['Bob','Alen']>>> def change(m): m[0]='Sandy' >>> change(n[:])>>> n['Bob', 'Alen']>>> change(n)>>> n['Sandy', 'Alen']

关键字参数和默认值

>>> def hello(name,greeting='Hello',punctuation='!'): print '%s,%s%s' % (greeting,name,punctuation) >>> hello(name='Nsds')Hello,Nsds!>>> hello(name='Nsds',greeting='Hi')Hi,Nsds!

收集参数

返回元组:

>>> def print_params(*params): print params >>> print_params('Testing') #返回元组('Testing',)>>> print_params(1,2,3)(1, 2, 3)>>> def print_params_2(title,*params): print title print params >>> print_params_2('Params:',1,2,3)Params:(1, 2, 3)

返回字典

>>> def print_params_3(**params): print params >>> print_params_3(x=1,y=2,z=3){'y': 2, 'x': 1, 'z': 3}>>> def print_params_4(x,y,z=3,*pospar,**keypar): print x,y,z print pospar print keypar >>> print_params_4(1,2,3,5,6,7,foo=1,bar=2)2 3(5, 6, 7){'foo': 1, 'bar': 2}>>> print_params_4(1,2)2 3(){}

调用元组、字典

>>> def add(x,y):return x+y>>> params=(1,2)>>> add(*params)>>> def with_stars(**kwds): print kwds['name'],'is',kwds['age'],'years old']>>> def without_starts(kwds): print kwds['name'],'is',kwds['age'],'years old'>>> args={'name':'Nsds','age':24}>>> with_stars(**args)Nsds is 24 years old>>> without_starts(args)Nsds is 24 years old>>> add(2,args['age'])

星号只在定义函数(允许使用不定数目的参数)或者调用(”分割”字典或者序列)时才有用

>>> def foo(x,y,z,m=0,n=0): print x,y,z,m,n >>> def call_foo(*args,**kwds): print "Calling foo!" foo(*args,**kwds)>>> d=(1,3,4)>>> f={'m':'Hi','n':'Hello'}>>> foo(*d,**f)3 4 Hi Hello>>> call_foo(*d,**f)Calling foo!3 4 Hi Hello

几个例子

>>> def story(**kwds): return 'Once upon a time,there was a' \ '%(job)s called %(name)s.' % kwds>>> def power(x,y,*others): if others: print 'Received redundant parameters:',others return pow(x,y)>>> def interval(start,stop=None,step=1): if stop is None: start,stop=0,start #start=0,stop=start result=[] i=start while i>> print story(job='king',name='Gumby')Once upon a time,there was aking called Gumby.>>> print story(name='Sir Robin',job='brave knight')Once upon a time,there was abrave knight called Sir Robin.>>> params={'job':'language','name':'Python'}>>> print story(**params)Once upon a time,there was alanguage called Python.>>> del params['job']>>> print story(job='store of genius',**params)Once upon a time,there was astore of genius called Python.>>> power(2,3)>>> power(y=3,x=2)>>> params=(5,)*2>>> power(*params)>>> power(3,3,'Helld,world')Received redundant parameters: ('Helld,world',)>>> interval(10)[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> interval(1,5)[1, 2, 3, 4]>>> power(*interval(3,7))Received redundant parameters: (5, 6)

修改全局变量

>>> def f(): global x x=x+1 >>> f()>>> x>>> f()>>> x

嵌套

>>> def multiplier(factor): def multiplyByFactor(number): return number*factor return multiplyByFactor>>> double=multiplier(2)>>> double(5)>>> multiplier(2*5)>>> multiplier(2)(5)

递归(调用)

阶乘和幂

>>> def factorial(n): if n==1: return 1 else: return n*factorial(n-1) >>> factorial(5)>>> range(3)[0, 1, 2]>>> def power(x,n): result=1 for i in range(n): result *= x return result>>> power(5,3)

>>> def power(x,n): if n==0: return 1 else: return x*power(x,n-1) >>> power(2,3)

二元查找

>>> def search(s,n,min=0,max=0): if max==0: max=len(s)-1 if min==max: assert n==s[max] return max else: middle=(min+max)/2 if n>s[middle]: return search(s,n,middle+1,max) else: return search(s,n,min,middle) >>> search(seq,100)

map函数

它接收一个函数和一个列表,并通过函数依次作用在list的每个元素上,得到一个新的list并返回

>>> map(str,range(10))['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']>>> def f(x): return x*x>>> print map(f,[1,2,3,4,5,6,7])[1, 4, 9, 16, 25, 36, 49]

>>> def format_name(s): s1=s[0].upper()+s[1:].lower() return s1>>> print map(format_name,['ASDF','jskk'])['Asdf', 'Jskk']

filter函数

它接收一个函数和一个列表(list),这个函数依次对每个元素进行判断,返回 True或 False,filter()根据判断结果自动过滤掉不符合条件的元素,返回由符合条件元素组成的新列表

>>> def is_not_empty(s): return s and len(s.strip())>0>>> filter(is_not_empty,[None,'dshk',' ','sd'])['dshk', 'sd']>>> def pfg(x): s=math.sqrt(x) if s%1==0: return x>>> import math>>> pfg(100)>>> pfg(5)>>> filter(pfg,range(100))[1, 4, 9, 16, 25, 36, 49, 64, 81]>>> def is_sqr(x): return math.sqrt(x)%1==0>>> is_sqr(100)True>>> filter(is_sqr,range(100))[0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

lambda函数

也叫匿名函数,即,函数没有具体的名称,而用def创建的方法是有名称的

>>> def foo():return 'Begin'>>> lambda:'begin'>>> s=lambda:'begin'>>> print s()begin>>> s= lambda x,y:x+y>>> print s(1,2)>>> def sum(x,y=6):return x+y>>> sum2=lambda x,y=6:x+y>>> sum2(4)

>>> filter(lambda x:x*x,range(1,5))[1, 2, 3, 4]>>> map(lambda x:x*x,range(1,5))[1, 4, 9, 16]>>> filter(lambda x:x.isalnum(),['8ui','&j','lhg',')j'])['8ui', 'lhg']

reduce函数

它接收一个函数和一个列表(list),函数必须接收两个参数,这个函数依次对列表每个元素进行调用,返回结果值组成的新列表

>>> reduce(lambda x,y:x*y,range(1,5))24>>> reduce(lambda x,y:x+y,[23,9,5,6],100) #初始值为100,依次相加列表中的值143

更多python中函数的详细说明相关文章请关注PHP中文网!


推荐阅读
  • 如何实现织梦DedeCms全站伪静态
    本文介绍了如何通过修改织梦DedeCms源代码来实现全站伪静态,以提高管理和SEO效果。全站伪静态可以避免重复URL的问题,同时通过使用mod_rewrite伪静态模块和.htaccess正则表达式,可以更好地适应搜索引擎的需求。文章还提到了一些相关的技术和工具,如Ubuntu、qt编程、tomcat端口、爬虫、php request根目录等。 ... [详细]
  • 本文介绍了在开发Android新闻App时,搭建本地服务器的步骤。通过使用XAMPP软件,可以一键式搭建起开发环境,包括Apache、MySQL、PHP、PERL。在本地服务器上新建数据库和表,并设置相应的属性。最后,给出了创建new表的SQL语句。这个教程适合初学者参考。 ... [详细]
  • Oracle分析函数first_value()和last_value()的用法及原理
    本文介绍了Oracle分析函数first_value()和last_value()的用法和原理,以及在查询销售记录日期和部门中的应用。通过示例和解释,详细说明了first_value()和last_value()的功能和不同之处。同时,对于last_value()的结果出现不一样的情况进行了解释,并提供了理解last_value()默认统计范围的方法。该文对于使用Oracle分析函数的开发人员和数据库管理员具有参考价值。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • Day2列表、字典、集合操作详解
    本文详细介绍了列表、字典、集合的操作方法,包括定义列表、访问列表元素、字符串操作、字典操作、集合操作、文件操作、字符编码与转码等内容。内容详实,适合初学者参考。 ... [详细]
  • 本文介绍了使用cacti监控mssql 2005运行资源情况的操作步骤,包括安装必要的工具和驱动,测试mssql的连接,配置监控脚本等。通过php连接mssql来获取SQL 2005性能计算器的值,实现对mssql的监控。详细的操作步骤和代码请参考附件。 ... [详细]
  • 分享css中提升优先级属性!important的用法总结
    web前端|css教程css!importantweb前端-css教程本文分享css中提升优先级属性!important的用法总结微信门店展示源码,vscode如何管理站点,ubu ... [详细]
  • Linux下部署Symfoy2对app/cache和app/logs目录的权限设置,symfoy2logs
    php教程|php手册xml文件php教程-php手册Linux下部署Symfoy2对appcache和applogs目录的权限设置,symfoy2logs黑色记事本源码,vsco ... [详细]
  • Oracle 和 mysql的9点区别【MySQL】
    数据库|mysql教程oracle,Oracle,money,mysql,coun数据库-mysql教程1.组函数用法规则mysql中组函数在select语句中可以随意使用,但在o ... [详细]
  • ORACLE空间管理实验5:块管理之ASSM下高水位的影响
    数据库|mysql教程ORACLE,空间,管理,实验,ASSM,下高,水位,影响,数据库-mysql教程易语言黑客软件源码,vscode左侧搜索,ubuntu怎么看上一页,ecs搭 ... [详细]
  • PHP输出缓冲控制Output Control系列函数详解【PHP】
    后端开发|php教程PHP,输出缓冲,Output,Control后端开发-php教程概述全景网页源码,vscode如何打开c,ubuntu强制解锁,sts启动tomcat慢,sq ... [详细]
  • 浅解XXE与Portswigger Web Sec
    XXE与PortswiggerWebSec​相关链接:​博客园​安全脉搏​FreeBuf​XML的全称为XML外部实体注入,在学习的过程中发现有回显的XXE并不多,而 ... [详细]
  • Php怎么编写乘法表
    后端开发|PHP问题php,乘法表后端开发-PHP问题传世登陆器源码,vscode设置字号,ubuntu系统创建不了文件,tomcat配置修改,sqlite怎么调中文,海洋采集插件 ... [详细]
  • SharePoint 指定配置数据库访问账户“域账户\用户”
    大家在安装sharepoint时都会遇到这个问题,域账户,什么是域账户哪?域账户简单理解就是网路账户,与本地账户不同,什么是域哪?域就是控制器。一台Windows计算机,它要么隶属 ... [详细]
  • 无法打开install.wim怎么办
    运维|windows运维install.wim运维-windows运维空间留言网站源码,vscode标准代码,adamsubuntu,tomcat连接共享,sqlite软件基本操作 ... [详细]
author-avatar
shaonan
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有