网站性能检测评分
注:本网站页面html检测工具扫描网站中存在的基本问题,仅供参考。
python中函数参数
python学习笔记(七)-函数相关(非常重要) 行业视频课程
函数可以将固定的功能逻辑进行整合结构的方法,可以将部分代码块进行隔离,
提高程序的复用性,从而提高程序的开发效率。
函数返回值
默认情况下,函数不会输出数据,而是将数据值返回给调用的变量。
如果没有return,函数默认返回None
示例一
写一个函数,给2个参数,返回2个参数的和,test_fun_1.py
def fun1(x,y):
return x+y
a=fun1(2,3)
print(a)
运行结果为
进阶学习
刚才的示例中,参数是固定的,如果我们需要在执行程序的时候指定参数值的话,就可以提高程序的灵活性,下面我们要将示例一进行调整,可以实现在命令行中给定参数,从而实现调用函数进行计算的功能。
这里我们先学习一下python中的一个标准库sys,在里面引用argv来实现参数的调用。
这里我们先做一个测试程序来了解程序是如何接收参数的。
我们先做一个程序test_argv.py 内容如下
#!/usr/bin/env python3
import sys
print("看看我接收到的参数:")
print(sys.argv)
运行一下程序,后面跟几个参数,看看效果
python3 test_argv.py abc dec 123
看到运行结果了吗?这里我来解释一下
首先程序后面跟了3个参数,分别是 abc def 和123
程序打印出来的结果是一个列表,
列表的第一个值是程序本身的文件名 (表示为arg[0])
列表的第二个值是第一个参数 (表示为arg[1])
列表的第三个值是第二个参数 (表示为arg[2])
以上讲的内容都看懂了吗?
好了,根据刚才我们掌握的内容,现在我们要对示例一的代码进行改进,从而实现通过程序外部对参数的传递功能。
#这里需要注意的是,程序传递过来的是字符串,需要转换成整数才可以
i=int(sys.argv[1])
j=int(sys.argv[2])
a=fun1(i,j)
运行一下,看看效果
5加7的结果是12,说明程序是有效的。
总结一下,通过本文,我们可以掌握了python函数的使用方法及python外部参数的调用方法。
3分钟带你设计自己的Python函数 营销视频课程
本期笔记内容综述
Python模块的调用
Python的函数设计
零碎时间Python入门
1.Python模块的调用
Python模块介绍
模块介绍
模块的调用
模块的调用
模块调用的常用方式
模块的调用&重命名
模块的通用模式
模块通用模式
2.Python函数自定义方法
函数自定义方法介绍
选自
自定义函数的完整格式
def 函数名(参数列表):
缩进
缩进 return '返回值'
其中关键字def,参数列表的圆括号( )和冒号必不可少;
意味着没有参数的时候,包括参数的圆括号必须写上;
圆括号后面必须有冒号,而冒号下一行需四行缩进;
参数列表值和返回值,甚至return都可以没有;
调用函数的方法:只要函数名加上圆括号带上参数即可。
函数定义
代码运行[1]
代码运行结果
代码运行[2]
代码运行结果[2]
以一个问题结尾
问题所在
问题1:将movies列表的信息提取结果如下:
结果展示
问题2:如果movies列表内容继续增加一层该如何办?
问题3:[58]的代码好像有一部分都是重复的,该如何缩减呢?
下期笔记预告:解决函数的迭代问题
好了,本期笔记分享内容到此结束,茄子暂别。祝愿生活愉快!
Python函数学习之参数列表解包 营销视频课程
The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional arguments. For instance, the built-in range() function expects separate start and stop arguments. If they are not available separately, write the function call with the *-operator to unpack the arguments out of a list or tuple:当参数已经在列表或元组中时,相反的情况发生,但需要为需要单独位置参数的函数调用解包。例如,内置的Range()函数需要单独的开始和停止参数。如果它们单独不可用,则用*-运算符编写函数调用,以从列表或元组中解开参数:
>>> list(range(3, 6)) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> list(range(*args)) # call with arguments unpacked from a list
[3, 4, 5]
In the same fashion, dictionaries can deliver keyword arguments with the **-operator:以同样的方式,字典可以用**运算符传递关键字参数 即**-操作符来解包参数:
>>> def parrot(voltage, state='a stiff', action='voom'):
... print("-- This parrot wouldn't", action, end=' ')
... print("if you put", voltage, "volts through it.", end=' ')
... print("E's", state, "!")
...
>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
>>>parrot(**d)
-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !
python之函数默认参数及注意点 营销视频课程
前言
在python中,函数的参数有多种类型,有默认参数、可变参数、关键字参数、命名关键字参数等,本文主要深入讲解默认参数。对于默认参数,其实在功能上就是为了简化函数调用。
默认参数
1、格式
2、说明及注意点
a. 在使用缺省参数后,对于函数的必填参数必须在前,默认参数在后。
b. 默认参数在一个函数中可以有多个。
c. 当一个函数中的某个参数的改动不大,就可以考虑将这个参数设置为默认参数,比如说一个人的民族,这种参数就可以设置为缺省参数。
案例a
小总结:从上图可以看出,对于num2这个参数如果你要传入的参数是100,则可传可不传,都是可以的。这个也是默认参数给我们带来的方便之处。
python中print语句
结论:其实在python中的print语句就是采用了缺省参数。
使用可变类型作为缺省参数
1、代码举例
结论:上图中的程序运行结果是[10],[20], 但是实际上结果是[10],[10,20]。问题的原因主要在于scores的类型是一个列表,本身是一个可变类型,那么对于列表的append方法添加元素的时候并不会对socres进行重新创建一个新的列表,那么也就是说,你两次append元素,其实都是对同一个列表进行操作。
总结
对于默认参数,如果是不可变类型,那么多次对函数的调用是没有问题的。
对于默认参数,如果是可变参数,那么对于参数的传递,就要特别考虑结果是正确性,所以对于这种情况,就必须在调用函数的时候就要重新初始化一次列表。
Python函数学习之参数列表解包 企业视频课程
The reverse situation occurs when the arguments are already in a list or tuple but need to be unpacked for a function call requiring separate positional arguments. For instance, the built-in range() function expects separate start and stop arguments. If they are not available separately, write the function call with the *-operator to unpack the arguments out of a list or tuple:当参数已经在列表或元组中时,相反的情况发生,但需要为需要单独位置参数的函数调用解包。例如,内置的Range()函数需要单独的开始和停止参数。如果它们单独不可用,则用*-运算符编写函数调用,以从列表或元组中解开参数:
>>> list(range(3, 6)) # normal call with separate arguments
[3, 4, 5]
>>> args = [3, 6]
>>> list(range(*args)) # call with arguments unpacked from a list
[3, 4, 5]
In the same fashion, dictionaries can deliver keyword arguments with the **-operator:以同样的方式,字典可以用**运算符传递关键字参数 即**-操作符来解包参数:
>>> def parrot(voltage, state='a stiff', action='voom'):
... print("-- This parrot wouldn't", action, end=' ')
... print("if you put", voltage, "volts through it.", end=' ')
... print("E's", state, "!")
...
>>> d = {"voltage": "four million", "state": "bleedin' demised", "action": "VOOM"}
>>>parrot(**d)
-- This parrot wouldn't VOOM if you put four million volts through it. E's bleedin' demised !