python_ 函数
函数是啥?
函数能提高应用的模块性,和代码的重复利用率
函数特点?
1 代码块以 def 关键词开头,后接函数名和圆括号()
2 任何传入参数和自变量必须放在圆括号中间
3 函数以冒号开始,并且缩进
4 若有返回值,return[expression]结束函数,不带 return 表达式相当于返回 none
#coding=utf-8
""" some basic functions """
def func1():
print("func1") # 函数定义
func1() # 函数调用 def func2():
return(func2)
func1() def func3(x,y):
return(x+y)
print(func3(3,4)) #字符串 print("hi") 字符 print(4) print (4)
函数各种参数?
python 变量区别于其他编程语言的申明&赋值方式,采用创建&指向类似于指针的方式实现的。即:python 的变量实际是对值或者对象的一个指针。
1 默认参数值
参数默认值:函数定义阶段就被确定,(好处)默认参数一旦创建,对象内部的数据就不能修改,就减少了由于修改数据导致的错误,so 不能能设置成不变对象,就设置成不变对象。
#coding=utf-8
def eroll(name,gender,age=6,city='Beijing'):
print 'name:',name
print 'gender:',gender
print 'age:',age
print 'city:',city
eroll('Liyao','F')
2 可变参数
传入的参数个数是可变的,从 0 个到任意个,在参数前面加 * ,就可以指定任意个参数了
#coding=utf-8
def calc(*numbers):
sum = 0
for n in numbers:
sum = sum+n*n
print (sum)
calc(1,2) # 在前面加星号(*),参数 numbers 接收到的就是一个元组,*number 可以定义元组,可以传入任意个参数
calc()
3 关键词参数
可变参数允许传入 0 个或任意个参数,这些可变参数在函数调用时自动组装成一个 tuple,而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个 dict
#coding=utf-8
def person(name,age,**kw):
print 'name:',name,'age:',age,'other:',kw
person('Lisa',28,city='Beijing') #**kw 只指定一个参数
person('Lisa',26,city='Shenzhen',sex='F') #**kw 指定多个参数
4 参数组合
四种参数可以混合使用,但是参数定义顺序必须是:必选参数、默认参数、可变参数和关键词参数
#coding=utf-8
def func(a,b,c=0,*args,**kw):
print "a=",a,"b=",b,"c=",c,"args=",args,"kw=",kw
func(1,2)
func(1,2,c=3)
func(1,2,3,'a','b')
func(1,2,3,'a','b',x=99)
总结
*args 是可变参数,接收元组(tuple)
**kw 关键词参数,kw 接收字典(dict)
python_ 函数的更多相关文章
- python_函数
一.map 遍历序列,对序列中每个元素进行操作,最终获取新的序列 li = [11,22,33,44] new_list = map(lambda a: a + 100,li) print(new_l ...
- Python_函数的初识、函数的返回值、函数的参数
1.函数的初识 def关键字 空格 函数名(与变量名命名规则相同):英文冒号 函数体 执行函数:函数名+() 函数是以功能为导向的. def login(): pass def register(): ...
- python_函数名的应用、闭包、装饰器
0.动态传参内容补充: 0.1 单纯运行如下函数不会报错. def func1(*args,**kwargs): pass func1() 0.2 *的魔性用法 * 在函数定义的时候,代表聚合. *在 ...
- Python_函数的有用信息、带参数的装饰器、多个装饰器装饰一个函数
函数的有用信息 代码1: def login(username, password): """ 此函数需要用户名,密码两个参数,完成的是登录的功能. :return: T ...
- Python_函数_参数
def 是函数的关键字,Python解释器一旦执行到def,默认不执行 def li(): n = 8 n +=1 print(n) li() li2 = li li2() 结果: 9 9 ret ...
- Python_函数的镶嵌和作用域链_26
def max(a,b): return a if a>b else b def the_max(x,y,z): #函数的嵌套调用 c = max(x,y) return max(c,z) pr ...
- Python_函数_复习_习题_24
# 函数 # 可读性强 复用性强# def 函数名(): # 函数体 #return 返回值# 所有的函数 只定义不调用就一定不执行 #先定义后调用 #函数名() #不接收返回值#返回值 = 函数名( ...
- python_函数中使用*和**
Python在函数中,使用*接收元组,使用**接收键/值对 当要使函数接收元组或字典形式的参数 的时候,有一种特殊的方法,它分别使用*和**前缀 .这种方法在函数需要获取可变数量的参数 的时候特别有用 ...
- python_函数进阶(5)
第1章 函数有用信息1.1 login.__doc__1.2 login.__name__第2章 装饰器的进阶2.1 带参数的装饰器2.2 多个装饰器装饰一个函数2.3 开放封闭原则 第3章 可迭代对 ...
随机推荐
- 测试新手之linux问题整理
测试职场的新人,难免都会涉及到一些linux系统的命令操作,搭建测试环境也好,查看日志也罢,以下给大家整理初学者可能会碰到的问题,希望对大家有所帮助. 1.Linux中输入基本操作命令例如ls,遇到报 ...
- 关于memset函数--赋最大值
问题起源: 这几天在刷CCF的时候,图论那边经常用到赋最大值,一开始自己一直手工for循环赋值(INT_MAX或者是LONG_LONG_MAX),后来看到别人的代码,发现了一个比较高端的赋值 mem ...
- js身份证号码验证
验证身份证号码的有效性,包含15位和18位: 根据[中华人民共和国国家标准 GB 11643-1999]中有关公民身份号码的规定,公民身份号码是特征组合码,由十七位数字本体码和一位数字校验码组成.排列 ...
- vue-cli项目多页面配置
参考 : https://www.jianshu.com/p/0a30aca71b16
- C++对象模型复习
本文写于2017-02-24,从老账号迁移到本账号,原文地址:https://i.cnblogs.com/EditPosts.aspx?postid=6440685 一:对象模型 C++面向对象的实现 ...
- 5 第一个Django第4部分(表单和通用视图)
上一节完成了视图编写,这一节为应用添加投票功能,也就是表单提交. 5.1编写一个简单的表单 5.2使用通用视图 5.3改良视图 5.1编写一个简单的表单 在网页设计中添加Form元素 polls/te ...
- vivado封装IP
reference: https://www.cnblogs.com/mouou/p/5851736.html 1.新建一个测试工程 工程化的设计方法是离不开工程的,第一步往往都是新建工程,后面我 ...
- web网页错误代码的含义
web网页错误代码的含义 一.1xx 表示临时响应并需要请求者继续进行操作的状态码,例如: 100--继续:101--切换协议 二.2xx 表示服务器成功的处理了请求的状态码,例如: 200--客户端 ...
- leetcode日记 HouseRobber I II
House Robber I You are a professional robber planning to rob houses along a street. Each house has a ...
- struts拦截器的知识
如何使用struts2拦截器,或者自定义拦截器.特别注意,在使用拦截器的时候,在Action里面必须最后一定要引用struts2自带的拦截器缺省堆栈defaultStack,如下(这里我是引用了str ...