2021-02-23 DAY11-函数基础

本文详细介绍了Python中的函数概念,包括如何定义和调用函数,函数参数的使用,如位置参数、默认参数和动态参数。还讲解了函数返回值的关键点,说明了无返回值、单个返回值和多个返回值的情况,并通过实例展示了如何利用return控制函数流程。此外,文章还提及了字符串格式化方法`format`在函数中的应用。
摘要由CSDN通过智能技术生成

1、初识函数

函数,可以当作是一大堆功能代码的集合

def 函数名():
    函数内编写的代码
    ...
    ...
   
函数名()

举个例子

#  定义名称为info的函数
 def info():
	print('第一个')
	print('第二个')
	print('第三个')
    
 info()  ## 执行函数内的代码
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr


mail_host = 'XXX'
mail_user = 'XXX'
mail_pass = 'XXX'
sender = 'XXX'
receivers = sender

msg_string = 'TEXT邮件'
msg_html = '<p>Python 发送邮件测试</p>'

message = MIMEText(msg_html,'html','utf-8')

message['Subject'] = '测试主题'
message['From'] = '发件人邮箱地址'
message['To'] = '收件人邮箱地址'

try:
    smtp_sh = smtplib.SMTP()
    smtp_sh.connect(mail_host,25)
    smtp_sh.login(mail_user,mail_pass)
    smtp_sh.sendmail(sender,receivers,message.as_string())
    smtp_sh.quit()
    print('send success')
except smtplib.SMTPException as e:
    print('send error',e)

2、函数的参数

2.1 参数
#### 定义三个参数的函数(A1/A2/A3 一般称为形式参数----形参)
def func(a1,a2,a3):
	print(a1,a2,a3..)
    
### 执行函数并传入参数(执行函数传值一般为实际参数---实参)
func(11,22,33)

### 执行函数并传入参数
func(9,22,103)

  • 位置参数

    def add(n1,n2,n3):
    	print(n1+n2+n3)
    
    add(10,n2=9,n3=10)
    add(10,n3=9,n2=10)
    ## 如果一开始就设置了位置参数,后面的参数也不许设置位置
    add(n1=10,n3=9,n2=10)  ## 正确
    add(n1=10,9,n2=10)     ## 错误
    
2.2 默认参数
def func(a1,a2,a3=99):
    print(a1+a2+a3)

# 位置参数
func(8,9)
func(1,2,88)
2.3 动态参数
def func(*args):
    print(args)
    
func(22)
func(22,99)
func(22,99,22,.....)
  • **
def func(**kwargs):
    print(kwargs)
    
func(n1='feifei')
func(n1='feifei',age=18)
func(n1='feifei',age=18,email='xx@huawei.com')
  • ,*

    def func(*args,**kwargs):
        print(args,kwargs)
        
    func(22,33,99)
    func(n1='feifei',age=18)
    func(22,33,99,n1='feifei',age=18,email='xx@huawei.com')
    

    提示: 字符串格式化时在这里的应用,,format方法

    两个* 的必须在后面,一个*的必须在前面

    混合参数的时候,动态参数必须在后面

    默认参数和动态参数同时存在,默认值一定要在两个*的参数前面即可

2.4 函数返回值

可以帮助我们反馈结果

def func():
    return 666
res = func()
print(res) ### 666




def magic(num):
    result = num +1000
    return result

data = magic(9)
print(data)

返回值的三个关键知识点

  • 返回值可以是任意形式,如果函数内没有写return,就返回默认none

    def func():
        return [1,True,(11,22)]
    
    result = func()
    print(result)  ## 1,True,(11,22)
    
    def func():
        value = 1+1
        
    ret = func()
    print(ret)  ## none
    
  • 函数中没有写返回值,或者return 或者 return none ,执行函数获取的返回值都是None

  • return 后面的值如果有逗号,则默认返回值会转换为元组再返回

    def func():
        return 1,2,3
    
    vaule = func()
    print(value)  #  (1,2,3)
    
    
    
  • 函数运行过程中,一旦遇到return就会立即退出函数,(终止函数中的所有代码)

    def func():
        print(1)
        return 1
    	print(2)
        
    res = func()
    print(res)  #   只输出1,不会输出2
    
    

总结

  • 完成某个结果并期望得到某个结果的时候。

    def send_email():
        ...
        return True
    
    v1 = send_email()
    
    
    def encrypt(old):
        ...
        return "密文..."
    data = encrypt('需要加密的内容')
    print(data) ## 就会输出一个源文件的密文
    
  • 基于return 控制让函数终止运行

    def func(name):
        with open('xxx.txt',mode='r',encoding='utf-8') as file_object:
            for line in file_object:
                if name in line:
                    return True
                
    data = func('xxx') 判断是否存在数据XXX
    if data:
        print('存在')
    else:
        print('不存在')
    
    
    def foo():
        while True:
            number = input('请输入一个数字')
            if number.upper() == 'Q'return '程序退出'
            number = int(number)
            if num == 99:
                print('对了')
            else:
                print('error')
      
    foo()
    
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值