我的短期目标:python+CTF reverse 一起加油!

#1,函数介绍

1,功能性  函数目的

2,隐藏性  (封装)  (避免写重复代码)

例:

 #round为保留小数的函数

 a = 3.1415
result = round(a,2)
printf(result) #输出:3.14

查看代码

#2,函数的使用

1,参数列表可以没有

2,函数中无return 代表返回None(空值)

例:

#1,实现两个数字的相加
#2,打印输入的参数
def add(x,y)
result = x + y
return result def print(code)
printf(code) add(1,1)
print('python') #自己调用自己 递归次数太多 报错 #如何修改python递归995次数限制
import sys
sys.setrecursionlimit(1000000) #修改限制为100万次递归次数 #所以 函数的定义不要与python内置的关键字相同

查看代码

 def add(x,y)
result = x + y
return result def print_code(code)
printf(code) a = add(1,1)
b = print_code('python') print(a,b) #输出
python #调用到了print_code 所以会首先输出print(python)
2
None #无返回值 所以输出None

查看代码

3,返回值(可多个)

例:

 def damage(skill1,skill2):
demage 1 = skill1 * 3
demage 2 = skill2 * 2 + 10
return damage1,damage2 damages = damage(3,6) print(type(damages)) #输出为tuple类型 说明在return时不用强制加() #调用时
print(damages[0],damages[1]) #不如序列解包 即用 两个变量接分别收 demage函数的返回值 dagame_skill1,damage_skill1 = damage(3,6)

查看代码

4,序列解包(接收返回值)和链式赋值

 #链式赋值
a = 1
b = 2
c = 3
a,b,c = 1,2,3
a=b=c=1 d = 1,2,3
print(type(d)) #<class ' tuple '> a,b,c = d #序列解包 a,b = [1,2,3] #too many values to unpack(expected 2)

查看代码

5,必须参数与关键字参数

①,必须参数 实参 形参

②,关键字函数(可以不用考虑传入参数的顺序)

例:

 def add(x,y):
result = x + y
return result c = add(y=3,x=2) c = add(x = 2) #报错 定义多少形参就要传递多少实参

查看代码

6,默认参数

①默认参数即使函数的某些参数赋有初值 (非默认参数必须放置到默认参数之前)

例:

 def prinf_student_files(name,gender='男生',age=18,college='人民路')
print('我叫' + name)
print('我是' + gender)
print('我今年' + str(age))
print('我在' + college +'上学') print_student_files('大头')
#输出 我叫大头
我是男生
我今年18岁
我在人民路上学 #默认参数必须放到参数列表后面 即必须参数不能放置到默认参数后面 #如果要修改默认参数的值,全部用关键字参数传值的方式(XXX=XXX)修改,不能混用关键字参数传值与必须参数传值 def cs(a,c,b=2):
print(a,b,c)
cs(a=5,b=6,c=7)
#输出 5 6 7 def cs(a,c,b=2):
print(a,b,c)
cs(5,b=6,7)
#报错

查看代码

最新文章

  1. selenium测试(Java)--多窗口切换(十三)
  2. WIFI基本知识整理
  3. WPF使用后台C#代码创建Grid
  4. 编译安装php 5.5 缺少依赖包 及解决方案
  5. 解决linux部署项目后,第一次访问初始化数据源的时候很慢的问题
  6. ztree点击文字勾选checkbox,radio实现方法
  7. bower install和cnpm install
  8. CHENEY-YANG&#39;S BLOG(cheney-yang)
  9. RH253读书笔记(2)-Lab 2 System Resource Access Controls
  10. 一、链接Sql Server2014提示找不到实例的问题解决方案
  11. python不能调试的原因
  12. select大表报错
  13. hdu-1176(dp)
  14. Git命令用于检查特定提交的差异
  15. mongoDB基础使用
  16. 20155231 2016-2017-2 《Java程序设计》第6周学习总结
  17. You Don&#39;t Know JS: Scope &amp; Closures (第2章: Lexical Scope)
  18. jQuery操错题积累
  19. Solr学习笔记之5、Component(组件)与Handler(处理器)学习
  20. input disable手机端颜色兼容问题

热门文章

  1. 【整理】explain、type、extra用法和结果的含义
  2. jQuery技术内幕 深入解析jQuery架构设计与实现原理
  3. vue-router.esm.js?fe87:16 [vue-router] Route with name &#39;page&#39; does not exist
  4. [洛谷P1029]最大公约数与最小公倍数问题 题解(辗转相除法求GCD)
  5. css3同心圆闪烁扩散效果
  6. 41、和为S的连续正数序列
  7. FPGA编码规则检查表
  8. 64_t4
  9. 运维小知识之nginx---nginx配置Jboss集群负载均衡
  10. Swift中的指针类型