def函数

#输入2个数 将其中的质数 输出为一个列表 并求列表总和 以及最大最小值

sum=0
b=[]
data=int(input('输入第一个数;'))
data1=int(input('输入第二个数:'))
for a in range(data,data1+1):
    j=2
    while jmax:
            max=b[n]
        sum+=b[n]
print(sum,max,min)

#def 函数

def dylc():
    print('1楼 男装')
    print('2楼 女装')
    print('3楼 童装')
floor=int(input('请输入楼层:'))
if floor==1:
    print('欢迎购物')
    dylc()
    print('您现在1楼')
elif floor==2:
    print('欢迎购物')
    dylc()
    print('您现在2楼')
elif floor==3:
    print('欢迎购物')
    dylc()
    print('您现在3楼')

#求和

def addition(a,b):#函数 求两个数的和  ’形参‘
    c=a+b
    print('{}+{}={}'.format(a,b,c))#输出结果
addition(1,10)#调用函数   ’实参‘
addition(9999,1)

#打折

def addition(a,b):
    c=a+b
    return c#返回 将c返回给调用值
x=addition(1,7)#将调用结果赋予x
if x>10:
    print('金额大于10,打折')
else:
    print('不打折')

#计算

def calculate(a,b):
    c=a+b
    d=a*b
    e=a/b
    f=a-b
    return c,d,e,f
x=calculate(10,2)
print(x)#输出为元组
q,t,u,i=calculate(10,2)#将上述计算赋予新的变量
print(q,t,u,i)#分别输出

#int 属于不可变类型(字符串 元组)

def int(a):
    a+=2
b=4
int(b)
print(b)
#列表(字典) 可变类型 在【修改】时可以返回给调用值
def list(a):
    a.append(9)#修改
    a=9#赋值  对调用值无影响
b=[]
list(b)
print(b)

#关键字参数

def dylc(name,age,sex):
    print('我叫',name)
    print('性别',sex)
    print('年龄',age)
dylc(name='张三',age=23,sex='男')

#关键字函数

def dylc(name,age,sex='男'):
    print('我叫',name,end='   ')
    print('性别',sex,end='   ')
    print('年龄',age)
dylc('张三',23)#输出性别 默认值
dylc('李四',43)
dylc('王五',12,'男')#没有输出默认值 ,有输出调用值
dylc('刘红',11,'女')#输出女

#解析元组

def tuple(*args):
    print(args)
    for x in args:
        print(x,end=' ')
    print()
tuple(1,2,3)
tuple(2,3,4)

#字典

def dictionary(**kwargs):
    print(kwargs)
    for k,v in kwargs.items():
        print(k,v,end='  ')
    print()
dictionary(name='张三',age=19,sex='男')
dictionary(name='王五',age=20,sex='男',address="河南")

#逻辑问题

def n(a,b,c=[]):
    c.append(12)
    print(c)
n(1,2)
n(1,2)

#嵌套函数

def internal():#n内部
    print(123)
    def external():#外部
        print(456)
    external()
internal()

#全局变量 与 局部变量

a=0#全局
def function():#函数
    a=2#局部
    print(a)
function()
print(a)

#变量是可变类型 内部函数可以修改

a=[]
def function():
    a.append(1)
function()
print(a)

#优先局部变量

a=1
def function(a):
    a+=4#优先局部变量 ,a已定义,
    print(a)#所以输出为5
function(a)
print(a)

a=1
def function():
    a+=4 #优先局部变量 ,但局部变量没有定义 ,所以报错。
function()
print()

#引用全局变量

a=3
def function():
    global a#全局变量
    a=5#a=3重新赋值,
    print(a)#5
function()
print(a)#5

#外部(非全局)

def function():
    a=10
    def function1():
        nonlocal a
        a=30
    print(a)
    function1()
    print(a)
function()

#变量的查找顺序
#变量的查找顺序 从里向外查找
#作用域局部>外层作用域>当前模块中的全局>python内置作用域;
#legb
#l=locals 局部
#e=enclose 嵌套作用域
#g=globals 全局
#b=built-in 内置

a=100
b=90
c=80
def waibu():
    b=70
    c=60
    def nb():
        c=50
        print(c)#局部 LOCALS
        print(b)#嵌套ENCLOSE
        print(a)#全局GLOBALS
        print(max)#内置BUILT-IN
    nb()
waibu()

#阶乘【递归函数】

def factorial(n):
    if n==1:
        return 1
    else:
        return n*factorial(n-1)
print(factorial(5))

#斐波那契数列

def fbnq(n):
    if n==1 or n==2:
        return 1
    else:
        return fbnq(n-1)+fbnq(n-2)
#i=0
for i in range(1,13):
    print(fbnq(i),end=' ')

#匿名函数

x=lambda x:x*3+4#x-实参 x*3+4函数体(返回值)
print(x(2))
#
a={'name':'李四','age':18,'address':"河南"}
x=lambda b:b['age']
print(x(a))

#max- abs绝对值

a=[1,2,3,-4]
b=max(a,key=abs)#abc只是调用【a里面所有的绝对值比较,输出本身】
print(b)#-4
#abs
a=[-4,-2,1,3,5,7]

a.sort(key=abs)#sort从小到大排序,【绝对值从小到大排序,返回本身】
print(a)

#输出max年龄

a=[
    {'name':1,'age':12,'address':'q'},
    {'name':2,'age':22,'address':'w'},
    {'name':3,'age':32,'address':'e'},
    {'name':4,'age':42,'address':'r'}
]
c=max(a,key=lambda x:x['age'])
print(c)
#输出
i=10
def a(x):
    print(x*i)
i=20
def b(x):
    print(x*i)
i=30
def c(x):
    print(x*i)
a(3)
b(3)
c(3)
#输出
a=[lambda x:x*i for i in range(3)]
print(a[0](3))
print(a[1](3))
print(a[2](3))

你可能感兴趣的:(def函数)