不使用函数的情况下只能遵循面向过程的编程,即,根据业务逻辑从上到下实现功能,往往重复的功能,使得代码出现重复。

 #最简单的函数调用
#由于python遵循从上到下读入内存的规律,所以函数要放到调用的前面
def s1():
print('hello world')
s1()
#显示:hello world
#函数的参数传入
def s1(name):
print('my name is %s'%name) s1('liguangxu')
#显示:my name is liguangxu
#函数的多参数调用(实参与形参相对应)
def s1(name,age,what):
print('my name is %s,age is %s, is %s'%(name,age,what))
s1('liguangxu',23,'good man')
#显示:my name is liguangxu,age is 23, is good man
#函数的不同位置实参的传入(需要给实参指定对应形参)
def s1(name,age,what):
print('my name is %s,age is %s, is %s'%(name,age,what)) s1(age=18,what='good man',name='liguangxu')
#显示:my name is liguangxu,age is 18, is good man
#函数形参的默认值(含有默认值的形参必须放在最后)
def s1(name,age,what='good man'):
print('my name is %s,age is %s, is %s'%(name,age,what)) s1(age=18,name='liguangxu')
#显示:my name is liguangxu,age is 18, is good man s1(age=18,what='bad man',name='liguangxu')
#显示:s1(age=18,what='bad man',name='liguangxu')
#函数的动态参数,会将实参放入元组中
def test(*args):
print(args,type(args)) test('')
#显示('123',) <class 'tuple'> #函数的动态参数,传入的实参为一组元素,将li整个列表放入元组中
def test(*args):
print(args,type(args)) li=[11,22,33,45]
test(li)
#显示([11, 22, 33, 45],) <class 'tuple'> #传入带一个*的列表,将li列表中的每个元素放到元组中
def test(*args):
print(args,type(args)) li=[11,22,33,45]
test(*li)
#显示:(11, 22, 33, 45) <class 'tuple'>
test(*'alex')
#显示:('a', 'l', 'e', 'x') <class 'tuple'>
#总结:实参前加个‘*’相当于加了个for循环遍历实参的每个元素,并一一放入元组中
#动态参数形参含两个*,将键值对传入,并保存成字典的形式
def f2(**kwargs):
print(kwargs) f2(n1='alex',n2=18)
#显示:{'n1': 'alex', 'n2': 18} dic={'k1':'v1','k2':'v2'}
f2(kk=dic)#{'kk': {'k1': 'v1', 'k2': 'v2'}}
#显示{'kk': {'k1': 'v1', 'k2': 'v2'}} #万能参数
def f1(*args,**kwargs):
print(args)
print(kwargs)
f1(11,22,33,44,55,k1='aa',k2='bb')
#运行结果(11, 22, 33, 44, 55)
{'k1': 'aa', 'k2': 'bb'}
#formate传参方式
#方式1
s1='i am {0},age{1}'.format('alex',18)
print(s1)
#显示:i am alex,age18 #方式2
s2='i am {0},age{1}'.format(*['alex',18])#传列表
print(s2)
#显示i am alex,age18 #方式3
s1='i am {name}, age{age}'.format(name='alex',age=18)#字符串中name与age后面一定要加上name=‘’,age=进行指定
print(s1)
#显示:i am alex, age18 #方式4
dic={'name':'alex','age':18}
s2='i am {name},age{age}'.format(**dic)#传字典要加**
print(s2)
#显示:i am alex,age18
#传过来的形参可使用方法不能重新赋值 ,建议全局变量名需大写
#传的是引用 不是复制
def f5(a1):
a1.append('')
li=[11,22,33,44]
f5(li)
#显示:[11, 22, 33, 44, '123']
 #全局变量,所有的作用域,都可读,对全局变量进行【重新赋值】,需要加上global,特殊:列表,字典,可修改,不可重新赋值
def f1():
global name#表示name为全局变量
name=''
print(name) name=''
f1()
#显示:123

python-day3-之函数的更多相关文章

  1. 跟着ALEX 学python day3集合 文件操作 函数和函数式编程 内置函数

    声明 : 文档内容学习于 http://www.cnblogs.com/xiaozhiqi/  一. 集合 集合是一个无序的,不重复的数据组合,主要作用如下 1.去重 把一个列表变成集合 ,就自动去重 ...

  2. day3之函数的初始及进阶

    函数初始 函数的定义与调用 ''' def 函数名 (参数): 函数体 函数名:设定与变量相同 执行函数: 函数名() ''' 函数的返回值 # 函数返回值 return ''' 1.遇到return ...

  3. Python 动态创建函数【转】

    知乎上也有相似的问题 偶然碰到一个问题,初想是通过动态创建Python函数的方式来解决,于是调研了动态创建Python函数的方法. 定义lambda函数 在Python中定义lambda函数的写法很简 ...

  4. python中的函数

    Python 函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你也 ...

  5. python高级之函数

    python高级之函数 本节内容 函数的介绍 函数的创建 函数参数及返回值 LEGB作用域 特殊函数 函数式编程 1.函数的介绍 为什么要有函数?因为在平时写代码时,如果没有函数的话,那么将会出现很多 ...

  6. python内置函数

    python内置函数 官方文档:点击 在这里我只列举一些常见的内置函数用法 1.abs()[求数字的绝对值] >>> abs(-13) 13 2.all() 判断所有集合元素都为真的 ...

  7. Python基础三. 函数、lambda、filter、map、reduce

    一.概述 函数, 就是用一些语句组织起来实现一组特定的功能, 用来重复调用. 函数的作用及意义:最大化的重用代码和最小化的代码冗余以及对流程的分解. Python中有哪些函数: 内建的函数 第三方模块 ...

  8. Python 常用string函数

    Python 常用string函数 字符串中字符大小写的变换 1. str.lower()   //小写>>> 'SkatE'.lower()'skate' 2. str.upper ...

  9. python 内置函数和函数装饰器

    python内置函数 1.数学相关 abs(x) 取x绝对值 divmode(x,y) 取x除以y的商和余数,常用做分页,返回商和余数组成一个元组 pow(x,y[,z]) 取x的y次方 ,等同于x ...

  10. Python 之匿名函数和偏函数

    匿名函数与偏函数 匿名函数 Python允许使用lambda关键字创造匿名函数,lambda表达式用于定义匿名函数,它返回可调用的函数对象,语法如下: lambda arg1, arg2, … : e ...

随机推荐

  1. VMware下Centos6.4安装

    VMware(Virtual Machine ware)是一个“虚拟PC”软件公司,提供服务器.桌面虚拟化的解决方案. 小伙伴们网上下载VMware11,一路下一步自己安装吧!!! 打开 VMware ...

  2. C#之MVC3继续整理问题

    1.注释验证[EmailAddress(ErrorMessage = "×")],用的MVC3框架,此处报错,找不到类“EmailAddress”,看到原文有using Syste ...

  3. ARM实验1 —— 流水灯实验

    实验内容: 编写GPIO模块程序,实现对FS_4412平台的上的led2,led3,led4 ,led5,的流水灯实现. 实验目的: 熟悉开发环境的使用. 掌握Exynos 4412处理器GPIO功能 ...

  4. linux 命令——22 find (转)

    find一些常用参数的一些常用实例和一些具体用法和注意事项. 1.使用name选项: 文 件名选项是find命令最常用的选项,要么单独使用该选项,要么和其他选项一起使用.  可以使用某种文件名模式来匹 ...

  5. idea单元测试junit

    参考文章地址地址:http://blog.csdn.net/u011138533/article/details/52165577 本文按以下顺序讲解JUnit4的使用 下载jar包 单元测试初体验 ...

  6. PHP:php遍历数组 foreach echo() list()总结

    php中可以用来遍历数组的方法有很多,如有:foreach语句.list().each(),这几个也是主要的方法,现总结如下: foreach语句遍历数组 foreach语句用于循环遍历数组,每进行一 ...

  7. Problem D: 双向冒泡排序

    Problem D: 双向冒泡排序 Time Limit: 1 Sec  Memory Limit: 128 MBSubmit: 447  Solved: 197[Submit][Status][We ...

  8. python基础一 day17 作业

    # 3.用map来处理字符串列表,把列表中所有人都变成sb,比方alex_sbname=['alex','wupeiqi','yuanhao','nezha']# def func(item):# r ...

  9. java基础——线程池

    第2章 线程池 2.1 线程池概念 线程池,其实就是一个容纳多个线程的容器,其中的线程可以反复使用,省去了频繁创建线程对象的操作,无需反复创建线程而消耗过多资源. 我们详细的解释一下为什么要使用线程池 ...

  10. Excel自动从身份证中提取生日、性别、年龄

    现在学生的身份证号已经全部都是18位的新一代身份证了,里面的数字都是有规律的.前6位数字是户籍所在地的代码,7-14位就是出生日期.第17位“2”代表的是性别,偶数为女性,奇数为男性.我们要做的就是把 ...