python教程17-全局变量和局部变量、多个返回值、函数的回顾、函数的缺省参数

tech2025-08-15  4

python教程_小白入门17/2020/9/6

学习目标

P113 全局变量和局部变量

a = 100 # 这个变量是全局变量,在整个py文件里都可以访问 word = 'hello' def test(): ''' 这个函数就是用来讲局部变量和全局变量的 :return: ''' a = 10 # 1. 在函数内部又定义了一个新的局部变量 #  可以理解为a 先赋值了 100,但是进入函数后有让a = 10,后来的赋值覆盖了原来的赋值 # 这个变量是在函数内部定义的变量,它是局部变量,只能在函数内部使用 print('函数内部a = {}'.format(a)) # 想在函数内部修改全局变量,使用global x = 'hello' global word word = 'ko' print('函数内部word = {}'.format(word)) # 使用内置函数来查看局部变量locals()和全局变量global() print('locals = {},global = {}'.format(locals(), globals())) test() print('函数外部 a = {}'.format(a)) print('函数外部 word = {}'.format(word)) # 没写global之前 # 函数内部a = 10 # 函数内部word = ko # 函数外部 a = 100 # 函数外部 word = hello # 写了global之后 # 函数内部a = 10 # 函数内部word = ko # 函数外部 a = 100 # 函数外部 word = ko # 函数内部a = 10 # 函数内部word = ko # locals = {'a': 10, 'x': 'hello'},global = {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x0000025075A1CB88>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/PyCharm/code/20200728/demo.py', '__cached__': None, 'a': 100, 'word': 'ko', 'test': <function test at 0x0000025075AD5CA8>} # 函数外部 a = 100 # 函数外部 word = ko # 在python里,只有函数能够分隔作用域,作用域,变量起作用的区域 if 3> 2: m = 'hi' print(m) print(globals()) # {'__name__': '__main__', '__doc__': None, '__package__': None, '__loader__': <_frozen_importlib_external.SourceFileLoader object at 0x000001330467CB88>, '__spec__': None, '__annotations__': {}, '__builtins__': <module 'builtins' (built-in)>, '__file__': 'E:/PyCharm/code/20200728/demo.py', '__cached__': None, 'a': 100, 'word': 'ko', 'test': <function test at 0x0000013304735CA8>, 'm': 'hi'} # 所以尽量少使用 全局变量

P114 多个返回值

# 函数的多个返回值 def test(a, b): x = a // b y = a % b # 一般情况下,一个函数只会执行一个return语句 # 特殊情况下(fainally语句下),一个函数可能会执行多个return语句 # return 语句表示一个函数的结束 return x, y # (2,3) ------最常用元组 # return x, y # [2,3] # return {'x': x, 'y': y} # {'x': 2, 'y': 3} result = test(13, 5) print('商是{},余数是{}'.format(result[0], result[1])) shang, yushu = test(16, 3) print('商是{},余数是{}'.format(shang, yushu))

P115 函数的回顾

#  函数的回顾总结 # 函数的声明,使用关键字def 来声明一个函数 #  函数的格式  def 函数名(形参1,形参2,。。。。) # 函数的调用 函数名(实参1.实参2。。。。) # 函数的返回值 使用return 语句返回 函数的执行结果 # 函数返回多个值,将多个数据打包成一个整体返回 # 可以使用列表和字典,通常情况下使用元组 # 函数名也是一个标识符 # 标识符,由数字,字母和下划线组成,不能以数字开头,严格区分大小写,不能使用关键字 #  遵守命名规范,使用下划线连接,做到顾名思义 def get_sum(a, b): ''' 获取到和 :param a: :param b: :return: ''' # 函数的执行逻辑,要和函数的名字一致 return a + b def print_sum(a, b): print(a + b) # 可以不需要 返回值 x = get_sum(1, 3) print(x) # 4 def calc(a,b): shang = a//b yushu = a%b return shang,yushu m,n = calc(15,4) print(m,n) # 3 3

P116 函数的缺省参数

def say_hello(name, age=55, city='南京'): # 形参city设置了一个默认值 #  缺省参数要放在最后 print('my name is {},my age is {},I\'m come from {}'.format(name, age, city)) say_hello('jack', 22, 'jinan') # my name is jack,my age is 22,I'm come from jinan say_hello('tom', 15) # my name is tom,my age is 15,I'm come from 南京 # 如果有位置参数和关键字参数,关键字一定要放在位置参数的后边,意思就是带等号的放后边 say_hello('jerry', age=99, city='深圳') # my name is jerry,my age is 99,I'm come from 深圳 say_hello('huoyuanjia') # my name is huoyuanjia,my age is 55,I'm come from 南京 #  若传入的参数 少于 函数要求的参数,且没有设置默认值,会报错,因为函数需要的参数和传进去的参数 不一致 #  say_hello() missing 1 required positional argument: 'city' #  有些函数的参数是,如果传递了参数,就使用传递的参数,如果没有传递参数,就使用默认的值 # print函数里的end就是一个缺省参数 # print('hello world','xiyouji',sep="*********") # hello world*********xiyouji #
最新回复(0)