10-python--function
2021-02-04 19:15
标签:赋值 list dsl pen 默认值 作用域 默认 height 遇到 10-python--function 标签:赋值 list dsl pen 默认值 作用域 默认 height 遇到 原文地址:https://www.cnblogs.com/Daspig/p/12793258.html# s = ‘alskj‘
# count = 0
# for i in s:
# count += 1
# print(count)
‘‘‘
def my_len(s1):
count = 0
for i in s1:
count += 1
print(count)
s = ‘alskj‘
my_len(s)
def meet():
print(‘打开探探‘)
print(‘左划一下‘)
‘‘‘
# 函数的返回值
# return:在函数中遇到return直接结束函数;将数据返回给函数的执行者,调用者。
# 可以返回单个值;多个值以元祖形式返回。可使用元祖的拆包
‘‘‘
def meet():
print(‘打开探探‘)
print(‘左划一下‘)
return ‘哈哈哈‘
print(‘666‘)
ret = meet()
print(ret)
‘‘‘
# 函数的参数
# 实参角度
# 位置参数一定要在关键字参数的前面
# 1、位置参数
# def fun1(sex, age):
# print(‘sex: %s, age: %s‘ % (sex, age))
# fun1(‘man‘, 18)
#
# def compare_max2(int1, int2):
# if int1 > int2:
# return int1
# else:
# return int2
# ret = compare_max2(3, 3)
# print(ret)
# a = 10
# b = 20
# c = a if a > b else b
# print(c)
# 2、关键字参数
# def fun1(sex, age, height, weight):
# print(‘sex: %s, age: %s, height: %s, weight: %s‘ % (sex, age, height, weight))
# fun1(‘women‘,age=‘25‘,height=55,weight=66)
# def funjai(s1, s2):
# return s1 + s2
# print(funjai(‘asd‘, ‘dfg‘))
# 形参角度
# 1、位置参数与实参角度的位置参数是一种
# lis1 = [1, 2, 3, 4]
# def funlist(lis):
# return lis if len(lis) # print(funlist(lis1))
# 2、默认值参数
# def fundefault(age, height, weight,sex=‘man‘):
# print(‘sex: %s, age: %s, height: %s, weight: %s‘ % (age, height, weight, sex))
# fundefault(age=‘25‘,height=55,weight=66, sex=‘woman‘)
# 3、万能参数:可以接收所有的实参
# * 在函数的定义时代表聚合,将所有的位置参数聚合成一个元祖,赋值给args
# ** 在函数的定义时代表聚合,将所有的关键字参数聚合成一个字典,赋值给kwargs
# def sum1(*agrs):
# summ = 0
# for i in agrs:
# summ += i
# print(summ)
# sum1(1,2,4,5,7)
# def sm2(**kwargs):
# print(kwargs)
# sm2(name=‘dsl‘,height=‘189‘,weight=‘169‘)
# 4、顺序:a,b,*args,sex=‘man‘,**kwargs
# *在函数调用时,*代表打散(可迭代对象)
# def func3(*args):
# print(args)
# func3(*[1,2,3],*[4,5,6])
# def func4(**kwargs):
# print(kwargs)
# func4(**{‘one‘:1}, **{‘two‘:2})
# 名称空间(命名空间)
# 全局名称空间:(当前py文件)
# 局部名称空间(临时名称空间)函数执行时开辟
# 内置名称空间:python源码提供的内置函数(builtins.py)
# 加载顺序:内置-->全局-->局部
# 取值顺序:局部-->全局-->内置
# 作用域:
# 全局作用域:内置名称空间、全局名称空间
# 局部作用域:局部名称空间
# 局部作用域不能改变全局作用域的变量,当python解释器读取到局部作用域时,
# # 发现对一个变量进行修改的操作,解释器会认为在局部已经定义了此变量,没有则报错。
# a = 1
# b = 2
# def func():
# name = ‘dfl‘
# age = 73
# print(globals()) # 返回的是字典:字典里的键值对、返回的是全局作用域的所有内容
# print(locals()) # 返回的是字典:字典里的键值对、返回的是当前作用域的所有内容
# func()
# 默认参数的陷阱:只针对于默认参数是可变的数据类型
# def func(name,sex=‘man‘):
# print(name)
# print(sex)
# func(‘dfl‘)
# 如果默认参数是可变数据类型,那么再次调用用的是同一个内存地址
# def func(name,aaa=[]):
# aaa.append(name)
# return aaa
# ret = func(‘dfl‘)
# print(ret, id(ret))
# ret2 = func(‘ddd‘)
# print(ret2, id(ret2))
# global
# 1、在局部作用域声明一个全局变量
# def func():
# global name
# name = ‘df‘
# # func()
# print(name)
# 2、修改全局变量
# count = 1
# def func():
# global count
# count += 1
# func()
# print(count)
# nolocal
# 1、不允许操作全局变量
# 2、局部作用域:内层函数对外层函数的修改
# 函数名的应用
# 1、函数名只想的是函数的内存地址
# 2、函数名+()就可以执行函数
# 3、函数名就是变量
# 4、函数名可以作为容器类型元素
# 5、函数名可以作为函数的参数
# def func():
# print(‘in func‘)
# def func1(x):
# x()
# func1(func)
# 6、函数名可以作为函数的返回值
# def func():
# print(‘in func‘)
# def func1(x):
# print(‘in func1‘)
# return x
# ret = func1(func)
# ret()
文章标题:10-python--function
文章链接:http://soscw.com/index.php/essay/51024.html