Python关于函数教学讲解(超详细内容)

1.定义一个函数

定义一个函数需要5个部分:

  • def告诉Python,用户在自定义函数

  • function_name告诉Python要定义的函数的名字,且取名尽量做到descriptive

  • (parameters)这是形式参数,简称形参,接收函数调用时,传过来的实参,不需要传参时可省略

  • '''docstring'''不执行任何功能,仅用来说明函数功能,调用函数者可以查看该函数的docstring以了解其功能

  • function_body是函数的主体,函数要实现的功能由它决定

格式:

#函数定义def function_name(parameters):  #注意冒号
    '''docstring''' #注意缩进1个tab
    function_body   #注意缩进1个tab#函数调用   function_name(arguments)    #arguments为实参,字符串参数要加引号

2.参数

在上述的函数定义格式中,有两种参数,分别是:parametersarguments

parameters为形式参数,简称为形参在函数定义时,仅作为符号,表示这里应该有这样一个参数,实现函数的成功定义。

arguments实参,即主程序中,需要调用函数处理的实实在在的信息。调用时,会实现parameter_1=argument_1...,将所有实参的值赋给对应的形参,交由函数处理。

例:

输入:

def greet_user(username):
    '''display a simple greeting'''
    print('hello, '+username.title()+'!')
    
greet_user('jack')

输出:

c:\py>function_define
hello, Jack!

3.传送多个参数

上面的例子是仅传一个参数的情况,parameters和arguments可以有多个,有3种方法实现多参数传送。

(1) 位置实参

def语句

def function_name(parameter_1, parameter_2,..., parameter_n):

调用函数语句

function_name(argument_1, argument_2,..., argument_n):

调用函数语句中的实参与def语句中的形参按顺序一一对应,传参时实现的操作如下:

parameter_1=argument_1
parameter_2=argument_2
.
.
.
parameter_n=argument_n

注意,使用位置实参时,一定要按照定义函数时,正确的顺序排列,不然会出错。

(2) 关键字实参

关键字传参是将一个name-value组合传给函数形参。

调用形式:
function_name(name_1=value_1,name_2=value_2,...,name_n=value_n)

name-value里面,name为函数定义时,形参的名字,value为主程序中实参的值,通过name=value实现传参。所以通过关键字实参传参,并不需要按照定义时的顺序。

输入:

def describe_pet(animal_type,pet_name):
    '''display information about a pet'''
    print('\nI have a '+animal_type+'.')
    print('My '+animal_type+"'s name is "+pet_name+'.')

describe_pet(animal_type='dog',pet_name='harry')#顺序不一样describe_pet(pet_name='harry',animal_type='dog')

输出:

c:\py>describe_pet.py

I have a dog.
My dog's name is harry.

I have a dog.
My dog's name is harry.

上面程序调用了两次describe_pet函数,参数顺序不一样,但是输出结果一样。

(3) 默认值

当一个函数被调用时,它的某些参数总是很少改变时,我们可以给这些很少变动的参数,在定义函数时,给它们一个默认值。这样在调用函数时,若与默认值相同,则可以不用写该参数的实参值,直接采用默认值,如果与默认值不符,可以用关键字name-value对传参。

输入:

def describe_pet(pet_name,animal_type='dog'):       #默认animal_type参数值为‘dog’
    '''display information about a pet'''
    print('\nI have a '+animal_type+'.')
    print('My '+animal_type+"'s name is "+pet_name+'.')

describe_pet(pet_name='harry')  #省略animal_type参数值describe_pet('harry
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
如果你是新手,这篇博客可能会对你有所帮助。博客的作者是B站黑马程序员的《python多线程编程》的视频的笔记摘录。博客中的代码是作者手动敲的,可以直接运行,如果有错误,作者欢迎评论指正。在博客中,有两个示例代码可以帮助你理解多线程的概念和使用方法。第一个示例是一个简单的多线程实现,其中一个线程用来唱歌,另一个线程用来跳舞。在示例代码中,使用了`threading.Thread`来创建两个线程,并分别指定了目标函数和参数。然后通过`start`方法启动线程。这样,两个线程就可以并发地执行唱歌和跳舞的任务。第二个示例代码展示了线程之间执行的顺序。在这个示例中,使用了`threading.current_thread`来获取当前线程的线程对象,并打印出来。然后通过循环创建了5个子线程,并启动它们。由于多线程的执行是并发的,所以无法确定线程的执行顺序。希望这些示例代码对你理解和学习python多线程编程有所帮助。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Python多线程编程(详细:适合小白入门)](https://blog.csdn.net/weixin_44917390/article/details/119610760)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值