• 【Python学习笔记】函数


    1. 函数组成

    Python中,我们是这样定义函数的:

    def function(para1, para2):
        print("func start")
        print(para1)
        print(para2)
        print("func end")
        print("让技术总监面试 求职者")
        return "func return"
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    def关键字 表示定义一个函数

    后面是函数的名字,紧接着后面需要一个括号 ,这个括号中间,根据需要可以有 参数。函数要返回结果,就必须要使用 return 关键字,后面加上返回的结果对象。

    最后是一个冒号,下面的缩进的代码表示这个函数名字代表的具体动作是什么,称之为函数体

    函数体的代码是需要缩进的。建议缩进四个空格

    这样定义好了以后,后面的代码要指代这个面试的流程,只需要写名字 function 就行了。 比如:

    print(function)
    
    • 1

    运行一下,发现会输出内容如下

    <function function at 0x05292468>
    
    • 1

    表示这个 function 是 一个函数类型的对象。

    特别要注意的是,解释器执行到 定义函数 的语句时,并不会执行函数体里面的代码。

    要执行函数体里面的代码,必须 调用函数

    2. 函数调用

    在函数名后面加上括号,比如,要执行 function 这个名字代表的动作,就在后面加上括号 function()

    如下:

    function("para1","para2")
    # 运行结果
    $ python main.py
    func start
    para1
    para2
    func end
    func return
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    function() 就叫 调用函数 function ,有时也叫做 执行函数 function。

    当解释器 执行到这行调用函数的代码时,就会跑到 函数 function 里面,去执行函数里面的语句。

    函数必须先定义,后面才能调用。

    如果一个函数定义,里面并没有写return语句,像这样

    def func1():
        print('你好')
    print(func1())    
    # 运行结果
    $ python main.py
    你好
    None
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    那么该函数调用后会返回一个None对象。 None对象是Python内置的,表示没有数据内容的对象。

    3. 缺省值参数

    可以在定义函数的时候,给它加上缺省值,像下面这样:

    def  func(para1, para2=60):
        ...
    
    • 1
    • 2

    这样,在调用这个函数的时候,如果para2参数还是传入60 就可以不用写了,像这样

    func(80)
    
    • 1

    解释器发现该函数参数para2有缺省值,就会自动帮我们传入缺省值60 给参数para2。

    当然如果我们调用的时候传入了参数,比如像下面这样,解释器就会将 70 传给参数score。

    func(50, 70)
    
    • 1

    函数的参数定义,一旦有缺省值后,后面所有的参数必须都有缺省值

    下面这样的定义是错误的

    def  func(arg1, arg2, arg3=3, arg4):
        ...
    
    • 1
    • 2

    arg4 前面的参数 arg3 已经有缺省值,所以必须也要有缺省值,比如

    def  func(arg1, arg2, arg3=3, arg4='hello'):
        ...
    
    • 1
    • 2

    4. 指定参数名调用函数

    这样的一个函数

    def  func(arg1, arg2, arg3=3, arg4='hello'):
        print(arg1)
        print(arg2)
        print(arg3)
        print(arg4)
    
    • 1
    • 2
    • 3
    • 4
    • 5

    我们调用的时候,可以这样

    func(1,2,3,'hello')
    
    • 1

    也可以这样 指定参数名 去调用

    func(arg1=1,arg2=2,arg3=3,arg4='hello')
    
    • 1

    指定参数名调用的时候,可以颠倒参数的次序

    func(arg2=1,arg3=2,arg1=3,arg4='hello')
    
    • 1

    也可以这样混合使用

    func( 1, 2, arg3=3,arg4='hello')
    
    • 1

    但是一旦某个参数指定了参数名,后面所有的参数必须指定参数名!!!

    5. 变量的有效范围

    局部变量

    定义在某个函数内部的变量,称之为 局部变量

    函数的参数变量也是局部变量。

    局部变量有效范围只能是该函数内部。

    全局变量

    定义在所有函数外部的变量,称之为 全局变量

    全局变量的有效范围是整个模块文件。

    函数内部代码可以访问全局变量的。

    范围覆盖

    大家再来看这样一个例子

    upChars = '零壹贰叁肆伍陆柒捌玖'
    def getZh(num):
        upChars = '0123456789'
        print('对应的字符是:' + upChars[num])
    getZh(5) 
    # 运行结果
    $ python main.py
    对应的字符是:5
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    在函数内部,如果局部变量和全局变量同名,使用的是局部变量。

    6. 常见内置函数

    我们通常会把常用的代码放到函数里面,这样要使用这些代码 ,只需要调用那些函数就可以了。

    Python的设计者 为我们总结了一些常用的函数,放到了Python解释器中,这些函数我们直接就可以使用。

    前面我们学过的print 就是其中之一。

    内置函数可以在Python的官方文档查看到,点击这里查看官方文档

    abs()	dict()	help()	min()	setattr()
    all()	dir()	hex()	next()	slice()
    any()	divmod()	id()	object()	sorted()
    ascii()	enumerate()	input()	oct()	staticmethod()
    bin()	eval()	int()	open()	str()
    bool()	exec()	isinstance()	ord()	sum()
    bytearray()	filter()	issubclass()	pow()	super()
    bytes()	float()	iter()	print()	tuple()
    callable()	format()	len()	property()	type()
    chr()	frozenset()	list()	range()	vars()
    classmethod()	getattr()	locals()	repr()	zip()
    compile()	globals()	map()	reversed()	__import__()
    complex()	hasattr()	max()	round()	 
    delattr()	hash()	memoryview()	set()	 
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14

    常用的几个

    int('1000')   # 返回整数1000
    int(3456.23)  # 返回整数3456
    float('1000')    # 返回 浮点数 1000.0
    float('6.345')   # 返回 浮点数 6.345
    str(1000)   # 返回字符串 '1000'
    str(1000.23)   # 返回字符串 '1000.23'
    len('你好!') # 计算字符串的长度,返回值 3
    type(3)        # 返回  
    type('hello')  # 返回  
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9

    **关于终端输入 input **

    input函数返回值是用户输入的字符串,不包括最后的回车符。字符串是不能直接进行数学运算的

    要解决这个问题,可以使用两个内置函数, int 和 str

  • 相关阅读:
    [Python私活案例]24行代码,轻松赚取400元,运用Selenium爬取39万条数据
    如何用pycharm打开virtualenv、virtualenvwrapper、conda 创建环境
    Qt 游戏场景 & 图元
    Jmeter性能测试(P1)
    linux gcc专题(三) gdb调试
    华为荣耀软开秋招面经问题整理
    干货!英语常用口语1000句大全(完整版)!
    Prometheus|云原生|grafana的admin用户密码重置备忘记录
    Java 操作RestHighLevelClient查询详解
    智能宠物喂食器方案软硬件设计
  • 原文地址:https://blog.csdn.net/qq997758497/article/details/133838403