一.函数的返回值 return

return: 自定义返回值,返回到哪里? 返回到函数的[调用处]
1.return 后面可以跟上六个标准数据类型,除此之外,可以跟上 类对象,函数,如果不写return,默认返回None
2.return 如果执行了return,意味着,return后面的所有代码,通通不执行,函数终止了
#(1)return 后面的数据类型
#例:

def func():
    #return 1        #整型
    #return 3.14     #浮点型
    #return True     #bool类型
    #return 4j       #复数
    #return [1,2,3,4]  #列表
    return {"a":1,"b":2} #字典

res = func() # res = {"a":1,"b":2}
print(res)

#(2)如果不写return,默认返回None
def func():
    a = 1
res = func()
print(res)  #None

#(3) 执行完return之后,函数立刻终止,后面的代码不执行

#例:
def func():
    print("执行到1")
    print("执行到2")
    return 1
    print("执行到3")
    print("执行到4")
    return 2
res = func()
print(res)
结果:

执行到1

执行到2

1

#(4)计算器

#例:
print("<------------------->")
def calc(sign,num1,num2):
    if sign == "+":
        res = num1 + num2
    elif sign == "-":
        res = num1 - num2
    elif sign == "*":
        res = num1 * num2
    elif sign == "/":
        if num2 == 0:
            return "大兄弟,除数不能为0"
        res = num1 / num2
    else:
        return "不会,别问我!!!!!!你是个有趣的灵魂."
    return res
res2 = calc("^",5,0)
print(res2)
print("=============")
res3 = calc("+",5,32)

print(res3)

结果为:

不会,别问我!!!!!!你是个有趣的灵魂.

=============

37

二.函数的使用

#python中的函数可以像变量一样,动态创建,销毁,当参数传递,作为返回值,叫第一类对象,其他语言功能有限
#例:
def func():
    print(1)
 #输出:1

1.函数名是个特殊的变量,可以当做变量赋值

#变量的赋值操作
func2 = func
func2() #func()

#动态的销毁变量
del func2 #del 关键字 用来删除变量的
#func2() #error

2.函数名可以作为容器类型数据的元素

print("<=============>")
def func1():
    print(1)
def func2():
    print(2)
def func3():
    print(3)
def func4():
    print(4)

#也可以这样:法一:
#lst = [func1(),func2(),func3(),func4()]
#for i in lst:
#     i

结果为:

1

2

3

4

#法二:
lst = [func1,func2,func3,func4]
for i in lst:
    #print(i)
    i()  #函数的调用

结果为:

1

2

3

4

3.函数名可以作为函数的参数

#例1:

def func(a): #a = func2
    res = a()
    print(res)

def func2():
    return 123
func(func2)

#结果解析:

#func2 => 123 => res = 123

4.函数名作为函数的返回值

#例:
def func(a): #a =>
    return a

def func2():
    return 456

#函数的调用
res = func(func2) #func2是一个函数地址
print(res)   #的地址
total = res() #res() ==> func2()
print(total)

结果为:

<function func2 at 0x00000000027310D0>

456

#__doc__或者help查看文档
#(1)help
#help (print)
#(2)__doc__魔术属性
res = print.__doc__
print(res)

#(3)自定义函数文档
print("-==================")
def kao_qiezi(qimin):
    '''
    功能:告诉你如何做茄子
    参数:是一个器皿
    返回值:返回烧烤状态
    '''
    print("从中间抛开,扔到烧烤架子上面")
    print("扔胡椒面,扔孜然,扔蒜蓉,扔香菜")
    print("用一个%s来盛放" %(qimin))
    return "这个茄子做好了"
kao_qiezi("盘")
print("====-------=======")
help(kao_qiezi)
print('4567==============')
res =kao_qiezi.__doc__
print(res)

结果为:(第一个输出函数的结果,第二和第三输出都是帮助文档内容)

从中间抛开,扔到烧烤架子上面

扔胡椒面,扔孜然,扔蒜蓉,扔香菜

用一个盘来盛放

====-------=======

Help on function kao_qiezi in module __main__:

kao_qiezi(qimin)

功能:告诉你如何做茄子

参数:是一个器皿

返回值:返回烧烤状态

==================

功能:告诉你如何做茄子

参数:是一个器皿

返回值:返回烧烤状态

三.局部变量 与 全部变量

局部变量:在函数内部声明的变量就是局部变量
全局变量:在函数外部声明的变量或用global关键字在函数内部声明的变量
作用域:作用的范围
局部变量:作用范围在函数的内部
全局变量:作用范围横跨整个文件

1.局部变量的获取和修改

def func():
    a = 1
    #获取局部变量
    print(a)
    #修改局部变量
    a = 2
    print(a)
func()

2.全局变量的获取和修改

#例1:

c = 15
#获取
#修改
c = 78
print(c)

#在函数内部通过global 修改全局变量

def func():
    #如果不加global c 只能获取 不能修改
    #加了global c 告诉系统在函数内部允许修改全局变量c
    global c
    print(c)
    c = 90
func()
print("======全局变量=====")
print(c)
结果:

78

78

======全局变量=====

90

#例2:
#在函数内部通过global 定义全局变量
def func():
    global ff
    ff = 908
    print(ff)
func()
print(ff)

输出:

908

908

python特有:
如果外部存在该全局变量,那么利用golbal关键字,可以允许在函数内部修改全局变量
如果外部不存在该全局变量,那么利用global关键字,可以允许在函数内部定义全局变量
在使用global 关键字的时候,一般写在函数内部的第一行

四.locals()  globals()

#locals  globals

1.locals 获取当前作用域的所有变量

locals 如果在函数外面,获取locals()返回值打印之前,所有的内容
locals 如果在函数的里面,获取locals调用之前,所有的内容
#例1:
#获取打印返回值之前的所有内容
a = 10
b = 20
res = locals()
c = 20
print(res) 
d = 30
运行后可知d没有被存到locals()的内存中c是有的,如下为res的打印,是一个字典,没有d的键值对:

{'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x00000179AD15C2B0>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'C:/pystu/pystudy/Knight/test.py', '__cached__': None, 'a': 10, 'b': 20, 'res': {...}, 'c': 20}

#例2:

#获取locals调用之前的所有的内容
def func():
    f1 = 11
    f2 = 12
    res = locals()
    f3 = 13
    print(res)

func()
输出的结果:(f3没有到res内存中的)

{'f2': 12, 'f1': 11}

2.globals 只获取全局变量(无论在函数内外都只获取全局变量)

globals 如果在函数的外面,获取globals() 返回值打印之前,所有内容
globals 如果在函数的里面,获取globals调用之前,所有的内容

#例1:
a = 15
b = 15
res = globals()
c = 26
print(res)
d =27
#res的结果中,有c 没有d

#例2:
z1 = 5
z2 = 6
def func():
    f1 = 1
    f2 = 2
    f3 = 3
    res = globals()
    f4 = 6
    print(res)
z4 = 8
func() #res = globals()

z3 = 7
#因为f1,f2,f3,f4是局部变量所以都没有,然后是获取打印之前的所以没有z3

3.globals 动态创建全局变量

globals 返回的是系统的 全局命名空间的字典 在空间里面放的全局变量
#例:
dic = globals()
print(dic,type(dic))
dic['wangwen'] = 188
print(dic['wangwen'])

#已经在dic字典中了

#例2:
#globals 可以批量创建全局变量
def func():
    res = globals()
    for i in range(5):
        res["a%d" % (i)] = i
        '''
        "a%d" % (i) #字符串的格式化
      res['a0'] = 0
      res['a1'] = 1
      res['a2'] = 2
      res['a3'] = 3
      res['a4'] = 4        
        
        '''
func()
print(a0)
print(a1)
print(a2)
print(a3)
print(a4)

Python 基础之返回值与函数使用与局部变量和全局变量locals() 和 globals()的更多相关文章

  1. Python基础入门(5)- 函数的定义与使用

    定义函数 函数的定义 函数的分类 函数的创建方法 函数的返回return 函数的定义 将一件事情的步骤封装在一起并得到最终结果 函数名代表了这个函数要做的事情 函数体是实现函数功能的流程 函数可以帮助 ...

  2. 『Python基础』第39节 函数的返回值

    1. 函数的返回值 ​ 一个函数就是封装一个功能, 这个功能一般都会有一个最终结果的. ​ 比如写一个登录的函数, 最终登录是否成功你总得告诉我一声吧? ​ 还有咱们之前也用过 len() 这个函数, ...

  3. 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数

    [源码下载] 速战速决 (3) - PHP: 函数基础, 函数参数, 函数返回值, 可变函数, 匿名函数, 闭包函数, 回调函数 作者:webabcd 介绍速战速决 之 PHP 函数基础 函数参数 函 ...

  4. python -- 初始函数 函数的定义,函数的返回值以及函数的参数

    1.什么是函数,函数的定义及语法 2.函数的返回值 3.函数的参数 一.函数的定义及语法 函数的定义:定义了一个动作或者功能,是对功能的封装 语法: def 函数名( 形参列表 ):          ...

  5. Js基础知识5-函数返回值、函数参数、函数属性、函数方法

    函数返回值 所有函数都有返回值,没有return语句时,默认返回内容为undefined,和其他面向对象的编程语言一样,return语句不会阻止finally子句的执行. function testF ...

  6. day09-Python运维开发基础(函数收集参数、命名关键字参数与返回值、函数名的特殊使用及 全局/局部变量详解)

    1. 函数收集参数.命名关键字参数与返回值.函数名的特殊使用 # ### 默认形参 和 关键字实参 # 默认形参和 关键字实参 在写法上是一样 # 函数的定义处 """默 ...

  7. python基础学习(二)--函数

    return返回值: python函数都有返回值,函数体内无return,默认返回值None, 函数参数: 1.普通参数 严格按照顺序,将实际参数赋值给形式参数,一一对应. 例: def send(x ...

  8. python基础学习(十三)函数进阶

    目录 1. 函数参数和返回值的作用 1.1 无参数,无返回值 1.2 无参数,有返回值 1.3 有参数,无返回值 1.4 有参数,有返回值 2. 函数的返回值进阶 例子:显示当前的湿度和温度 例子:交 ...

  9. python基础学习(六)函数基础

    函数的基本使用 函数的定义 def 函数名(): 函数封装的代码 …… def 是英文 define 的缩写 函数名称 应该能够表达 函数封装代码 的功能,方便后续的调用 函数名称 的命名应该 符合 ...

随机推荐

  1. LeetCode 42接雨水 按行求解(差分+排序)

    按行求解的思路比较清晰明了,但是这个方法的复杂度高达O(heightSize*sum(height[i])),几乎高达O(N^2). 但是也并不是不可以解决,经观察我们可以发现,这个算法的缺点在于要遍 ...

  2. webpack 中使用 autoprefixer

    webpack中autoprefixer是配合postcss-loader使用的,首先安装相应资源: npm i -D style-loader css-loader postcss-loader a ...

  3. 动态规划: 最大m子段和问题的详细解题思路(JAVA实现)

    这道最大m子段问题我是在课本<计算机算法分析与设计>上看到,课本也给出了相应的算法,也有解这题的算法的逻辑.但是,看完之后,我知道这样做可以解出正确答案,但是我如何能想到要这样做呢? 课本 ...

  4. 让你的逼格瞬间提升的十个Python语法!

    Python 是一种代表简单思想的语言,其语法相对简单,很容易上手.不过,如果就此小视 Python 语法的精妙和深邃,那就大错特错了.本文精心筛选了最能展现 Python 语法之精妙的十个知识点,并 ...

  5. 【代码学习】PYTHON 异常处理

    一.什么是异常 在程序执行过程中可能会影响程序的正常执行,一般情况下,在python无法正常处理程序时就会发生一个异常 当python脚本发生异常时我们需要捕获处理他,否则程序会终止执行 二.异常处理 ...

  6. 【代码总结】PHP面向对象之常见的关键字和魔术方法

    一.关键字的使用 1.final关键字 只能用来修饰类 和 成员方法  不能修饰成员属性 被final修饰的类不能被继承 用final修饰的成员方法 不能被子类覆盖(重写) <?php // f ...

  7. mysql中date与datetime的区别

    date类型可用于需要一个日期值而不需要时间部分时.MySQL 以 'YYYY-MM-DD' 格式检索与显示date值.支持的范围是 '1000-01-01' 到'9999-12-31'. datet ...

  8. kafka connector

    Kafka Connect 是一种用于在 Kafka 和其他系统之间可扩展的.可靠的的流式传输数据的工具.它使得能偶快速定义将大量数据集合移入和移除 kafka 连接器变得简单. kafka conn ...

  9. webpack原理类型问题

    1.webpack底层原理 (实现一个webpack) 步骤:1.拿到入口文件的代码并读出来转化为js对象(抽象语法术parser)2.拿到所有模块的依赖 ‘./message.js’,放进数组中 引 ...

  10. PCSearch

    1.hinstance:GetModuleHandle(NULL) 2.窗口直角: 方法1:在Oncreate函数中添加以下代码,然而这种方法会导致窗口阴影无效 LONG styleValue = : ...