''' 递归函数 ''' n = int(input('请输入n的值:')) s = list(range(1,n+1)) n = len(s) a = 1 while n>1: a = a*s[n -1] n = n - 1 print('a=%d'%a) ''' def factorail(n): s = 1 for i in range(1,n+1): s *= i return s print(factorail(5)) 阿飞 ''' n! = (n-1)!*n (n-1)! = (n-2)!*n ... 2! = (2-1)!*2 1! = 1 ''' # 递归函数 def fact(n): if n==1: #2.递归函数中一定要有边界条件 return 1 return fact(n-1)*n # 1.递归函数中一定要有对函数自己的调用 print(fact(5)) '''切片''' ''' names = ['赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞','张国荣','吕煜海 names[a:b:c]表示截取从下标a开始到下标b结束的所有的元素,但是包含a不包含b c 表示步长,默认值时1 列表切片后还是列表 元组切片后还是元组 字符串切片还是字符串 print(names[0:3]) print(names[-7:-4]) #切片支持负数索引 print(names[2:]) print(names[:3])# 如果第一个0时,可以省略 print(names[:3])# 如果一直截取到末尾,可以省略第二个索引 # 复制列表 l = names[:] m = names print('------------------------------------------') m.append('白李娜') print(names) print(l) print(m) # 切片时还可以指定步长,步长值默认是1 print(names[::2]) ''' 元组也可以切片,结果还是字符串 names = ('赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞','张国荣','吕煜海') print(names[0:3]) 字符串也可以切片,结果还是字符串 s = 'abcdef' print(s[1:3]) '''迭代''' names = ['赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞','张国荣','吕煜海'] 循环,遍历,迭代Iteration names:可迭代对象 可迭代对象:列表,元组,字典,字符串 for name in names: print(name) print('---------------------') # 遍历key name_scores = {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93,'张国荣':98,'吕煜海':85} for key in name_scores: print(key) # name_scores = {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93,'张国荣':98,'吕煜海':85} for key in name_scores: print(key,name_scores[key]) print('---------------------') # 遍历value for value in name_scores.values(): print(value) # 同时遍历key和value for key,value in name_scores.items(): print(key,value) # 遍历字符串 for char in 'abcdef': print(char) '''如何判断一个对象是可迭代对象''' from collections.abc import Iterable isinstance(obj,type)判断对象obj是否是type类型,是则true,否则false print(isinstance(1,int)) print(isinstance('1',int)) print(isinstance('1',str)) print(isinstance(names,Iterable)) i = 0 #循环控制变量 for char in 'abcdef': print(i,char) i = i + 1 # # 简化方式提供循环遍历 # for i,char in enumerate('abcdef'): # print(i,char) '''列表生成式''' nums = [0,1,2,3,4,5,6,7,8,9] nums = list(range(6,10)) nums = list(range(10)) print(nums) # 方法一 # [1*1,2*2,3*3,....,9*9] nums = [1*1,2*2,3*3,9*9] # 方法二 nums = [] for x in range(1,10): nums.append(x*x) print(nums) # 方法三 -列表生成式 # m = [x*x for x in range(1,10)] # print(m) m = [1/n for n in range(1,10)] print(m) # 列表生成式中添加条件判断 o = [x*x for x in range(1,10) if x%2==0] print(o) # 列表生成式中使用多重循环 p = [x+y for x in 'ABC' for y in 'xyz'] print(p) q = list([x*x for x in range(1,10)]) print(q) q = tuple([x*x for x in range(1,10)]) print(q) q = dict([x*x for x in range(1,10)]) print(q)
|