学习python的第十天

本文介绍了Python中不同类型的变量,包括局部变量、全局变量和共享全局变量的用法,强调了函数内外变量的访问限制。此外,讲解了如何通过函数返回值和拆包来传递信息。还探讨了递归的概念,强调了递归函数必须包含退出条件以避免无限循环。最后,通过示例展示了如何使用递归实现数字序列的求和。
摘要由CSDN通过智能技术生成

1.局部变量

def func():
    # a计算局部变量 函数内部的变量
    a = "下雨了"
    print(a)


func()
# name 'a' is not defined
# 函数外部不能使用函数内部的变量
# print(a)

2.全局变量

#  全局变量
a = 100


def print_a():
    # 函数内部可以使用全局变量
    print(a)


print_a()
# 函数外部也可以使用全局变量
print(a)

3.共享全局变量

# 定义一个全局变量
glo_num = 0


def change_num():
    # 全局变量全局化 可以使用函数内部可以修改全局变量 起到函数之间共享全局变量的作用
    # 如果没有全局化 函数内部只能使用全局变量 但不能修改
    global glo_num
    # 修改全局变量
    glo_num = 100


def print_num():
    # 打印全局变量
    print(glo_num)


change_num()
# 如果修改成功 则打印100
# 但实际情况是没有修改成功 两个函数无法共享全局变量
print_num()

4.函数返回值进行传达

# 函数的返回值作为参数进行传达
# function 函数f(x)
def func1():

    return "给刘鸡鸡一耳光"


def func2(var):
    # var = result = "给刘鸡鸡一耳光"
    print("你说", var)


# result= “给刘鸡鸡一耳光”
result = func1()
print(result)
# result 传达给var
func2(result)

5.拆包元组

def tuple_func():
    return 100, 200


# t1 = (100 200) 返回值是一个元组
t1 = tuple_func()
print(t1, type(t1))

# 将元组拆包成两个数值
num1, num2 = tuple_func()
# num1 = 100 ,num2 = 200
print(num1, num2, type(num1), type(num2))

6.拆包字典

name_dict = {"name": "刘东", "professional": "搬砖"}
# 将字典拆开 接收的是键 不是值
# a = name, b=professional
a, b = name_dict
print(a, b)

# 通过拆包之后的键 获取字典的值
print(name_dict[a])
print(name_dict[b])

7.递归

# # 函数调用另外一个函数
# def func():
#     print("益阳职业狗不来")
#
#
# def main():
#     # 函数内部调用另外一个函数
#     func()
# main()

# 递归特点一 函数自己调用自己

# def main():
#     # 函数内部调用另外一个函数
#     print("我想去北京")
#     main()
#
#
# '''
# RecursionError: maximum recursion depth exceeded while calling a Python object
# 自己调用自己 出现无法终止程序的特点 导致递归的深度超过性质
# 所以说递归需要一个出口
# '''
#
# main()

# 3.递归特点 函数必须要有出口
# 打印10 9 8 7 6 5 4 3 2 1
def print_num(num):
    print(num)
    # 递归出口但num -1是结束递归
    if num == 1:
        return
    # 自己调用自己
    print_num(num-1)


# num = int()
print_num(100)
# print_num(9)
# print_num(8)

8.使用递归实现1加到100

# result = 1 + 2 + 3 + 4 .......... 99 + 100

# def sum_num(num):
#     # num = 2
#     # 递归出口
#     if num == 1:
#         return 1
#     # 返回值
#     #         2
#
#     return num + sum_num(num - 1)
#
#
# print(sum_num(100))
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值