一、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