''''''
'''
函数:
1.定义:指通过专门的代码组织,用来实现特定的功能的代码段,具有相对独立性,可供其他代码重复调用
2.语法:
def 函数名([参数]):
函数体
[return 返回值]
3.函数名命名规则:
(1)符合基本的标识符命名原则;
(2)不能与现有内置函数名发生冲突
(3)名称应该准确的表达函数的功能
'''
#1.不带参数的函数————求因数
def factor_no_para(): nums=10
for i in range(1,11):
if nums%i==0:
print('%d'%(i))
factor_no_para() #2.带参数函数格式————求因数2.0
def factor_no_para2(nums): #在def(参数)这里面的参数叫形式参数
for i in range(1,nums+1):
if nums%i==0:
print(i)
factor_no_para2(15) #15为给自定义函数传的值(参),叫实际参数 '''
4.调用函数模块
通过import语句导入整个函数模块——导入后,通过模块名.函数名的连接方式调用函数
还可以只调用指定函数:from 模块名 import 函数名1,函数名2...
还可以导入所有函数:from 模块名 import *
别名:若模块名,函数名过长,可以通过as语句定义别名的方式解决:模块名【函数名】 as 别名
5.参数
notes:1.不定长参数:(1)传递任意数量的参数值:*
(2)传递任意数量的键值对:**
2.参数可以传递元组,列表和字典
'''
def exam(name,score):
print('name:'+name+',score:'+str(score)) exam('liu',100)
exam(name='wang',score=100)
exam(score=90,name='ma')
exam('li',score=50) def fruit(name,**attribute):
print('name:'+name)
return attribute print(fruit('watermelon',color='green',shape='圆形',taste='sweet')) #传递的是键值对
'''
结果为:name:watermelon
{'color': 'green', 'shape': '圆形', 'taste': 'sweet'}
'''
'''
6.作用域
(1)全局变量:从赋值开始,后续代码都可以访问该变量
(2)局部变量:只能在被定义的函数或者类内部被访问的变量
7.关键字——global
全局变量在函数中不能对其进行修改,如需修改,要先用global关键字声明
'''
i=10 def sum1():
global i #声明i为全局变量
i=i+5
print(i)
sum1()
print(i)
'''
8.闭包
是介于全局变量和局部变量之间的一种特殊变量。 '''
j=5
def sum2():
k=2 #闭包变量k
def sum3():
i=k+j
return i
return sum3()
print(sum2())
'''
9.nonlocal关键字
外部函数定义一个变量,内部函数去调用,这个变量就叫闭包变量,如果内部函数想修改这个闭包变量,需要用nonlocal关键字声明。
10.匿名函数
lambda
11.递归函数
'''
a=lambda x,y:x*y
m=a(2,3)
print(m)

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

  1. python学习8—函数之高阶函数与内置函数

    python学习8—函数之高阶函数与内置函数 1. 高阶函数 a. map()函数 对第二个输入的参数进行第一个输入的参数指定的操作.map()函数的返回值是一个迭代器,只可以迭代一次,迭代过后会被释 ...

  2. python学习7—函数定义、参数、递归、作用域、匿名函数以及函数式编程

    python学习7—函数定义.参数.递归.作用域.匿名函数以及函数式编程 1. 函数定义 def test(x) # discription y = 2 * x return y 返回一个值,则返回原 ...

  3. 从0开始的Python学习007函数&函数柯里化

    简介 函数是可以重用的程序段.首先这段代码有一个名字,然后你可以在你的程序的任何地方使用这个名称来调用这个程序段.这个就是函数调用,在之前的学习中我们已经使用了很多的内置函数像type().range ...

  4. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  5. Python学习之函数参数

    上一节,我们学习了Python中是如何定义和调用函数且如何得到返回值的.在调用函数时,有的函数需要参数来启动函数,有的则无需参数.这一节我们来介绍Python中有哪些参数类型. 位置参数 在调用函数时 ...

  6. Python学习笔记 - 函数参数

    >>> def power(x): ... return x * x ... >>> power(5) 25 >>> def power(x, n ...

  7. Python学习笔记—函数

    函数 我们知道圆的面积计算公式为: S = πr2 当我们知道半径r的值时,就可以根据公式计算出面积.假设我们需要计算3个不同大小的圆的面积: r1 = 12.34 r2 = 9.08 r3 = 73 ...

  8. Python学习之函数篇

    python查看对象,函数帮助文档:.__doc__,例:str.split.__doc__ 查看详细对象,函数文档:help(),例:help(str.split) 函数参数可设置默认值 如果不能提 ...

  9. Python学习--05函数

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

随机推荐

  1. Django ORM查询结果是model对象

    xxx.object.get/filter()要查询出的结果为model对象,并不是需要的数据,如果使用需要model_to_dict()函数.

  2. 关于swift使用CocoaPods倒入三方库的framework后父类倒入子类无法继承的问题

    今天开发项目的时候遇到这么一个问题在使用cocoapods倒入了三方库后我在BaseController中倒入三方库,其余controller继承自basecontroller,然而在继承的子类中无法 ...

  3. Zookeeper是如何实现分布式锁的

    [toc] Zookeeper是如何实现分布式锁的 标签 : Zookeeper 分布式 实现分布式锁要考虑的重要问题 1. 三个核心要素 加锁, 解锁, 锁超时 2. 三个问题 要保证原子性操作, ...

  4. C语言:static关键字用法

    参考博客:https://blog.csdn.net/guotianqing/article/details/79828100 看个例子: #include <stdio.h> void ...

  5. .NET Core 3.1 的REST 和gRPC 性能测试

    看到越南小哥 的github 上的Evaluating Performance of REST vs. gRPC , 使用的是.NET Core 3.0 , 今天我把它升级到.NET Core 3.1 ...

  6. Java中的数据结构-HashMap

    Java数据结构-HashMap 目录 Java数据结构-HashMap 1. HashMap 1.1 HashMap介绍 1.1.1 HashMap介绍 1.1.2 HashMap继承图 1.2 H ...

  7. Mongo日期

    当通过mongo shell来插入日期类型数据时,使用new Date()和使用Date()是不一样的: > db.tianyc04.insert({mark:, mark_time:new D ...

  8. Springboot2(二)通过微信熟悉熟悉Spring-boot yml配置文件

    前言:Spring-boot的yml配置文件,这里就不在借助人.狗介绍了,试试套下微信! 创建yml文件 值得注意的是下图中有三种命名方法,前两种是对的,且第二种必须是横线而不是下划线! yml文件的 ...

  9. mysql中的PACK_KEYS

    原文  http://jackyrong.iteye.com/blog/2170222 在mysql的myisam引擎中,有一个是容易忽视的,叫压缩索引PACK_KEYS , myISAM使用前缀压缩 ...

  10. Struts2-学习笔记系列(15)-ajax支持和JSON

    7.1stream类型的result 使用stream就无需jsp页面,直接在action想浏览者生成指定的响应 @Override public java.lang.String execute() ...