Python(二)关键词和循环控制

一、if判断

a = 100
b = 200
c = 300
if c == a:
    print(a)
elif c == b:
    print(b)
else:
    print(c)

二、None的判断

x = None
if x is None:
    print('None')
else:
    print('not None')

三、for循环

for i in range (0,30,5):
    print(i)

四、while循环


s = 0
i = 1
while i<= 100:
    s += i
    i += i
print(s)
for i in range(0,100):
    if i<10:
        pass
    elif i<30:
        continue
    elif i<35:
        print(i)
    else :
        break
//输出30,31,32,33,34

五、定义函数

def func_name(arg_1,arg_2):
    print (arg_1,arg_2)
    return arg_1,arg_2

r = func)name(1,2)
print(type(r))
print(r[0],r[1]) 

六、可变参数(必须在最后)

def func(name,*numbers)
    print (numbers)
    return 'Done'
func('Tom',1,2,3,4,'abc','df')
//输出一个元组,元组里面是1,2,3,4,‘abc','df'
def func(name,**kvs)
    print (name)
    print(type(kvs))
    print(kvs)
func('Tom',china = 'Beijing',uk = 'London')
//输出
Tom
<class,'dict'>
{'uk':'London','china':'Beijing'}
def func(a,b,c,*,china,uk)
    print(china,uk)
func(1,2,3,china = 'BJ',uk = 'LD')//正确
func(1,2,3,'BJ','LD')//错误
//即*号后面一定要带形参名字

def func(a,b,c=0,*args,**kvs)
    print"sonthing")

func(1,2,3,'a','b','c',china = 'BJ',uk = 'LD')
//可读性更高的代码
func(1,2,3,*('a','b','c'),**{'china':'BJ','uk':'LD'})
//输出
 1,2,3
 ('a','b')
 {'uk':'LD','china':'BJ'}

七、递归(效率很低)
斐波那契数列

def fib(n)
    if n<1:
        raise ValueError
    elif n<=2:
        return 1
    else:
        return fib(n-1)+fib(n-2)

print(fib(100))

汉诺塔问题
1、把 n-1 号盘子移动到缓冲区
2、把1号从起点移到终点
3、然后把缓冲区的n-1号盘子也移到终点
实现:

def hanoi(n,A,B,C):
     if n== 1:
         print(A+'->'+B)
     else:
         hanoi(n-1,A,B,C)
         print(A+'->'+B)
         hanoi(n-1,C,B,A)
hanoi(4,'A','B','C')

八、python里面函数是可以作为参数的(因为函数作为对象处理)

def sum(x,y,p=None):
    s = x+y
    if p:
        p(s)
    return s
sum(100,200)
sum(100,200,print)//输出结果300
def cmp(x,y,cp=None):
    if not cp:
        if x > y:
            return 1
        elif x<y:
            return -1
        else:
            return 0
    else:
        return cp(x,y)

def my_cp(x,y):
    if x<y:
        return 1
    elif x ==y:
        return 0
    else
        return -1

print(cmp(100,200))//输出-1
print(cmp(100,200,my_cmp))//输出1

猜你喜欢

转载自blog.csdn.net/missayaaa/article/details/80031789