美文网首页程序员
Python学习笔记-循环与函数

Python学习笔记-循环与函数

作者: 简_山 | 来源:发表于2017-09-27 01:12 被阅读0次

# -*- coding: utf-8 -*-

#for 循环

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

print(i)

''' for 循环形式:for i in range(start,end,steps)

遍历算法

'''

#while循环

s = 0

i = 1

while i<=100:

s +=i

i +=1

print(s)  #运行结果:5050

# continue pass break

for i in range(0,100): #定义变量范围

if i <100:

pass #什么也不做

elif i<30:

continue #进入下一次循环,其实这里也是什么都不做。

elif i <35:

print(i)

else:

break #中断循环,

#函数定义

def func_name(arg_1,arg_2):

print(arg_1,arg_2)  #一定要空格

return arg_1+arg_2  #返回值,如果是多个值,则会返回元组。

r = func_name(1,2)

print(r)

print(type(r))

#默认函数

def func(x,y=500): #y不指定值时,会默认返回500

print('x= ',x)

print('y=',y)

return x+y

print(func(100))  #即:输出x 100,y 500

print(func(y=300,x=200)) #函数内的参数名字顺序可以随意调换。

print(func(x=400))

def func(p):

print('x=',p['x'])

print('y=',p['y'])

print(func({'x':200,'y':100})) #也可以用字典实现以上类似的功能

#可变参数

def func(name,*numbers): #参数前加*,表示为可变参数

print(type(numbers))  #类型为 tuple 元组类型。

'''实际上是把参数name后面的所有参数放到一个数组里面去,

而且类型无要求,元组内的元素类型可以不同。

'''

print(numbers)

print(numbers[0])

return 'done'

func('1',2,3,54)  # tuple -元祖 <=>只读数组

#可变参数怎么引用

def my_print(*args):

print(args)

print(*args) #表示,把数组作为可变参数处理

my_print(3,2,3,'ab','c')

def func(name,**kvs): #**意味着 key/value 类型的字典

print(name)

print(type(kvs))

print(kvs)

func('tom',chin='beijing',uk='london')

def func(a,b,c=0,*args,**kvs):

print(a,b,c)

print(args)

print(kvs)

func(1,2)

func(1,2,3)

func(1,2,3,'a','b')

func(1,2,3,'a','b',china='BJ',uk='LD')

func(1,2,3,*('a,','b'),**{'china':'BJ','uk': 'LD'}) #与上一行相比,增加了代码的可读性

def my_print(*args):

print(*args)

my_print('x=',100,'; y=',200)

#递归:把大问题分解为小问题进行求解

#斐波那契数列 f(n) = f(n-1) +f(n-2)

def fib(n):

if n<1:

raise ValueError

if n<=2:

return 1

else:

return fib(n-1) + fib(n-2)

print(fib(1))

print(fib(2))

print(fib(3))

print(fib(4))

print(fib(5)) # 如果是fib(40)的话,计算速度太慢

#汉诺塔问题

def hanoi(n,A,B,C):

if n==1:

print(A + "->" + B)

else:

hanoi(n-1,A,C,B)

print(A + "->" + B)

hanoi(n-1,C,B,A)

hanoi(4,'A','B','C')

#函数作为参数

p = print

p (1,2,3) #调用P和调用print是等价的

def sum(x,y,p =None):

s = x+y

if p:  #表示 P为真的时候,执行下面操作即P不是None

print(s)

return s

sum(100,200) #第三个参数为None,不执行if,即不打印s

sum(100,200,print) # 第三个参数不是None,即执行print(s)

#比较函数

def cmp(x,y,cp=None):

if not cp:

if x>y:

return 1

elif x

return -1

else:

return 0

def my_cp(x,y):

if x

return 1

elif x==y:

return 0

else:

return -1

print(cmp(100,200))

print(my_cp(100,200))

#例子

def do_sum(data,method):

return method(data)

print(do_sum([1,2,3,4],sum))

原文链接

elif x

相关文章

网友评论

    本文标题:Python学习笔记-循环与函数

    本文链接:https://www.haomeiwen.com/subject/rpkyextx.html