函数的主要作用是实现代码复用

1 python内置函数

2 匿名函数lambda

3 自定义函数 def functionname(arg):...

#coding:utf-8
#/usr/bin/python
"""
2018-11-11
dinghanhua
函数
""" '''内置函数'''
print(round(2.345,2)) #四舍五入,保留2位小数;绝对值
print(abs(-23.333)) #绝对值 '''匿名函数 lambda'''
lambda x: x**2 #匿名函数
print(list(map(lambda x:x**3,(1,2,3)))) #x的3次方
print(list(filter(lambda x:x%2==0 , [1,2,33,44]))) #取偶数
'''自定义函数'''

'''函数定义'''
def funcname(arg,sign):
'''函数说明'''
print('arg=%s,sign=%s'%(arg,sign))
return '''带缺省值的函数'''
def funcname2(name,nation = 'china'): #第二个参数带缺省值,缺省参数放到最后
print('name is %s,nation is %s'%(name,nation))
return name,nation '''函数调用'''
#不带参数名,按顺序赋值
res = funcname('wegjoweg','no sign')
print('没有返回值,返回:',res)
#指定参数名,顺序可打乱
funcname(sign = 2,arg = 'ok') #缺省参数未传参
res = funcname2('小明')
print(res)
#缺省参数传参
res = funcname2('peter','Americia')
print('返回多个值,返回的是一个tuple:',res)
'''缺省参数=list 出现的异常'''
def func(val,list=[]):
list.append(val)
return list
list1 = func(10)
list2 = func('abc',[])
list3 = func('')
print(list1,list2,list3) #[10, '2'] ['abc'] [10, '2'] list1和list3同一个地址,均指向缺省参数的内存地址 #规避以上问题,list=None
def func(val,list=None):
if list is None:
list = [] #每次创建一个
list.append(val)
return list
list1 = func(10)
list2 = func('abc',[])
list3 = func('')
print(list1,list2,list3) #[10] ['abc'] ['2']
'''可变参数*arg,取出来是元组'''
def func(name,*other):
print('name=%s,other=%s'%(name,other)) func('john',18,'一年级')
func('peter',20) '''可变参数**arg,取出来是字典'''
def func(name,**other):
print('name=%s,other=%s'%(name,other)) func('john',age=18,grade='一年级')
other = {'age':18,'grade':'grade 1'}
func('peter',**other)

the end!

python入门15 函数的更多相关文章

  1. Python入门篇-函数、参数及参数解构

    Python入门篇-函数.参数及参数解构 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.函数概述 1>.函数的作用即分类 函数 数学定义:y=f(x) ,y是x的函数,x ...

  2. Python入门之 函数

    Python入门之 函数 1.初识函数 1.1 什么是函数? <1> 将某个功能封装到一个空间中就是一个函数 <2> 减少重复代码 1.2 定义函数 def -- python ...

  3. Python入门-初始函数

    今天让我们来初步认识一个在python中非常重要的组成部分:函数 首先,让我们来幻想这样一个场景: 比如说我们现在想要通过社交软件约一个妹子,步骤都有什么? print('打开手机 ') print( ...

  4. python入门总结-函数

    函数形式: def functionname(paramlist): function body 局部变量不改变实参的值,如果需要改变,声明global.比如,global x 可以给函数默认值,注意 ...

  5. python入门之函数

    为什么要用函数 python的函数是由一个新的语句编写,即def ,def是可执行的语句--函数并不存在,知道python运行了def后才存在. 函数是通过赋值函数传递的,参数通过赋值传递给函数. d ...

  6. Python入门之函数的装饰器

    本章目录: 装饰器: 一.为什么要用装饰器 二.什么是装饰器 三.无参装饰器 四.装饰器语法糖 五.认证装饰器实现 六.叠加多个装饰器 七.带参装饰器 ======================== ...

  7. Python入门之函数的嵌套/名称空间/作用域/函数对象/闭包函数

    本篇目录: 一.函数嵌套 二.函数名称空间与作用域 三.函数对象 四.闭包函数 ============================================================ ...

  8. Python入门day04_函数与装饰器

    一.函数入门 什么是函数: # 函数:函数是一系列代码的集,用来完成特定功能的代码块,类似于工具,可以重复不但的去使用 为什么要有函数: # 优点:# 1. 避免代码的冗余 # 2. 让程序代码结构更 ...

  9. python入门之函数对象

    目录 函数是第一类对象 1.函数名可以被引用 2.函数名可以当做参数传递 3.函数名可以当做返回值使用 4.函数名可以被当做容器类型的元素 函数是第一类对象 First-Class Object : ...

随机推荐

  1. Android 调整图标和字体大小

    1. Root 2. 进system,找到build.prop 3. 用RE管理器,编辑 ro.sf.lcd_density=320, 后面的数值随意调整,越大图标越大,不要太贪心,图标变大会显示不全 ...

  2. dcoker machine

    Docker Machine是一个安装和管理 Docker 的工具, 它有自己的命令行工具:docker-machine.Docker Machine简化了Docker的安装和远程管理, 不仅可以管理 ...

  3. vue dev 环境下的跨域访问

    概述:被dev环境下的跨域弄晕了好几天,build环境还在研究中 1.config--->index.js---->module.exports---->dev 2.在main.js ...

  4. 基于WebImage的图片上传工具类

    支持缩略图和水印. using System; using System.IO; using System.Linq; using System.Web; using System.Web.Helpe ...

  5. vector与array之间转换,向量与数据之间转换

    一维数组: vector<int> a; int b[5] = {1,2,3,4,5}; a.push_back(b);   二维数组: b[5][6] = {1,2,3,4,5,6... ...

  6. ORACLE--12C--多租户体系架构概念

    一,概念 1,何为多租户? 官网链接: 飞机直达>> 多租户这个概念并不是12C的新特性,而是体系架构,多租户架构使得oracle 数据库成为了一个多租户的容器数据库,也就是contain ...

  7. oracle 笔记---(七)__角色

    一,角色介绍 角色就是相关权限的命令集合,使用角色的主要目的就是为了简化权限的管理,假定有用户a,b,c为了让他们都拥有权限:连接数据库和在scott.emp表上select,insert,updat ...

  8. Java基础21-构造函数之间的调用

    public class Test{ public static void main(String[] args){ Persion p2=new Persion("小明",22) ...

  9. java集合常用操作

    收集一些常用集合操作的代码,用于治疗健忘症,:) set转list //构造Map数据 Map<String, String> map = new HashMap<String, S ...

  10. net.sf.json.JSONException: There is a cycle in the hierarchy! 转json死循环问题解决

    解决上述问题遵照两个原则就可以: 1.页面不需要展示关联数据时 解决:将关联对象属性排除掉 2.页面需要展示关联数据时 解决:将关联对象改为立即加载,并且将关联对象中的属性排除