51学通信论坛2017新版

标题: 1.16.1 函数基础 [打印本页]

作者: admin    时间: 2018-4-15 21:03
标题: 1.16.1 函数基础
函数是什么?定义: 函数是指将一组语句的集合通过一个名字(函数名)封装起来,要想执行这个函数,只需调用其函数名即可
特性:
语法定义
  1. def sayhi():#函数名
  2.     print("Hello, I'm nobody!")
  3. sayhi() #调用函数
复制代码
可以带参数
  1. #下面这段代码
  2. a,b = 5,8
  3. c = a**b
  4. print(c)
  5. #改成用函数写
  6. def calc(x,y):
  7.     res = x**y
  8.     return res #返回函数执行结果
  9. c = calc(a,b) #结果赋值给c变量
  10. print(c)
复制代码




作者: admin    时间: 2018-4-15 21:10
2.函数参数与局部变量
形参变量只有在被调用时才分配内存单元,在调用结束时,即刻释放所分配的内存单元。因此,形参只在函数内部有效。函数调用结束返回主调用函数后则不能再使用该形参变量
实参可以是常量、变量、表达式、函数等,无论实参是何种类型的量,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参。因此应预先用赋值,输入等办法使参数获得确定值
[attach]5632[/attach]



作者: admin    时间: 2018-4-15 21:29
默认参数
看下面代码
  1. def stu_register(name,age,country,course):
  2.     print("----注册学生信息------")
  3.     print("姓名:",name)
  4.     print("age:",age)
  5.     print("国籍:",country)
  6.     print("课程:",course)

  7. stu_register("王五",22,"CN","pytho")
  8. stu_register("张六",21,"CN","linux")
  9. stu_register("刘七",25,"CN","linux")
复制代码
发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你不填写,默认就会是 中国, 这就是通过默认参数实现的,把country变成默认参数非常简单。
  1. def stu_register(name,age,course,country="CN"):
复制代码
这样,这个参数在调用时不指定,那默认就是CN,指定了的话,就用你指定的值。在把country变成默认参数后,同时把它的位置移到了最后面,为什么呢?  


作者: 熬夜不洗澡    时间: 2018-4-25 22:21
admin 发表于 2018-4-15 21:29
默认参数看下面代码发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你 ...

默认参数不移到最后面,就不确定是否缺省了默认参数。
例如,函数需要4个参数,默认参数在第三个,这是我传入了三个参数,那我怎么确认第三个参数实际上是第四个参数,还是第三个参数而自己少些了一个参数呢。
作者: 熬夜不洗澡    时间: 2018-4-25 22:21
admin 发表于 2018-4-15 21:29
默认参数看下面代码发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你 ...

默认参数不移到最后面,就不确定是否缺省了默认参数。
例如,函数需要4个参数,默认参数在第三个,这是我传入了三个参数,那我怎么确认第三个参数实际上是第四个参数,还是第三个参数而自己少些了一个参数呢。
作者: 熬夜不洗澡    时间: 2018-4-25 22:22
admin 发表于 2018-4-15 21:29
默认参数看下面代码发现 country 这个参数 基本都 是"CN", 就像我们在网站上注册用户,像国籍这种信息,你 ...

默认参数不移到最后面,就不确定是否缺省了默认参数。
例如,函数需要4个参数,默认参数在第三个,这是我传入了三个参数,那我怎么确认第三个参数实际上是第四个参数,还是第三个参数而自己少些了一个参数呢。
作者: admin    时间: 2018-4-27 20:10
熬夜不洗澡 发表于 2018-4-25 22:21
默认参数不移到最后面,就不确定是否缺省了默认参数。
例如,函数需要4个参数,默认参数在第三个,这是 ...

厉害啦,还在学python啊。赞
作者: 熬夜不洗澡    时间: 2018-4-28 00:12
admin 发表于 2018-4-27 20:10
厉害啦,还在学python啊。赞

我认为业务和技术没有边界,所有都涉猎一下
作者: lzx455220    时间: 2018-12-25 17:43
盖楼了,慢慢学习!




欢迎光临 51学通信论坛2017新版 (http://bbs.51xuetongxin.com/) Powered by Discuz! X3