day09 初识函数

函数:函数是一堆代码的集合

1.1如何使用函数:

  • 使用函数,先定义再调用
#定义一个func函数
def func():
#代码块
	print(123)
#调用func函数
func()

1.2 函数的应用场景:

(一):什么时候会用到函数呢?一般在项目开发中有会有两种应用场景:

- 有重复代码。
def send_email():
    # 10行代码

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

if 硬盘使用率 > 99%:
    send_email()
    
if 内存使用率 > 98%:
    send_email()
...
- 代码太长。
def calculate_same_num_rule():
    """判断是否是豹子"""
    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()
注意:以前我们变成是按照业务逻辑从上到下逐步完成,称为:面向过程编程;现在学了函数之后,利用函数编程称为:函数式编程。

二.函数的参数

2.1 邮件发送

  • 注册邮箱
  • 基础配置
    • 授权码
    • SMTP服务器: SMTP服务器: smtp.126.com
  • 代码发送邮件

在这里插入图片描述在这里插入图片描述

如何发送代码

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


def msg(a):


# ### 1.邮件内容配置 ###
    msg = MIMEText("约吗", 'html', 'utf-8')
    msg['From'] = formataddr(["武沛齐", "yangliangran@126.com"])
    msg['Subject'] = "180一晚"

    # ### 2.发送邮件 ###
    server = smtplib.SMTP_SSL("smtp.126.com")
    server.login("yangliangran@126.com", "LAYEVIAPWQAVVDEP")
    server.sendmail("yangliangran@126.com",a, msg.as_string())
    server.quit()

msg('1183441364@qq.com')

2.2 函数的参数:

在定义一个函数的时候,如果在括号中添加变量,我们称之为函数的形式参数。
#定义了一个函数,里面有两个参数 a,b ,这个为函数的形式参数
def func(a,b):
	num = a+b
	return num 
# 执行函数必须传入固定的参数(执行函数,传入的参数值叫做实参)
func(1,2)
关键字传参
def func(a,b):
	print(a+b)
#按照这个格式去赋值是关键字传参
func(a=2,b=5)
位置传参
def func(a,b):
	print(a+b)
# 按照这个格式传值就是位置传参
func(1,2)
总结
'''
1.形参
2.实参
3.位置传参
4.关键字传参
'''
def num(a,b,c):
    print(a)
    print(b)
    print(c)
num(1,2,3)
#关键字传参必须在位置传参后面,如果第一个为关键字传参,那么后面都要是关键字传参
num(1,b=2,c=3)


默认参数:
# c=10为默认参数
def func(a,b,c=10):
	print(a+b+c)
# 位置传参,第三个值可传,也可不传
func(1,2)
# 如果传上去就会改变原来的默认值
func(1,2,9) # 此时c的值是9 
#位置传参和关键字传参,如果要使用关键字传参必须在前面
func(1,b=5)
# 改变默认的值
func(a=1,b=2,c=5)

动态参数:
- *args:
def func(*args):
	return args
#最后生成一个元组
a = func(1,2,3,4)
print(a)#(1, 2, 3)
’‘’只能按位置传参‘’‘
**kwargs
def func(**kwargs):
	return kwargs
b = func(name='吴呈祥',age = 19 ) 
print(b)#{'name': '吴呈祥', 'age': 19}
args,* kwargs
#最后生成的是一个元组,一个列表
def func(*args,**kwargs):
    print(args,kwargs)
func(1,2,3,4,45,name = '吴呈祥', age = 19 ,height = 78)
#得到的值是(1, 2, 3, 4, 45) {'name': '吴呈祥', 'age': 19, 'height': 78}	

三.函数的返回值

3.1 返回的值可以是任意类型:

def func():
    return [1,2,34,(1,2,3,4),True,'你好傻逼',{'name':'吴呈祥',"age":18},{}]
s = func()
print(s)#[1,2,34,(1,2,3,4),True,'你好傻逼',{'name':'吴呈祥',"age":18},{}]

3.2 如果函数中没有return,name默认返回的值是None

def func():
	print(123)
a = func()
print(a)#返回的值是None

3.3 如果函数遇到return,这个函数就会终止,并且返回值

def func():
    print('1')
    return '你好帅啊'
    print('2')
s = func()
print(s)#结果为1,你好帅啊,当遇到return时,结束整个函数


总结:## 总结
  1. 如何定义一个函数?

  2. 函数名的规范。(同变量名规范)

    • 规范

    • 建议

      def change_num():
          pass
      
  3. 函数的注释,说明函数的作用。

    def encrypt(origin):
        """ 用于数据加密和xxx """
    	pass
    
  4. 定义函数时,参数一般有以下情况(形式参数)

    • 情景1

      def func(a1,a2):
          pass
      
    • 情景2:

      def func(a1,a2=123):
          pass
      
    • 情景2:

      def func(*args,**kwargs):
          pass
      
  5. 函数的返回值,一般用于将函数执行的返回给调用者。

    • 默认返回None
    • 遇到return则函数执行完毕
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值