python基础学习11----函数

一.函数的定义

def 函数名(参数列表):
    函数体
    return语句

return语句不写或后边不加任何对象即为return None

二.函数的参数

无参数

def func1():
    print("没有参数")

一个参数

def func1(a):
   return a

多个参数

def func1(a,b,c):
   return a+b+c

必须参数

  必须按照正确顺序和数量传入参数

def func1(name,age,job):
   print("name:%s age:%d job:%s"%(name,age,job))
func1("sfencs",20,"IT")

关键字参数

def func1(name,age,job):
   print("name:%s age:%d job:%s"%(name,age,job))
func1(age=20,name="sfencs",job="IT")

默认参数

默认参数必须放在必须参数的后面

def func1(name,age,job="IT"):
   print("name:%s age:%d job:%s"%(name,age,job))
func1("sfencs",20)
func1("Alan",25,"teacher")

不定长参数

参数带一个星号*

def func1(*args):
    print(args)
func1(1,2,3,"sfencs")#(1, 2, 3, ‘sfencs‘)以元组形式保存

参数带两个星号**

def func1(**args):
    print(args)
func1(age=20,name="sfencs",job="IT")#{‘age‘: 20, ‘name‘: ‘sfencs‘, ‘job‘: ‘IT‘}以字典形式保存

定义函数的参数时请以必须参数、默认参数、带一个星号的不定长参数、带两个星号的不定长参数的顺序定义形参

三.参数传递

不可变类型

def func1(a):
    a=5
b=10
func1(b)
print(b)#输出为10

可变类型

def func1(list1):
    list1.append("sfencs")
list2=[1,2,3]
func1(list2)
print(list2)#[1, 2, 3, ‘sfencs‘]list2会改变

四.变量作用域

L (Local) 局部作用域
E (Enclosing) 闭包函数外的函数中
G (Global) 全局作用域
B (Built-in) 内建作用域

按照L-->E-->G-->B的顺序查找

内部作用域修改外部作用域变量

global

count=20
def function() :
    global count#不加这句话会报错
    print (count)#20
    count=5
    print(count)#5
function()
print(count)#5

nonlocal 

修改嵌套作用域

def function1() :
    count=20
    def function2():
        nonlocal count
        count=5
        print(count)#5
    function2()
    print(count)#r此时输出为5,若不加nonlocal count则输出为20
function1()

五.递归函数

#斐波那契数列为0,1,1,2,3,5,8,13,21,34.......
def fibon(n):
    if n<=2 :
        return n-1
    return fibon(n-1)+fibon(n-2)
print(fibon(7))#输出数列中第七个数,为8

  

原文地址:https://www.cnblogs.com/sfencs-hcy/p/9610954.html

时间: 2024-10-26 02:55:00

python基础学习11----函数的相关文章

python基础学习11(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #执行环境 #可调用对象 """ 许多的python 对象都是我们所说的可调用的,即是任何能通过函数操作符“()”来调用的对象.要调用可调用对象, 函数操作符得紧跟在可调用对象之后.Python 有4

python 基础篇 11 函数进阶----装饰器

11. 前??能-装饰器初识本节主要内容:1. 函数名的运?, 第?类对象2. 闭包3. 装饰器初识 一:函数名的运用: 函数名是一个变量,但他是一个特殊变量,加上括号可以执行函数. ?. 闭包什么是闭包? 闭包就是内层函数, 对外层函数(非全局)的变量的引?. 叫闭包 可以使用_clesure_检测函数是否是闭包  返回cell则是闭包,返回None则不是 闭包的好处: 由它我们可以引出闭包的好处. 由于我们在外界可以访问内部函数. 那这个时候内部函数访问的时间和时机就不?定了, 因为在外部,

Python基础学习之函数

1.函数的定义: def 函数名(参数): 函数体 返回值 举例:def fuction1(name): if name ='Alex': print('Success') else: print('Failure') 2.返回值:告诉函数执行的结果,成功与否:def f1(age): if age >18: return("成年人") else: return("飞成年人")3.参数3.1:无参函数: def 告警(): 登录邮箱: 发送告警信息:3.2有参

python基础学习11天,作业题

1. 文件a.txt内容:每一行内容分别为商品名字,价钱,个数. apple 10 3 tesla 100000 1 mac 3000 2 lenovo 30000 3 chicken 10 3 通过代码,将其构建成这种数据类型:[{'name':'apple','price':10,'amount':3},{'name':'tesla','price':1000000,'amount':1}......] 并计算出总价钱. 2,有如下文件: ------- alex是老男孩python发起人,

Python基础学习11

函数 代码的一种组织形式,一个函数一般完成一项特定的功能 函数的使用: 函数需要先定义 使用函数,俗称调用 定义一个函数: 函数的定义部分不会被执行 def关键字,后跟一个空格 函数名,自己定义,起名需要遵循便令命名规则,约定俗成,大驼峰命名只给类用 后面括号和冒号不能省,括号内可以有参数 函数内所有代码缩进 语法 def 函数名(参数列表): 函数体 实例: def func1(): # 定义函数,此处未传参数 print('这就是函数!') print('我不玩了.') func1() #

python基础学习05(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #dict{键:值} #哈希 #注:字典是无顺序的,所以你懂的 #创建与赋值 dict1={} dict2={'name':'apply','avg':24,'sex':'man'} print dict1,dict2

python基础学习09(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #什么是函数 #就是引用,创建,使用 #例子 def foo(): print '233' foo() #返回与函数类型 def foo1():#是一个过程 print 'hello world!' foo1() foo

Python 基础学习 网络小爬虫

<span style="font-size:18px;"># # 百度贴吧图片网络小爬虫 # import re import urllib def getHtml(url): page = urllib.urlopen(url) html = page.read() return html def getImg(html): reg = r'src="(.+?\.jpg)" pic_ext' imgre = re.compile(reg) imgli

Python基础学习(九)

Python 多线程 多线程类似于同时执行多个不同程序,多线程运行有如下优点: 使用线程可以把占据长时间的程序中的任务放到后台去处理. 用户界面可以更加吸引人,这样比如用户点击了一个按钮去触发某些事件的处理,可以弹出一个进度条来显示处理的进度 程序的运行速度可能加快 在一些等待的任务实现上如用户输入.文件读写和网络收发数据等,线程就比较有用了.在这种情况下我们可以释放一些珍贵的资源如内存占用等等. 线程在执行过程中与进程还是有区别的.每个独立的线程有一个程序运行的入口.顺序执行序列和程序的出口.

python基础学习07(核心编程第二版)部分

# -*- coding: utf-8 -*- # ==================== #File: python #Author: python #Date: 2014 #==================== __author__ = 'Administrator' #file与input output #文件对象 #简单说来,就是写入和读取的方式 #file(),open()2个操作都是一样的,一般推荐open() #语法 # open(name[, mode[, bufferin