【1】#函数的作用:1.减少重复代码 2.方便修改,更容易扩展3.保持代码的一致性

【2】#函数简单的定义规则:

函数代码块以def关键词开头,后接函数标识符名称和圆括号(),任何传入参数和自变量必须放在圆括号中间
函数内容以冒号起始,并且缩进
若有返回值,Return[expression] 结束函数;不带return 表达式相当于返回None

函数通常使用三个单引号  '''...'''   来注释说明函数;函数体内容不可为空,可用 pass 来表示空语句;以下几个为简单的函数示例:

 1 ''' some basic functions '''
2 def func1(): # 函数无传入参数
3 print("func1") # 无return值
4 func1() # 函数调用
5
6 def func2():
7 return("func2") # return 字符串 "func2"
8 print(func2())
9
10 def func3(a,b): # 需传两个参数
11 print("a+b = %d" %(a+b)) # print表达式,无return
12 func3(3,4)
13
14 def func4(a,b): # 需传两个参数
15 return (a+b) # return a+b 的值
16 print(func4(4,3))

【3】函数的参数:

1.必备参数(必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样)

2.关键字参数(关键字参数和函数调用关系紧密,函数调用使用关键字参数来确定传入的参数值。使用关键字参数允许函数调用时参数的顺序与声明时不一致,因为 Python 解释器能够用参数名匹配参数值)

#可写函数说明
def printme( str ):
"打印任何传入的字符串"
print str;
return; #调用printme函数
printme( str = "My string");

3.默认参数(调用函数时,缺省参数的值如果没有传入,则被认为是默认值)

#可写函数说明
def printinfo( name, age = 35 ):
"打印任何传入的字符串"
print "Name: ", name;
print "Age ", age;
return; #调用printinfo函数
printinfo( age=50, name="miki" );
printinfo( name="miki" );

4.不定长参数(一个函数能处理比当初声明时更多的参数。这些参数叫做不定长参数,列如:*arg,**kwarg)

def printinfo( arg1, *arg):
"打印任何传入的参数"
print "输出: "
print arg1
for var in arg:
print var
return;
# 调用printinfo 函数
printinfo( 10 );
printinfo( 70, 60, 50 ); 输出:
10
输出:
70
60
50

def fun3(**arg):#参数转让如同字典,也可以用遍历的方法打印出来
    print ("arg type=" + str(type(arg)))
    print ("arg=" + str(arg))

print ("age:" + str(arg['age']))
    print ("name:" + str(arg['name']))

fun3(age=2,name=3)
fun3(name=2, age=3)

#输出结果

arg type=<class 'dict'>
arg={'name': 3, 'age': 2}
age:2
name:3
arg type=<class 'dict'>
arg={'name': 2, 'age': 3}
age:3
name:2
arg type=<class 'dict'>

最新文章

  1. java 解析并生成 XML
  2. AngularJs bower install 卡主不动解决办法
  3. .Net程序员之Python基础教程学习----函数和异常处理[Fifth Day]
  4. git之tag
  5. PAT 解题报告 1007. Maximum Subsequence Sum (25)
  6. IIS配置(安装IIS、.Net、更改IIS Log目录位置)
  7. UITableViewCell上的按钮点击事件处理
  8. DevExpress GridView属性设置 z
  9. mui 访问手机自带是否连接网络
  10. mybatis 关联关系查询 java
  11. Dubbo学习-源码学习
  12. javascript中的自定义属性
  13. 重置表单中的文件上传控件(file input)的方法
  14. Alpha冲刺博客汇总(麻瓜制造者)
  15. 怎样从外网访问内网Django?
  16. linux下获取硬盘使用情况[总结]
  17. 从JSF看XPages的优点
  18. 李白打酒|2014年蓝桥杯B组题解析第三题-fishers
  19. TCP/IP协议、HTTP协议
  20. MSTSC 修改端口的简单方法 3389

热门文章

  1. tensorflow学习笔记
  2. 阿里云 CentOS安装Git
  3. hadoop商业版本的选择介绍
  4. Django--ORM--模型增删改查--备忘
  5. 发现TCP的一种错误----客户端连接失败(10055错误号)
  6. Flume的Sink
  7. 数据库SQL语言学习--上机练习4(视图)
  8. Maven的classifier作用
  9. Jmeter(三)Test-Plan、Thread-Group
  10. [UE4]蓝图比C++慢10倍,是吗?