# 函数

  • 定义
def my_abs(x) :
if not isinstance(x, (int, float)) :
raise TypeError('bad operand type')
if x>0 :
return x;
elif x == 0 :# 只是为了显示pass的作用,什么都不做。对于函数逻辑是不对的。
pass # pass 是占位符,什么都不做。
else :
return -x
  • 加载函数

假如函数 my_abs 定义在文件 abstest.py 中,调用的加载方式为:

from abstest import my_abs # 导入my_abs()
  • 加载库
import math

def move(x, y, step, angle=0)
nx = x+step*math.cos(angle)
ny = y+step*math.sin(angle)
return nx, ny # 按照 tuple 方式返回多个变量
  • 函数参数1 位置参数(最一般的参数)

见上面的例程,x、y、step

  • 函数参数2 默认参数

见上面的例程,angle = 0

  • 函数参数3 可变参数(类似tuple传入)(常用做法,调用更简单)
# 函数, number 是位置参数
def calc(numbers) :
su = 0
for n in numbers:
su = su+n*n
return su # 调用
>>>calc([1,2,3])
>>>a = [1,2,3]
>>>calc(a) # 这里都是以list作为参数传入 # 函数,*number 是可变参数
def calc(*numbers) :
su = 0
for n in numbers:
su = su+n*n
return su
# 调用
>>>calc(1,2,3) # 这是tuple
>>>a = [1,2,3]
>>>calc(*a) #
  • 函数参数4 命令关键字参数(对参数4中可传入的类型加以限制)
def person(name, age, *, city, gender) :
print(name, age, city, gender) # 表示参数 city 和 gender 一定要传入
# 可以缺省
# 可以设置默认值
def person(name, age, *args, city='Beijing', gender) :
print(name, age, city, gender) # 注意 * ,是 city, gender 别于位置参数的标志符。
  • 函数参数5 关键字参数(类似dict传入)
def person(name, age, **KeyWord) :
print('name : ', name, 'age : ', age, 'other : ', KeyWord) # **KeyWord就是关键字参数
# 可以缺省调用
>>>persion('AA', 10)
name : AA age : 10 other : {} # 传入参数,关键字参数就是一个 dict
>>>person('AA', 10, city = 'Beijing', gender = 'M')
name : AA age : 10 other : {'city' ;'Beijing', 'gender' : 'M'} # 先设计dict,;2种调用方法
>>> extra = {'city' : 'Beijing', 'gender' : 'M'}
>>> person('AA', 10, **extra) >>> person('AA', 10, city=extra['city'], gender = extra['gender'])
  • 函数参数的顺序

函数的参数顺序必须如下:

位置参数(list或者tuple传入)、

  默认参数()、

    可变参数(*L)(list或者tuple传入)、

       命名关键字参数(*,d)(有限制的dict传入)、

          键字参数(**d)(dict传入)

Python学习笔记3 函数_20170614的更多相关文章

  1. Python学习笔记之函数

    这篇文章介绍有关 Python 函数中一些常被大家忽略的知识点,帮助大家更全面的掌握 Python 中函数的使用技巧 1.函数文档 给函数添加注释,可以在 def 语句后面添加独立字符串,这样的注释被 ...

  2. 小甲鱼:Python学习笔记003_函数

    >>> # 函数>>> def myFirstFunction(params1,params2...): print("这是我的第一个函数!") ...

  3. Python学习笔记 - day6 - 函数

    函数 函数在编程语言中就是完成特定功能的一个词句组(代码块),这组语句可以作为一个单位使用,并且给它取一个名字.可以通过函数名在程序的不同地方多次执行(这叫函数的调用).函数在编程语言中有基本分为:预 ...

  4. Python学习笔记系列——函数

    今年下半年的计划主要是Python和Mysql了,公司不方便看书和视频,就照着廖雪峰的Python网站开始看了.以下纯为个人笔记记录,若是想系统学习的小伙伴还是看这里的好一些,毕竟系统.https:/ ...

  5. Python学习笔记(五)函数和代码复用

    函数能提高应用的模块性,和代码的重复利用率.在很多高级语言中,都可以使用函数实现多种功能.在之前的学习中,相信你已经知道Python提供了许多内建函数,比如print().同样,你也可以自己创建函数, ...

  6. python学习笔记(4)--函数

    1.函数 函数是指将一组语句的集合通过一个名字封装起来.要想执行这个函数,只需调用其函数名即可. 函数的特性: 1.减少重复代码 2.使程序变的课扩展 3.使程序变得易维护 语法定义: def pri ...

  7. Python学习笔记-Day3-python函数

    1.为什么要用函数? 提高代码重复利用率,减少代码冗余.封装模块化代码,便于调用 2.函数声明定义(注意:函数先声明后调用) 注意:函数的reture循环中的exit功能一样(函数不执行,终止) 函数 ...

  8. Python学习笔记11—函数

    建立第一个函数 /usr/bin/env Python #coding:utf-8 def add_function(a,b): c = a+b print c if __name__==" ...

  9. Python学习笔记7-把函数当参数传递、指定可变参数

    把函数当参数传递 # 函数参数传递 # 面向对象编程就是把对象传来传去 # 面向函数编程就是把函数传来传去 def mytest(num): return num * 2 # # 不光可以传递变量,还 ...

随机推荐

  1. 不相交集ADT 你是和谁是一类人?

    //不相交集ADT (抽象数据类型) //一般用于集合运算 //用树,这种结构组成,有多个树(=森林) //属于同一颗数的元素,表示处于同一个集合中 //主要支持2个操作. //1. Find操作,找 ...

  2. 关于OpenCASCADE数组序列的起始值

    C/C++的数组是从0开始计算的,5个值的数组则下标会对应 0, 1, 2, 3, 4. 在数学上可能不这么数,我所知道的 Mathematica 内的 List 是从 1 开始作为下标的. Open ...

  3. day(66)作业

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  4. 洛谷 P4017 最大食物链计数

    洛谷 P4017 最大食物链计数 洛谷传送门 题目背景 你知道食物链吗?Delia生物考试的时候,数食物链条数的题目全都错了,因为她总是重复数了几条或漏掉了几条.于是她来就来求助你,然而你也不会啊!写 ...

  5. Servlet一次乱码排查后的总结

    由来 在写一个小小的表单提交功能的时候,出现了乱码,很奇怪request上来的参数全部是乱码,而从数据库查询出来的中文显示到页面正常,锁定肯定是request对象那里出了问题.后来经过排查,发现是我封 ...

  6. 如何在AbpNext项目中使用Mysql数据库

    配置步骤: 1.更改.Web项目的appsettings.json的数据库连接字符串.如:server=0.0.0.0;database=VincentAbpTest;uid=root;pwd=123 ...

  7. python--基础知识点梳理(三)深浅拷贝、进线协程、os和sys、垃圾回收机制、读文件的三种方式

    深拷贝与浅拷贝 import copy 浅拷贝:将一个对象的引用拷贝到另一个对象上,所以如果我们在拷贝中改动,会影响到原对象.copy.copy() 深拷贝:将一个对象拷贝到另一个对象中,新开辟了一个 ...

  8. C语言--计算程序执行时间

    C语言–计算程序执行时间1. gettimeofday精度1us #include<stdio.h>#include<sys/time.h> int main(){ /* 定义 ...

  9. 【转】Oracle重置序列(不删除重建方式)

    Oracle中一般将自增sequence重置为初始1时,都是删除再重建,这种方式有很多弊端,依赖它的函数和存储过程将失效,需要重新编译.不过还有种巧妙的方式,不用删除,利用步长参数,先查出sequen ...

  10. java核心技术第三篇之JDBC第一篇

    01.JDBC_两个重要的概念: 1).什么是数据库驱动程序:由数据库厂商提供,面向某种特定的编程语言所开发的一套访问本数据库的类库. 驱动包一般由两种语言组成,前端是:面向某种特定编程语言的语言:后 ...