首页 > 编程语言 >python学习笔记——函数

python学习笔记——函数

时间:2024-04-05 14:29:50浏览次数:18  
标签:function 函数 python 笔记 print test def name

 2. 函数****

2.1. 定义****

一段可以被另外一段代码执行的程序

2.2. 语法****

def 函数名():

函数体--语法

return 需要的返回值

2.3. 调用****

函数名()



# 定义函数*
def test_function():
print('我是一个测试函数')
# 调用函数*

if name == 'main':
test_function()

我是一个测试函数

2.4. 参数****

不传会报错

2.4.1. 顺序传参 必传****

def 函数名(参数1,参数2...)

函数体

函数名(传参1,传参2)



def test_function(name, age):
print('我是一个测试函数')*
*if name == 'main':
test_function('Alison', '25')

2.4.2. 关键字参数 - 必传****

def 函数名(参数1,参数2...)

函数体

函数名(参数1=传参1,参数2=传参2)

def test_function(name, age):
print('我是一个测试函数')
if name == 'main':
test_function(name='Alison', age='25')

2.4.3. 不定长参数 必传****

2.4.3.1.  args***

可以传任意多个参数进来

并以tuple接收

def test_function(*args):
print(args)
if name == 'main':
test_function('name','age','test')

('name', 'age', 'test')
2.4.3.2.  kwargs**

不确定需要传递多少个参数的时候,使用关键字参数的形式传递

并以dict接收

def test_function(**kwargs):
print(kwargs)
if name == 'main':
test_function(name='Alison', age=25, sex='女')

{'name': 'Alison', 'age': 25, 'sex': '女'}
2.4.3.3.  args,kwargs*

位置必须args在前,kwargs在后

分别以tuple、dict接收

def test_function(*args,**kwargs):
print(args)
print(kwargs)
if name == 'main':
test_function(1,2,3,4,5,name='Alison', age=25)

(1, 2, 3, 4, 5)

{'name': 'Alison', 'age': 25}

2.4.4. 默认参数****

函数定义的时候就给一个默认值

如果函数调用的时候传入了参数,就是用传入的参数;反之,则使用默认参数

默认参数可以不传递

def test_function(name='Alison',age=25):
print(name,age)
if name == 'main':
test_function('Taylor')



Taylor 25

2.4.5. 拆包****

用于参数传递

1. *

2. **

*args

def test_function(*args):
print(args)
list = [1,2,3,4]
test_function(*list)

(1, 2, 3, 4)



**kwargs

def test_function(**kwargs):
print(kwargs)

dict = {'key1':'val1','key2':'val2'}
test_function(dict) #相当于('key1'='val1','key2'='val2')

{'key1': 'val1', 'key2': 'val2'}

2.5. return返回值****

如果需要返回值,就写return返回内容

反之,就不写,默认返回none

Return是函数执行结束的标识,函数执行遇到return语句,就会结束执行

def test_function(name):
return name
if name == 'main':
result =test_function('张三')
print(result)

张三 



def test_function():
for i in range(10): #0~9*
***print(i)
if i == 3:
return 0
elif i == 4:
print('test')

test_function()

0

1

2

3

2.6. 变量的作用域****

2.6.1. 局部变量****

定义在函数里面,仅限包含的函数可以使用

2.6.2. 全局变量****

定义在函数外面,供全局函数使用

num = '全局变量'
def test_function1():
num = '局部变量'
print(num)
def test_function2():
print(num)

test_function1()
test_function2()

局部变量

全局变量

2.6.3. Global(了解)****

(更好用的方法是 类:类属性)

将局部变量设置成全局变量

语法:global 变量名

注意:只能定义,不能直接赋值,否则会报错

def function():
global test_str
test_str = 'test'
print(test_str)

def function2():
function() #只有在函数运行起来才会在内存中去创建变量,否则代码没运行,直接调用会出错
print(test_str)

function2()

test

test

2.7. 常用函数****

2.7.1. range()****

生成一个从0到x的序列对象,左闭右开

参数:[0、4,1]

1. start:默认为0

2. Stop:必传参

3. step:默认为1,同切片

用途:利用下标操作list

list_1 = ['a', 'b', 'c', 'd']
for k in range(len(list_1)):   # k: 下标,通过下标打印*
***print(list_1[k])

2.7.2. Isinstance()****
判断一个函数对象是否是一个已知类型,返回布尔值

num = 1
res = isinstance(num,int)
print(res)

True

2.7.3. Zip()****

Zip(列表1,列表2)****

def test():
list1 = ['name', 'sex', 'age']
list2 = ['Alison', 'F', '25']
key_val = zip(list1, list2)
print(list(key_val))
if name == 'main':
test()

[('name', 'Alison'), ('sex', 'F'), ('age', '25')]

标签:function,函数,python,笔记,print,test,def,name
From: https://blog.csdn.net/2401_83060956/article/details/137275059

相关文章

  • 大语言模型LLM《提示词工程指南》学习笔记01
    文章目录大语言模型LLM《提示词工程指南》学习笔记01以下是使用不同LLM提供程序时会遇到的常见设置:标准提示词应该遵循以下格式:提示词要素大语言模型LLM《提示词工程指南》学习笔记01提示工程(PromptEngineering)是一门较新的学科,关注提示词开发和优化,帮助用户将大语......
  • JavaWeb学习笔记——第十五天
    Maven高级分模块设计与开发分模块设计就是将项目按照功能拆分成若干个子模块。优点:方便项目的管理维护、扩展,也方便模块间的相互调用,资源共享。分模块设计需要先针对模块功能进行设计,再进行编码实现。不会先将工程开发完毕,然后进行拆分。继承与聚合继承继承描述的是两个......
  • Python企业面试题2 —— 基础篇
    1.re的match和search区别?re.match尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。re.search扫描整个字符串并返回第一个匹配成功的值。2.什么是正则的贪婪匹配?匹配一个字符串没有节制,能匹配多少就去匹配多少,直到没有匹配的为止。......
  • 学python的第七天
    python中的数据结构python中有四种数据结构,列表,字典,元组,集合列表(list):list=[val1,val2,val3,val4]字典(dict):dict={key1:val1,key2:val2}元组(tuple):tuple=(val1,val2,val3,val4)集合(set):set={val1,val2,val3,val4}1,列表#1,列表#列表中的每一个元素都是可变......
  • 学python的第八天
    补充前面某天学的函数,函数具有函数名,参数,返回值,作用域:当前模块,函数中定义:嵌套函数,类中定义:方法语法格式def函数名(形式参数列表):函数体return返回值#如果没有数据返回值,则可以省略return语句# 1,变量函数中变量的作用域,可以在模块中创建,作用域......
  • MPPT学习笔记
    一、基本概述基础算法有三种:恒定电压法(不算真正的mppt)、扰动观察法(Perturb and Observe algorithms,P&O)、电导增量法(Incremental Conductancealgorithm,INC)智能优化算法:粒子群算法(PSO)、万有引力搜索算法(GravitationalSearchAlgorithm,GSA)、布谷鸟算法(CSA)等。......
  • 使用Python写简单的点云SUSAN关键点检测
    一、代码Pythonimportnumpyasnpimportopen3daso3dfromscipy.spatialimportcKDTreefromjoblibimportParallel,delayeddefcalculate_response(idx,points,radius,t,kdtree):#使用KD树找到半径内的所有点neighbor_indices=kdtree.query_ba......
  • Coursera自然语言处理专项课程04:Natural Language Processing with Attention Models
    NaturalLanguageProcessingSpecializationIntroductionhttps://www.coursera.org/specializations/natural-language-processingCertificateNaturalLanguageProcessingwithAttentionModelsCourseCertificate本文是学习这门课NaturalLanguageProcessing......
  • 归并排序 返回逆序数 python
    defmerge_sort_and_count_inversions(arr):n=len(arr)ifn<=1:returnarr,0#如果n小于等于1,数组已经有序,直接返回数组本身和逆序数0mid=n//2left_lst,inv_left=merge_sort_and_count_inversions(arr[:mid])#对左半部分进行递......
  • FFmpeg开发笔记(十一)Windows环境给FFmpeg集成vorbis和amr
    ​FFmpeg内置了aac音频格式,在《FFmpeg开发实战:从零基础到短视频上线》一书的“5.2.2 Linux环境集成mp3lame”又介绍了如何给FFmpeg集成mp3格式,常见的音频文件除了这两种之外,还有ogg和amr两种格式也较常用。其中ogg格式的编解码依赖于libogg和libvorbis,而amr格式的编解码依赖于op......