我的编程空间,编程开发者的网络收藏夹
学习永远不晚

python基础四:函数

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

python基础四:函数

def sum(a,b):
    result = a+b
    print(result)
num1 = int(input("num1:"))
num2 = int(input("num2:"))
sum(num1,num2)

a,b为形参,形参不占内存空间

def test():
    a = 11
    b = 22
    c = 33
    return a
    return b
    return c
num = test()
print(num)
#注意:函数只要return了,那么函数也就执行完成了,所以上面的return b,c都是不会执行的

总结:

返回值数=0:返回None

返回值数=1:返回object

返回值数>1:返回tuple

wendu = 0
def get_wendu():
    global wendu
    #使用global用来对一个全局变量的声明,那么这个函数中的wendu=33就不是定义一个局部变量,
    #而是对全局变量进行修改
    wendu = 33
def print_wendu():
    print("温度是%d" % wendu)
get_wendu()
print_wendu()

全局变量的位置:

a = 100
def test():
    print("a = %d" % a)
    print("b = %d" % b)
    print("c = %d" % c)
b = 200
test()
c = 300

输出结果为:

a = 100
b = 200
Traceback (most recent call last):
  File "test.py", line 7, in <module>
    test()
  File "test.py", line 5, in test
    print("c = %d" % c)
NameError: name 'c' is not defined

由上面输出的结果可知全局变量定义的位置只要定义在函数调用之前即可被函数使用!

全局变量与局部变量重名的问题:

a = 100
def test():
    a = 200
    print("a = %d" % a)
def test2():
    print("a = %d" % a)
test()
test2()

输出结果:

a = 200
a = 100

从上面的输出结果可知:函数内定义的变量只要前面没有加global那么该变量就是局部变量,函数内会优先读取局部变量!

def sum_2_nums(a,b,*args):
    print(a)
    print(b)
    print(args)
sum_2_nums(11,22,33,44,55)

输出结果:

11
22
(33, 44, 55)

上面输出的(33,44,55)就是*args参数
这里注意:
如果上面的函数传递的参数是sum_2_nums(11,22,33),那么在打印args参数时会输出(33,),元组中如果只有一个元素,那么后面的逗号不能省略
args参数必须放在最所有形参数的最后面

def test(a,b,c=33,*args,**kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)
test(11,22,33,44,['a','b'],{"name":"Poe","age":18},task=99,done=89)

输出结果:

11
22
33
(44, ['a', 'b'], {'name': 'Poe', 'age': 18})   #args
{'done': 89, 'task': 99}    #kwargs

**kwargs对应实参中带变量名的传参!

如何取args参数中的值:

def test(a,b,c=33,*args ):
    print("="*30)
    print(a)
    print(b)
    print(c)
    print(args)
    result = a + b
    for num in args:
        result += num
    print("result = %d" % result)
test(11,22,33,44,66,99)
test(11,22)
test(11,22,33)

输出结果:

==============================
11
22
33
(44, 66, 99)
result = 242
==============================
11
22
33
()
result = 33
==============================
11
22
33
()
result = 33

先来看一个函数:

def test(a,b,c=33,*args,**kwargs):
    print(a)
    print(b)
    print(c)
    print(args)
    print(kwargs)

A = (44,55,66)
B = {"name":"Poe","age":18}
test(11,22,33,A,B)

输出结果:

11
22
33
((44, 55, 66), {'age': 18, 'name': 'Poe'})
{}

从上面的输出结果可知:A的元组与B的字典当做参数传到函数时,对应的形参是args,现在的需求是让A变量对应args参数,让B变量对应*kwargs参数,如何做呢?
在调用函数时:test(11,22,33,
A,**B)
输出结果:

11
22
33
(44, 55, 66)
{'name': 'Poe', 'age': 18}

实参中一个号的作用是将元组进行拆包,拆成44,55,66传递给形参,二个号的作用是将字典拆包,拆成KEY=VALUE传递给形参,有多少个就拆成多少个

python中除了数字,字符串,元组是不可变类型,其它的都是可变类型
可变类型在字典中不允许当作键,因为字典的保存方法比较特殊,如:

info = {"name":"Poe",100:"haha"}

在保存时会将键name哈希成一个值,比如:12121212,再保存这个哈希值与value值

def getNums(num):
    if num == 1:
        return 1
    result = num * getNums(num-1)
    return result
result = getNums(4)
print(result)

上面函数的执行过程:
python基础四:函数
递归的问题:
一定要有递归的出口,否则函数会一直执行,直到内存被占满,最后溢出!

先来看一段代码:

nums = [11,22,3,1,5,665,34,64,2]
nums.sort()
print(nums)

输出结果:

[1, 2, 3, 5, 11, 22, 34, 64, 665]
nums = [11,22,3,1,5,665,34,64,2]
nums.sort()
print(nums)
nums.sort(reverse=True)
print(nums)

输出结果:

[1, 2, 3, 5, 11, 22, 34, 64, 665]
[665, 64, 34, 22, 11, 5, 3, 2, 1]

那么如果一个列表中所有的元素都是字典呢?如何按字典中的键或值来排序呢?

infos = [
    {"name":"Poe","age":20},
    {"name":"Andy","age":19},
    {"name":"Jet","age":21}
]
infos.sort(key=lambda x:x['name'])
print(infos)

输出结果:

[{'age': 19, 'name': 'Andy'}, {'age': 21, 'name': 'Jet'}, {'age': 20, 'name': 'Poe'}]

如果要按字典中的age进行排序呢?

infos.sort(key=lambda x:x['age'])
def test(a,b,func):
    result = func(a,b)
    return result
num = test(11,22,lambda x,y:x+y)
print(num)

匿名函数的应用:

def test(a,b,func):
    result = func(a,b)
    return result
func_new = input("请输入一个匿名函数:")
func_new = eval(func_new)   #将输入进来的字符串:lambda x,y:x+y变成一个函数
num = test(11,22,func_new)
print(num)

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

python基础四:函数

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

python基础四:函数

def sum(a,b): result = a+b print(result)num1 = int(input("num1:"))num2 = int(input("num2:"))sum(num1,num2)a,b为形参,形
2023-01-31

Python基础函数

join()函数的用法 join()函数连接字符串数组。将字符串、元组、列表中的元素以指定的字符(分隔符)连接生成一个新的字符串语法:'sep'.join(seq)参数说明sep:分隔符。可以为空seq:要连接的元素序列、字符串、元组、字典
2023-01-31

Python基础:Python函数

一、函数是python中使用最高的对象。        函数定义的简单规则 :        1、用def定义,接着是函数名和参数和冒号,格式:        2、函数内部代码块需要缩进        3、使用return返回函数值,默认返
2023-01-31

python-函数基础

函数简介定义:就是具有特定功能的一段代码优点:解决代码的重复书写可以将功能的实现着和使用者分开,提高开发效率分类:库函数:print、input、abs等自定义:用户自己封装的函数函数使用定义函数格式def 函数名([参数列表]):
2023-01-30

Python随笔(四)、python基础

05 python s12 day4 迭代器原理及使用什么是迭代:可以直接作用于for循环的对象统称为可迭代对象(Iterable)。*可以被next()函数调用并不断返回下一个值的对象称为迭代器(Iterator)。所有的Iterabl
2023-01-31

python之基础篇(四)

防伪码:忘情公子著本篇我们来说说python的内置对象类型及其运算。  python有许多的内置类型,我们为什么要使用内置类型呢?python编程时是尽量去使用自定义类型还是尽可能多的使用内置类型呢?  内置类型对python本身来讲它的理
2023-01-31

python基础及函数1

Python的程序执行方式:Python的程序编辑窗口、Python的解释器提示符。python常量:×××、实型(浮点型)、字符串型。Python数据类型:数值类型、字符串类型、布尔类型、复合数据类型  数值类型:整型(0b/0B、0o/
2023-01-31

Python基础【高阶函数】

map(fun,seq)将seq中的元素依次作为参数传入fun,返回由函数返回值组成的新的列表。python3:返回一个map对象python2:返回列表可以用list将对象转换为列表进行调用代码: def fun(a):
2023-01-31

Python基础之(七)函数

建立函数在Python中,规定了一种定义函数的格式,下面的举例就是一个函数,以这个函数为例来说明定义函数的格式和调用函数的方法。def add_function(a, b): #冒号必须 c = a + b #缩进必须 retur
2023-01-31

python基础-函数(一)--pyth

python基础---函数(一)目录 python基础---函数(一)1.函数的定义2.函数 的参数详解3.return4.lambda匿名函数1.函数的定义function 功能,函数 函数就是对代码进行一个封装,把实现某一功能的
2023-01-31

python基础之 函数的参数

  一、形参和实参是什么?  函数的参数分为形式参数和实际参数,简称形参和实参:  形参即在定义函数时,括号内声明的参数。形参本质就是一个变量名,用来接收外部传来的值。  def func(x,y): #x和y为形参  print(x,y)
2023-06-01

Python基础:自定义函数

函数的形式:def name(param1, param2, ..., paramN): statements return/yield value # optional和其他需要编译的语言(比如 C 语言)不一样的是,def
2023-01-31

Python基础:lambda 匿名函数

格式lambda argument1, argument2,... argumentN : expressionsquare = lambda x: x**2print(square(2))与常规函数区别  匿名函数 lambda 和常规函
2023-01-31

函数基础

目录 函数体系 什么是函数?(掌握) 为何用函数(掌握) 如何用函数(掌握) 注册功能函数 登录功能函数 函数定义阶段
2023-01-31

Python基础函数有哪些

本篇内容介绍了“Python基础函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、标准函数 def你可以定义一个由自己想要功能的函
2023-06-02

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

一.函数的定义def 函数名(参数列表): 函数体 return语句return语句不写或后边不加任何对象即为return None二.函数的参数无参数def func1(): print("没有参数")一个参数def f
2023-01-30

编程热搜

  • Python 学习之路 - Python
    一、安装Python34Windows在Python官网(https://www.python.org/downloads/)下载安装包并安装。Python的默认安装路径是:C:\Python34配置环境变量:【右键计算机】--》【属性】-
    Python 学习之路 - Python
  • chatgpt的中文全称是什么
    chatgpt的中文全称是生成型预训练变换模型。ChatGPT是什么ChatGPT是美国人工智能研究实验室OpenAI开发的一种全新聊天机器人模型,它能够通过学习和理解人类的语言来进行对话,还能根据聊天的上下文进行互动,并协助人类完成一系列
    chatgpt的中文全称是什么
  • C/C++中extern函数使用详解
  • C/C++可变参数的使用
    可变参数的使用方法远远不止以下几种,不过在C,C++中使用可变参数时要小心,在使用printf()等函数时传入的参数个数一定不能比前面的格式化字符串中的’%’符号个数少,否则会产生访问越界,运气不好的话还会导致程序崩溃
    C/C++可变参数的使用
  • css样式文件该放在哪里
  • php中数组下标必须是连续的吗
  • Python 3 教程
    Python 3 教程 Python 的 3.0 版本,常被称为 Python 3000,或简称 Py3k。相对于 Python 的早期版本,这是一个较大的升级。为了不带入过多的累赘,Python 3.0 在设计的时候没有考虑向下兼容。 Python
    Python 3 教程
  • Python pip包管理
    一、前言    在Python中, 安装第三方模块是通过 setuptools 这个工具完成的。 Python有两个封装了 setuptools的包管理工具: easy_install  和  pip , 目前官方推荐使用 pip。    
    Python pip包管理
  • ubuntu如何重新编译内核
  • 改善Java代码之慎用java动态编译

目录