python函数进阶

# 1.函数的作用域
# 全局变量的作用域:
# 一般在函数体外定义的变量成为全局变量,在函数内部定义的变量称为局部变量。
# 全局变量所有作用域都可用,局部变量只能在本函数可用,变
# 量的使用顺序是,局部变量 > 全局变量, 也就是说:优先使用局部变量
#
# global关键字:
# 为了解决函数内使用全局变量的问题,
# python增加了global关键字,利用它的特性,可以指定变量的作用域。

print('1.函数的作用域')
# 在函数外面定义变量  可以在函数里面被调用,
# 但是只有可变类型对象可以进行操作,不可变类型对象不可操作
a = 1  # 全局变量


def func():
    global a  # 声明变量为全局变量
    a = 100
    print(a)


func()  # 若没有调用这个函数,则下一行输出1
print(a)  # 输出100,因为这时a是全局变量

python函数进阶

 

 

# 2.多函数执行流程
print()
print('2.多函数执行流程')
b = 1


def test_b():
    global b
    b = 20


def test_c():
    print(b)


test_b()  # 执行完后,b为全局变量,值为20
test_c()  # 输出20

python函数进阶

 

 

# 3.函数的返回值
print()
print('3.函数的返回值')


def func1(a, b):
    return a+1, b+3  # 如果返回多个参数,会按顺序存放到元组中
# 如果返回值是一个,则接收参数为1个
# 如果返回值是多个,则接收参数为一个(元组)或者返回的个数(解包)


print(func1(1, 2))  # 输出(2, 5)
print(type(func1(1, 2)))  # tuple类型
print(func1(1, 2)[0])  # 输出元组(2, 5)的索引为0的值
data1, data2 = func1(1, 2)  # 解包(拆包)
print(data1, data2)

python函数进阶

 

 

# 4.交换值
print()
print('4.交换值')
x = 1
y = 2
print(x, y)
x, y = y, x  # 交换值
print(x, y)


# 5.可变类型和不可变类型
# 可变类型    列表 字典 集合
# 不可变类型  数字 字符串 元组 布尔

python函数进阶

 

 

# 6.参数

print()
print('6.参数')


def func4(name, age, gender):
    print(f'我的姓名{name},
我的年龄{age},我的性别:{gender}')


func4('小明', 20, '')  # 要注意顺序


# 6.1 关键字传参
# 很安全
# 不必考虑顺序
func4(age=20, name='小放', gender='man')


# 6.2 默认参数
def func5(name, age=20, gender=''):
    print(f'我的姓名{name},
我的年龄{age},我的性别:{gender}')


func5(age=20, name='小放', gender='')  # 输出的gender是女,而不是男
# 当调用函数的参数有值,则默认参数的值被替换


# 6.3 不定长传参
# *args  arguments
# **kwargs
# 这个名字可以改的,但是一般不改
# 例如:*args == *abv
# **kwargs == **qqq

# *args  把没有形参的实参进行打包,放到一个元组中
def fun(data1, data2, *args):
    print(data1, data2, args)
    print(args[0])


fun(1, 2, '3', 4)  # 输出 1 2 ('3', 4)

# **kwargs
# 把没有形参的实参进行打包,但是只打包关键字参数
# 字典 key word arguments


def fun1(**kwargs):
    print(kwargs)  # 输出字典


fun1(name='小明', age=20, gender='')

python函数进阶

 

 

# 今日练习
'''
定义一个模拟ATM机操作的场景
(1)需要一个存钱和取钱的函数
(2)设置全局默认资金1000
(3)调用存钱函数,存放800元,并将操作后函数将余额打印出来
(4)调用取钱函数,取钱500元,并将操作后函数将余额打印出来
'''
print()
print('今日练习')
money = 1000

def add(add_money: float):
"""
存款函数
:param add_money: 数字
:return: 数字
"""
global money
money += add_money # 现有金额加存款金额
print(f'操作成功,您当前的余额是{money}元') # 余额打印


def reduce(reduce_money: float):
"""
取款函数
:param reduce_money:
:return:
"""
global money # 若不再次声明为全局变量,则在函数内为局部变量,会报错!
money -= reduce_money
print(f'操作成功,您当前的余额是{money}元') # 余额打印


add(800)
reduce(500)

 python函数进阶

 

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python函数进阶 - Python技术站

(0)
上一篇 2023年4月2日
下一篇 2023年4月2日

相关文章

  • python中的公共操作与列表推导式

    1.公共操作 # + 合并 将两个相同类型序列进行连接 字符串、 列表、元组 l1 = [1, 2, 3] l2 = [4, 5, 6] print(l1+l2) # [1, 2, 3, 4, 5, 6]     # * 复制 将里面的数据进行复制 字符串、列表、元组 l1 = [1, 2, 3] print(l1 * 3) # [1, 2, 3, 1, 2…

    2023年4月2日
    00
  • python函数入门

    1.函数的作用 # sum() max() min() len() type() # 使用函数都需要加一个括号 # 有自己的功能 # ‘a’.replace() # 称为方法 点出来的有括号的称为方法 # a.name # 称为属性 # sum() # 是函数 # 不加括号时,sum代表的是整个函数 # 加了括号时,sum()代表的是使用函数 # 1.函数的…

    2023年4月2日
    00
  • python中的面向对象

    # 面向对象是非常重要的! # 抽象,是个思想,结构 # 小明 小红 小雨 都是人 # 海尔洗衣机 海东洗衣机 海西洗衣机 都是洗衣机 # 猫 狗 熊猫 都是动物 # 蓝图 # # class WashingMachine: # 类名一般是大驼峰 # pass # # 特征是属性 # age = 20 # # 行为是方法 # def # 先有类,后有对象 #…

    2023年4月2日
    00
  • python中的字典和集合

    1.字典 # 基础数据类型 # bool int float str list tuple dict set # list dict set 可变数据类型 # bool int float str tuple 不可变数据类型 # 1.字典 dict # dict_data={key: value, key1: value1} # 1,符号以大括号表示 # 2…

    2023年4月2日
    00
  • python中的公共操作和推导式

    # 1.公共操作 # del 删除 删除变量或指定容器内数据 变量,容器里面的值 # + 将两个相同类型序列进行连接 字符串,列表,元组 print(‘1.公共操作’) print(‘a’ + ‘b’) print([‘a’] + [‘b’]) print((‘a’,)+(‘b’,)) # 元组,要有, # print({1:2}+{2:3}) # 字典不行…

    2023年4月2日
    00
  • python中的字符串操作

    # 1.索引(下标) print(‘1.索引’) str_data = ‘Python’ # [索引(下标)]取索引的格式 # 正负索引 # 获取单个数据 sub_str = str_data[4] print(sub_str) sub_str = str_data[-2] print(sub_str)     # 2.字符串切片 # 取单个数据用索引 # …

    2023年4月2日
    00
  • python中的函数(1)

      # 1.函数 # 函数就是将一段具有独特功能的代码段整合到一个整体并命名 # 在需要的位置调用这个名称即可完成对应的需求 # 函数的作用:封装代码(方便管理),实现代码重用 print(‘1.函数作用’) name_list = [‘小明’, ‘小刚’] # 列表 print(len(name_list)) # 长度为2 print() name_lis…

    2023年4月2日
    00
  • python中的列表和元组

    # 1.列表的格式 # [数据1,数据2,数据3,···] # 列表 可变数据类型 # 列表可以存储多个数据,数据之间的逗号以英文逗号分隔 # 列表可以存储不同类型数据,但一般存储同一数据类型,这样便于操作 # list_name = [] # 定义了一个空的列表 # 定义了一个有数据的列表 # 可以去索引和切片 print(‘1.列表的格式’) list_…

    2023年4月2日
    00
合作推广
合作推广
分享本页
返回顶部