Python基础——函数
程序员文章站
2022-03-30 09:27:44
python函数1.定义函数使用关键字def告诉Python说要定义一个函数。def 后面跟函数名和()和分号:后面所有的缩进构成函数体def sayhello(): print('hello')#函数调用sayhello()2.实参和形参形参——函数完成工作时所需要的信息,在函数定义中的括号里实参——调用函数时传递给函数的信息2.1 传递实参向函数传递实参的方法有很多,可以用位置实参,要求实参的顺序和形参的顺序相同;可以用关键字实参,其中每个实参都由变量名和值...
python函数
1.定义函数
- 使用关键字def告诉Python说要定义一个函数。
- def 后面跟函数名和()和分号:
- 后面所有的缩进构成函数体
def sayhello():
print('hello')
#函数调用
sayhello()
2.实参和形参
- 形参——函数完成工作时所需要的信息,在函数定义中的括号里
- 实参——调用函数时传递给函数的信息
2.1 传递实参
- 向函数传递实参的方法有很多,可以用位置实参,要求实参的顺序和形参的顺序相同;可以用关键字实参,其中每个实参都由变量名和值组成;还可以用列表和字典。
2.1.1 位置实参
基于实参的顺序将实参和形参关联起来。
def output(boy,gril):
print(boy+" likes "+gril)
b='kiki'
g='niki'
#b作为第一个参数,他的值传递给boy,g的值传递给第二个参数gril
output(b,g)
#这样子的输出的男女关系就是相反的
output(g,b)
2.1.2 关键字实参
关键字实参时传递给函数的名称-值对。直接在实参中将名称和值关联起来,因此向函数传递实参时不会混淆。不需要考虑传递时实参的顺序。
output(boy='niki',gril='nene')
la='niki'
li='nene'
output(boy=li,gril=li)
2.1.3 默认值
定义函数时,可以给形参指定默认值。在调用函数时给形参提供实参时,python将使用指定的实参值;若没有给函数传递实参,就使用默认值
def output(boy='kaka',gril='keke'):
print(boy+" likes "+gril)
b='kiki'
g='niki'
#b作为第一个参数,他的值传递给boy,g的值传递给第二个参数gril
output(b,g)
#这样子的输出的男女关系就是相反的
output(g,b)
output()
- **注:**使用默认值时,在形参列表中必须先列出没有默认值的形参,再列出有默认值的形参,这样让python依然能够正确的解读位置实参
- 平时使用可混用。
3.返回值
-
普通返回值示例:
def hehe(x): x=x+1 return x print(hehe(1))
-
**返回字典或列表:**python函数返回各种数据类型,还很简单。
def build_person(first_name,last_name,age=''): person={'first_name':first_name,'last_name':last_name} if age: person['age']=age return person p=build_person('hh','haha',100) print(p)
4.传递列表
感觉没啥东西啊,,,就是把列表作为参数传进去,还能在函数中对列表进行一系列操作。。。。
函数中对传入列表的操作是永久的。
-
禁止函数修改列表的方法:
向函数传递列表的副本而不是原件。
-
那怎么传递列表的副本呢?
用切片表示法。
function_name(List_name[:])
def print_models(unprint_desings[:],compeleted_models): return #但是这种方法会占用内存和增加运行时间,所以如果不是非常的必要,最好不要创建副本
5.传递任意数量的实参
python允许函数从调用语句中收集任意数量的实参(NB)
5.1 任意数量的值
def stu_infor(*stu):
print(stu)
- 形参中的*告诉Python创建一个名为stu的空元组,并将所有收到的值存入这个元组中,然后函数中就可以对元组中的元素进行操作。
>>> def stu_infor(*stu):
... print(stu)
...
>>> stu_infor('jjjjj','llllll',)
('jjjjj', 'llllll')
- 实际中可以将使用位置实参和任意数量实参相结合,但要注意,要将可接受任意数量实参的形参放在形参列表的最后。
5.2 任意数量的键值对(关键字实参)
def stu_infor(**stu):
print(stu)
return
- 两个** 告诉Python创建一个空字典,并将所有的名称—值对放入这个字典中;在函数中可以进行对字典的操作。
>>> stu_infor('jjjjj','llllll',)
('jjjjj', 'llllll')
>>> def stu_infor2(**stu):
... print(stu)
... return
...
>>> stu_infor2('name'='kiki','ID'=123456,'grade'=100)
File "<stdin>", line 1
SyntaxError: keyword can't be an expression
>>> stu_infor2('name':'kiki','ID':123456,'grade':100)
File "<stdin>", line 1
stu_infor2('name':'kiki','ID':123456,'grade':100)
^
SyntaxError: invalid syntax
>>> stu_infor2(name='kiki')
{'name': 'kiki'}
>>> stu_infor(name='kiki',ID=2191421813,grade=90)
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: stu_infor() got an unexpected keyword argument 'name'
>>> stu_infor2(name='kiki',ID=2191421813,grade=90)
{'name': 'kiki', 'ID': 2191421813, 'grade': 90}
6.函数与模块
函数优点之一——将函数的代码块和主程序分离。将代码模块化。介绍几种Python中导入函数模块的方法
6.1 创建模块
- 模块是扩展名为.py的文件,里面包含要导入到程序中的代码。
6.2 导入整个模块
-
用关键字import导入整个模块
-
使用模块中的函数时,格式为模块名.函数名(参数),modulename.functionname(a,b,c…)
import os BASE_DIR = os.path.dirname(os.path.dirname(os.path.abspath(__file__)))
6.3 导入特定的函数
- 可以导入模块中的特定函数,语法如下:
from module_name import function_name
from module_name import function_name0,function_name1,function_name2
function_name0()
function_name1()
6.4 使用as
-
使用as给函数指定别名
from hahahah import hehe as he he(1,2,3)
-
使用as给模块指定别名
import hahahaha as ha ha.hehe(1,2,3)
6.5 导入模块所有的函数
-
使用* 运算符告诉Python将模块中所有的函数都复制到这个程序文件中。
from hahahah import*
本文地址:https://blog.csdn.net/weixin_46057260/article/details/107162169
上一篇: 前端基础01 HTML
下一篇: 测开总结