函数基础(参数、返回值)

本文介绍了函数的基础知识,包括如何通过函数增加代码的重用性和可读性,详细讲解了函数的参数(形参、实参、位置传参、关键字传参、默认参数和动态参数),并探讨了函数的返回值及其使用场景。文中还提供了函数返回值的类型、默认返回值和如何控制函数终止的注意事项。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、初识函数

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

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

例如:

# 定义名字叫info的函数
def info():
    print("第一行")
    print("第二行")
    print("第n行...")
    
info()

运用函数的场景:

1. 有重复代码,用函数增加代码的重用性

def send_email():
    # 10行代码

print("欢迎使用计算机监控系统")
if CPU占用率 > 90%:
    send_email()

if 硬盘使用率 > 99%:
    send_email()
    
if 内存使用率 > 98%:
    send_email()
...

2. 代码太长,用函数增强代码的可读性

    """判断是否是豹子"""
    pass

def calculate_same_color_rule():
    """判断是否是同花"""
    pass

def calculate_straight_rule():
    """判断是否顺子"""
	pass

def calculate_double_card_rule(poke_list):
    """判断是否对子"""
	pass

def calculate_single_card_rule():
    """判断是否单牌"""
    pass



# 1. 生成一副扑克牌
card_color_list = ["红桃", "黑桃", "方片", "梅花"]
card_nums = [2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]  # A
all_card_list = [[color, num] for color in card_color_list for num in card_nums]

# 2.洗牌
random.shuffle(all_card_list)

# 3.给玩家发牌
...
# 4.判断牌是:豹子?同花顺?顺子?对子?单点?

calculate_same_num_rule()
calculate_same_color_rule()
calculate_straight_rule()
...

以前我们变成是按照业务逻辑从上到下逐步完成,称为:面向过程编程;现在学了函数之后,利用函数编程称为:函数式编程。

二、函数的参数

  • 注册邮箱(一般使用网易邮箱)

  • 基础配置

    • 授权码
    • SMTP服务器: smtp.126.com或者smtp.163.com
  • 代码发送邮件
    在这里插入图片描述
    在这里插入图片描述
    开启后,保留好授权码
    记住SMTP服务器的地址:
    在这里插入图片描述

以下是提供的发邮件的一个函数:

import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

# ### 1.邮件内容配置 ###
msg = MIMEText("邮件内容", 'html', 'utf-8')    # 第一个位置为邮件内容
msg['From'] = formataddr(["发件人", "发件人邮箱@163.com"])    # 邮件顶部会显示发件人(谁发来的邮件),发件人邮箱
msg['Subject'] = "主题"   # 邮件主题

# ### 2.发送邮件 ### 
server = smtplib.SMTP_SSL("smtp.163.com")
server.login("自己邮箱", "授权码")   # 第一个位置为自己的邮箱,第二个位置为授权码
server.sendmail("自己邮箱", "收件人邮箱", msg.as_string())     # 第一个位置为自己的邮箱,第二个为收件人邮箱(可跨邮箱),
server.quit()

需求:根据上述代码实现给3个用户发邮件

v1 = "a@qq.com"
v2 = "b@qq.com"
v3 = "c@live.com"
import smtplib
from email.mime.text import MIMEText
from email.utils import formataddr

def send_email(xx):
    # ### 1.邮件内容配置 ###
    msg = MIMEText("你好", 'html', 'utf-8') 
    msg['From'] = formataddr(["张三", "zhangsan@163.com"])
    msg['Subject'] = "hello"

    # ### 2.发送邮件 ### 
    server = smtplib.SMTP_SSL("smtp.163.com")
    server.login("zhangsan@163.com", "JXTSQRBCBYVNNSUE")   
    server.sendmail("zhangsan@126.com", xx, msg.as_string())
    server.quit()

send_email("a@qq.com")
send_email("b@qq.com")
send_email("c@live.com")

【1】思路1
此方法繁琐:

# 写send_email1函数,让send_email1代指发邮件功能
def send_email1():
    # ### 1.邮件内容配置 ###
    # 邮件文本
    msg = MIMEText("你好", 'html', 'utf-8') 
    # 邮件上显示的发件人
    msg['From'] = formataddr(["张三", "zhangsan@163.com"])
    # 邮件上显示的主题
    msg['Subject'] = "邮件主题"
	
    # ### 2.发送邮件 ### 
    server = smtplib.SMTP_SSL("smtp.163.com")
    server.login(<
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值