Hello World

Python番外篇---函数

1.用函数,编写关于成绩的程序

def yyy(score):

    if score > 100 or score < 0:
        print('不合法')

    elif score >= 90:
        print('A')

    elif score >= 80:
        print('B')

    elif score >= 70:
        print('C')

    elif score >= 60:
        print('D')

    else:
        print('不及格')

while True:
    score = int(input('score:'))
    yyy(score)
代码

 

2.关于return的理解

def func(a):
    if a%2 == 0:
        return 1,2,3
    else:
        return 1

a = 12
b = 3

r1 = func(b)
print(r1)


#结果
1

 

 

3.函数的 计算

def addfunc(a,b,c=0):
    print(a + b + c)

while True:
    a = int(input('number a : '))
    b = int(input('number b : '))
    
    if b%2 == 0:                      #如果输入的 b,为偶数。输入c
        c = int(input('number c : '))
        addfunc(a,b,c)
    
    else:
        addfunc(a, b)
View Code

 

4.函数和for

def test(c=[]):

    c.append(1)

    print(c)

for i in [1,2,3]:
    test()


##相当于 上面的 for
# test()
# test()
# test()


###结果
[1]
[1, 1]
[1, 1, 1]
代码

 

5.动态参数

def zzz(num,*args,f=True,**kwargs):
    print(num)
    print(args)
    print(f)
    print(kwargs)

# zzz(20,a = 1,b = 1)
d = {'b': 1, 'a': 1}
zzz(50,1,2,3,5,**d)



##结果
50
(1, 2, 3, 5)
True
{'b': 1, 'a': 1}
动态参数

 

6.函数调用

1.比较大小

def my_max(x,y):
    res = x if x>y else y
    return res
print(my_max(10,100))

def my_max4(a,b,c,d):
    res1 = my_max(a,b)
    res2 = my_max(res1,c)
    res3 = my_max(res2,d)
    return res3
print(my_max4(1,20,3,4))


#结果
100
20

 

2.

def calc(n):
    print(n)
    if int(n/2) == 0:
        return n
    return calc(int(n/2))

calc(10)


#结果
10
5
2
1

 

 

7.匿名函数

# f = lambda x,y:x+y   #不是 匿名函数
# print(f(2,4))


# print((lambda  x,y:x+y)(3,6))  # 是 匿名函数

 

递归调用

在函数内部,可以调用其他函数。如果在调用一个函数的过程中直接或间接调用自身本身

#----1
def calc(n):
    print(n)

    if int(n/2) == 0:
        return n
    return calc(int(n/2))
calc(10)


#结果
10
5
2
1




#-----2
def func(num):   #阶乘
    if num==1:
        return 1

    if num>1:
        return func(num-1)*num
k = func(5)

print(k)


#结果
120
例一

 

def test(n):
    print(n)
    n = n-1
    if n>=1:
        test(n)


test(5)

#结果
5
4
3
2
1
View Code

 

 

#面试题

def add(n,i):
    return n+i

def test():
    for i in range(4):
        yield i

g=test()

for n in [1,10]:
    g=(add(n,i) for i in g)

# n = 1
#g = (add(n,i) for i in g)  #[1, 2, 3, 4]
#n = 10
#g1 = (add(n,i) for i in  (add(n,i) for i in g))    #g =test() 0,1,2,3
# # #          #此处的n=10                 #10,11.12.13
print(list(g))

#结果
[20, 21, 22, 23]
其他

 

posted @ 2017-05-02 14:02  nayike  阅读(230)  评论(0编辑  收藏  举报

Hello