note 6 函数
函数
完成特定功能的一个语句组,这组语句可以作为一个单位使用,并且给它取一个名字
通过函数名执行
数学 function(x) = x^2 - 2x + 1
abs(x) #求x的绝对值
定义函数

定义和调用函数

函数参数-缺省参数

返回值
函数调用完成后,返回数据
return语句终止当前函数的执行
return后的语句将会被忽略

函数-变量作用域
局部变量
只能在程序的特定部分使用的变量
函数内部
全局变量
为整个程序所使用的变量

global 表示函数是全局变量

函数的优点
代码可重用
提高开发效率
减少重复编码
代码更简洁
函数功能相对独立,功能单一
结构清晰,可读性好
编程更容易把握
复杂程序分解成较小部件
封装与信息隐藏
函数-结构化程序设计方法

自顶向下
自顶向上
获得某年某月是周几
#判断闰年
def is_leap_year(year):
if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
return True
else:
return False
#获得月份的天数
def get_num_of_days_in_montn(year,month):
if month in (1,3,5,7,8,10,12):
return 31
elif month in (4,6,9,11):
return 30
elif is_leap_year(year):
return 29
else :
return 28
#1800.01.01到某年某月过了多少天
def get_total_num_of_day(year,month):
days = 0
for y in range(1800,year):
if is_leap_year(y):
days += 366
else:
days += 365
for m in range(1,month):
days += get_num_of_days_in_montn(year,m)
return days
#某年某月是周几
def get_start_day(year,month):
return (3 + get_total_num_of_day(year,month)) % 7
print get_start_day(2033,12)
note 6 函数的更多相关文章
- python note 11 函数名的使用、闭包、迭代器
1.函数名就是一个变量 def func(): print("我是一个小小的函数") a = func print(a) #输出变量存放地址 <function func a ...
- python note 10 函数变量
1.命名空间 #内置命名空间 —— python解释器 # 就是python解释器一启动就可以使用的名字存储在内置命名空间中 # 内置的名字在启动解释器的时候被加载进内存里#全局命名空间 —— 我们写 ...
- python补充最常见的内置函数
最常见的内置函数是: print("Hello World!") 数学运算 abs(-5) # 取绝对值,也就是5 round(2. ...
- python函数: 内置函数
forthttp://blog.csdn.net/pipisorry/article/details/44755423 Python内置函数 Python内置(built-in)函数随着python解 ...
- C#将C++动态库的回调函数封装成事件
关于C#调用C++动态库的文章很多,调用动态库中回调函数的方法也不在少数.但大多数调用回调函数的方法依然保留了C++的语法特点. 比如有一段C++的回调函数代码,为了表达它的意思,我把注释也粘贴了进来 ...
- PHP之implode与explode函数讲解
implode (PHP 4, PHP 5) implode — 将一个一维数组的值转化为字符串 说明¶ string implode ( string $glue , array $pieces ) ...
- Effective C++ 第二版 17)operator=检查自己 18)接口完整 19)成员和友元函数
条款17 在operator=中检查给自己赋值的情况 1 2 3 class X { ... }; X a; a = a; // a 赋值给自己 >赋值给自己make no sense, 但 ...
- Haskell高阶函数
Haskell functions can take functions as parameters and return functions as return values. A function ...
- strpos、 strstr、 substr三个函数的对比讲解
mixed strpos ( string $haystack , mixed $needle [, int $offset = 0 ] ) 返回 needle 在 haystack 中首次出现的数字 ...
随机推荐
- 两种语言实现设计模式(C++和Java)(二:单例模式)
本篇介绍单例模式,可以说是使用场景最频繁的设计模式了.可以根据实例的生成时间,分为饿汉模式和懒汉模式 懒汉模式:饿了肯定要饥不择食.所以在单例类定义的时候就进行实例化. 饿汉模式:故名思义,不到万不得 ...
- 5--Postman上传文件
请求: charles抓到请求信息: request: --21b63bd3-1543-46cf-ab25-eaa5adf82688Content-Disposition: form-data; na ...
- vue 用户停留页面超过30分钟未操作 强制退出到登录页面
先说下主要实现思路,通过给你的根节点绑定mouseover事件,首先声明下当前时间,每次滑过时记录下滑过的时间,两个时间转化成毫秒数,进行对比,如果超过30分钟,则清除token,跳转到login.h ...
- svg的使用集合
1.效果 https://www.zhangxinxu.com/wordpress/2017/03/offset-path-css-animation/ 2.用法 https://www.cnblog ...
- ngix请求转发
实际运用中,当我们有对用户隐藏真实url的需求时,可以使用ngix转发. 1.转发所有请求: location / { proxy_pass http://localhost:8080 ; } 2.转 ...
- iview中,table组件在缩进时产生的bug。
问题描述: 在父元素因为缩进的关系撑开时,table组件不会因为父元素的撑开而自适应,问题如图 解决办法:在父一级的组件中使用table {width: 100% !important},强制使表格宽 ...
- JS 获取图片标签和所有的图片中的src的正则表达式
var imgReg = /<img.*?(?:>|\/>)/gi; //匹配所有img标签的正则表达式规则 var srcReg = /src=[\'\"]?([^\'\ ...
- python基本使用事项
1.绝对不能使用word及Windows自带的记事本编写代码,本人使用Notepad++, 2.python交互模式 命令符下输入python显示“ >>>“,表示进入了交互模式 在 ...
- reset()方法的使用、jq下面reset()的正确使用方法
reset()是 原生js的的方法,所有浏览器都支持,而且必须是form元素包括下的表单元素,但是JQuery中没有reset方法, 效果图: 错误用法: 正确用法: js用法: document. ...
- mysql_索引
.默认情况下大多使用Btree索引,该索引就是通常所见 唯一索引.聚簇索引等等,Btree用在OLTP,加快查询速度 查询表索引 show index from tablename 查询表结构 ...