# -*- config=utf-8 -*-
#################################### 函数 ##################################
def func_02(a,b):# a b :形式参数
if a>b:
print("a 大于 b")
else:
print("b大于等于a");
func_02(2,4);# 2 4 :实际参数
###################################### 形参数设置默认值 #########################################
def mashine(x=0,y=0):#x=0 表示设置默认值
print(x,"+" ,y,"计算结果:",x+y);
mashine();#使用默认值 0 + 0 计算结果: 0
mashine(21,34);#传值 21 + 34 计算结果: 55
mashine(21);# 不指定参数 21 + 0 计算结果: 21
mashine(y=21);# 指定参数传值 0 + 21 计算结果: 21
##########################################变量的作用域#########################################
x="I am global var";#全局变量
def func_03():
b=200;#局部变量
print(x,b);
func_03();
# 使用 global 将 函数内部的变量 强制 声明为全局变量 函数 必须先被调用
m="C-D-E";
def func_04():
global m;
m="A-B-C";
print(m); func_04();#A-B-C
print(m);#A-B-C 函数必须先调用
#######################################函数的返回值 #####################################
# 1. return 返回函数执行结果 并 终止函数
# 2、默认 返回None
def func_05(x,y):
print(x+y);
return x+y;
sum=func_05(12,23);#接收函数处理的结果
print(sum);
# -*- config=utf-8 -*-
##################################### 多类型参数 ########################

print("%s : %s " % ('A','B')); #格式化输出 A : B
arr=('a','b','c');#元组
list=list(range(10));#元组
map={"a":"A","b":"B","c":"C"};#字典 #将元组 作为参数
def func_01(x,y,z):
print(x,y,z); func_01(*arr);#a b c #默认参数
def func_02(name="张三",age=12):
print("name : %s " % name);
print("age : %s " % age); func_02(); #在不传值得时候 使用默认值 name : 张三
func_02("李四",30);#name : 李四 #传递字典 函数额参数 要与 字典的key值对应
func_02(age=50,name="Kb"); #name : Kb age : 50
map2={"age":40,"name":"王五"};
func_02(**map2);#name : 王五 age : 40
map2["age"]=41;
func_02(**map2); #age : 41 ###############################处理传递的多余参数########################
# *args元组 存储 多余的实参
def func_03(x,*args):
print(x);
print(args); func_03(1); # 1 ()元组
func_03(1,"a","C",4); # 1 ('a', 'C', 4)元组 # 以字典存储 key=value 类型多余的实参
def func_04(x,*agrs,**kwargs):
print(x);
print(agrs);
print(kwargs); func_04(2,"F","D","H",a="A",c="C"); #2 ('F', 'D', 'H') {'c': 'C', 'a': 'A'}
func_04(2,"F","D","H",x="A",c="C");# 这样是 有问题的 因为 x 传递的多次
#####################################lambda(匿名)函数 ###################################
#lambda 函数是一种快速定义单行的最小函数,是从Lisp借鉴的,可以用在任何需要函数的地方
#Python用于支持将函数赋值给变量的一个操作符 默认是返回的,所以不用再加return关键字 def func_05(x,y):
return x*y;
g=lambda x,y :x*y; #t通过lambda 定义 一个匿名函数 付给g
print(g);#<function <lambda> at 0x000000000104C6A8> 返回的是一个函数对象
print(g(12,34));# #Python中的reduce
#python中的reduce内建函数是一个二元操作函数,他用来将一个数据集合(链表,元组等)中的所有数据进行下列操作:
#用传给reduce中的函数 func()(必须是一个二元操作函数)先对集合中的第1,2个数据进行操作,
#得到的结果再与第三个数据用func()函数运算,最后得到一个结果。
#在python 3.0.0.0以后, reduce已经不在built-in function里了, 要用它就得from functools import reduce
from functools import reduce;
# 求 5 的阶乘 5*4*3*2*1
def func_06(x,y):
return x*y;
fh=list(range(1,6));
print(fh);
print(reduce(func_06,fh)); # print( reduce(lambda x,y:x*y,fh) ); #120 使用lambda 函数 处理
# -*- config=utf-8 -*-
################################ 通过字典实现 switch ##############################
from __future__ import division
def operator(o,x,y):
if o=="+":
return x+y;
elif o=="-":
return x-y;
elif o=="*":
return x*y;
elif o=="/":
return x/y;
else:
pass; print(operator("+",12,23));
#将以上业务转为 switch
# lambda 函数也可以是普通函数
opera={
"+":lambda x,y:x+y,
"-":lambda x,y:x-y,
"*":lambda x,y:x*y,
"/":lambda x,y:x/y
}
def findOper(x,o,y):
return opera.get(o)(x,y); # opera.get("+") 返回的是 一个函数 函数后面加() 表示调用函数
print(findOper(12,"-",45));
# -*- config=utf-8 -*-
################################ 内置函数 ##############################
print(abs(-10)); #返回一个数的绝对值
print(divmod(12,5)); #返回两个数的 商 2 和余数 2
print(pow(2,3)); # 8 2的3次方
print(round(20,2));
L=[1,23,43,16,23,46]; #该函数在python2.x版本中都可用。但是在python3.0版本中被移除,而在python3.2以后版本中被重新添加。
print(callable(min));# 判断函数是否可被调用
print(hasattr(min, '__call__'));#3.0之后 print(type(L)); #<class 'list'> 查看数据类型
print(isinstance(L,list));#判断 数据类型 返回 True 或 false
# print(cmp("1","2")); 这个函数 在3.0 后取消了
print(list(range (10)));#生成 一个列表 [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] #######################################字符串 处理的内置函数####################################
str="hello Word";
print(str.capitalize());#字符串首字母大写 Hello word
print(str.replace(" ","")); #字符替换 helloWord
print(str.replace("l","L",1)); # heLlo Word
strIp="192.168.6.223";
print(strIp.split("."));# 切割字符串 ['192', '168', '6', '223']
print(strIp.split(".",2)); # 参数2 表示切割次数 ['192', '168', '6.223']
###########################序列处理函数#######################################
L=[1,23,43,16,23,46];
print(max(L)); #返回一个序列的最大值
print(min(L)); #返回一个序列的最小值
print(len(L)); #返回序列的长度 #filter() 函数
#根据 定义的规则 过滤序列 生成一个迭代器 可以使用List()函数将结果转化为列表
def func_01(x):
if x>16:
return True;
print(list(filter(func_01,L))); #[23, 43, 23, 46]
#zip() 函数
#将 多个 序列按照一一对应的关系 转为一个大的列表迭代器 如果有些数据没有对应 则该信息就不存在了
name=["milo","zou","tom"];
age=[12,34,45];
tel=["",""]
print(list(zip(name,age,tel)));#[('milo', 12, '12312'), ('zou', 34, '21312')] tel 没有一一对应所以tom这条信息就不存在了 #map()函数
#根据定义好的规则 处理多个序列 返回一个迭代器 使用 list() 转换为 列表
aa=[1,2,3,4];
bb=[5,6,7,8];
def func_02(x,y):
return x * y;
print(list(map(func_02,aa,bb)));#[5, 12, 21, 32]
#reduce 函数
#根据定义的规则 以次处理列表中的每个元素
from functools import reduce;#3.5 需要引入
#计算 1加 到100
L=list(range(1,101));
print(reduce(lambda x,y:x+y,L));#

python学习 函数的更多相关文章

  1. python学习-函数和lambda表达式(五)

    5.2函数参数 位置参数:根据位置传入参数 关键字参数:根据参数名来传入参数 def girth(width, height): print("width:", width) pr ...

  2. python学习——函数返回值及递归

    返回值 return语句是从python 函数返回一个值,在讲到定义函数的时候有讲过,每个函数都要有一个返回值.Python中的return语句有什么作用,今天小编就依目前所了解的讲解一下.pytho ...

  3. python学习——函数及其参数

    函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段.函数能提高应用的模块性,和代码的重复利用率.严格来说python只有函数,没有过程,人们理解的函数都是带有return的,而过程 ...

  4. day10 python学习 函数的嵌套命名空间作用域 三元运算 位置参数 默认参数 动态参数

    1.三元运算 #1.三元运算 利用已下方法就可以实现一步运算返回a b中大的值 def my_max(a,b): c=0 a=int(input('请输入')) b=int(input('请输入')) ...

  5. python学习——函数进阶

    首先来看下面这个函数. def func(x,y): bigger = x if x > y else y return bigger ret = func(10,20) print(ret) ...

  6. python学习——函数

     一.在python的世界里什么是函数: 答:函数通常是用来实现某一个功能二被封装成的一个对象,是用来实现代码复用的常用方式 现在有一个需求,假如你在不知道len()方法的情况下,要你计算字符串‘he ...

  7. python学习——函数参数

    一.为什么要使用函数 函数能提高应用的模块性,和代码的重复利用率. 二.函数的参数 位置参数:从左至右进行匹配 一般情况,也就是我们迄今为止最常用的方法,是通过位置进行匹配把参数值传递给函数头部的参数 ...

  8. Python学习-函数,函数参数,作用域

    一.函数介绍 函数定义:函数时组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 我们已经知道python提供了许多内建函数,print(), type()等.我们也可以自己创建函数,这被叫 ...

  9. 二、python学习-函数

    类型判断 1.type()直接获取类型 2.isinstance 用法一:isinstance(值,类型) 返回真或假 用法二:isinstance(值,(类型1,类型2 ...)) 有一个类型满足 ...

随机推荐

  1. JavaScript-取消事件-e.preventDefault();

    取消事件:(阻止默认行为) 当事件执行过程中,遇到问题,可取消事件.不再触发 如何e.preventDefault(); <!DOCTYPE html> <html> < ...

  2. CentOS6.5修改yum源

    在安装完CentOS后一般需要修改yum源,才能够在安装更新rpm包时获得比较理想的速度.国内比较快的有163源.sohu源.这里以163源为例子. 1, cd /etc/yum.repos.d 2. ...

  3. mysql 函数(二)

    1.space(N) 输出空格 SELECT SPACE(5); -> '     ' 2.replace(str,from_str,to_str) 讲str中的from_str 替换成to_s ...

  4. WebBench源码分析与心得

    源码:https://github.com/EZLippi/WebBench   关键全局变量: speed 成功次数 failed 失败次数 bytes 接收字节数 benchtime 执行时长(秒 ...

  5. c++使用stdint.h和inttypes.h

    我们有时候需要使用int有关的宏,比如PRId64,int64_t等,就需要包含那两个头文件. 由于那两个头文件是为c99默认使用的,c++要使用它可能要定义__STDC_FORMAT_MACROS, ...

  6. Webstorm 2016内置web服务器配置

    运行three.js的官方的例子.本来想用IIS来运行,运行不了.所以用webstorm,用鼠标右键的方式,来运行,如下图 但是有一天,我把IIS配置好了,可以在IIS中运行了(只是把build文件夹 ...

  7. 分享我的“艺术品”:公共建筑能耗监测平台的GPRS通讯服务器的开发方法分享

    在这个文章里面我将用一个实际的案例来分享如何来构建一个能够接受3000+个连接的GPRS通讯服务器软件,这个软件被我认为是一个艺术品,实现周期为1.5个月,文章很长,有兴趣的同志慢慢看.在这里,我将分 ...

  8. 使用 Productivity Power Tools 高级扩展 来帮助你提高 VS2012 的工作效率

    Productivity Power Tools 高级工具是帮助开发者提高工作效率的, 用于 Visual Studio 2012 专业版(及以上) 的一组免费扩展. 本文大多数内容译自MSDN:ht ...

  9. javascript 设计模式-----模块模式

    在一些大的项目中经常使用到模块,在这里,我们将了解一下什么是模块模式.模块模式最简单的方法大家一定会用过,如下所示: var a = { b : 1, c : 2 } 这样一个对象的直接量其实就已经是 ...

  10. Guava 并行 Futures实例

    Future可以用来构建复杂的异步操作,方法不是返回一个值,而是一个Future对象.创建Future对象的过程(比如调用Future异步函数接口),不会阻塞当前线程操作,而且对象第一个次创建没有值, ...