一、学习内容
'''递归函数'''
# a = int(input('请输入一个数字:'))
# f = 1
# while a <0:
# print('负数没有阶乘')
# while a == 0:
# print('0的阶乘为1')
# else:
# for i in range(1,a+1):
# f = f*i
# print('%d的阶乘为%d' %(a,f))
# def factorail(n):
# s = 1
# for i in range(1,n+1):
# return s
# print(factorail(5))
'''
n!=(n-1)!*n
(n-1)!=(n-2)!*(n-1)
''''''
2! = (2-1)!*2
1!=1
'''
def fact (n):
if n==1: #递归函数中一定要有边界条件
return 1
return fact(n-1)*n #递归函数中一定要有对函数自己的调用
print(fact(5))
'''切片'''
names = ['白李娜','贺威栋','焦新瑞','张国荣','代金鑫']
# names[a:b:c]表示截取从下表a开始到下表b结束的所有元素,但是包含a,不包含b。
#c表示步长,默认值是1
#列表切片后还是列表
names[0:3]
print(names[2:3])
#切片支持负数索引
print(names[-3:-1])
#如果第一个索引是0,可以省略
print(names[:2])
#如果一直截取到末尾,可以省略第二个索引
print(names[3:])
#复制列表
l=names[:]
print(l)
print('---------------------------------------------')
l.append('赵梦冰')
print(names)
print(l)
#切片时还可以指定步长,步长默认值是1
print(names[0::2]) #从0开始隔2个取一个
print(names[0::3]) #从0开始隔3个取一个
#元组也可以切片,切片后还是元组
name = ('白李娜','贺威栋','焦新瑞','张国荣','代金鑫')
name[0:3]
print(name[2:3])
#字符串也可以切片
s='fjfjf'
print(s[2:3])
'''迭代'''
names = ['白李娜','贺威栋','焦新瑞','张国荣','代金鑫']
#循环,遍历,迭代iteration
#names:可迭代对象
#可迭代对象:列表,元祖,字典,字符串
for name in names:
print(name)
print('--------------------------------------------------------------')
#遍历key
name_scores = {'白李娜':88,'贺威栋':99,'焦新瑞':77,'张国荣':78,'代金鑫':87}
for key in name_scores:
print( )
print(key,name_scores[key])
print('--------------------------------------------------------------')
#遍历value
for value in name_scores.values():
print(value)
print('--------------------------------------------------------------')
#同时遍历key和value
for key,value in name_scores.items():
print(key,value)
print('--------------------------------------------------------------')
#遍历字符串
for char in 'abcdef':
print(char)
'''如何判断一个对象是可迭代对象'''
from collections.abc import Iterable
#isinstance(obj,type) 判断对象obj是否是type类型
print(isinstance(1,int))
print(isinstance('1',int))
print(isinstance('1',str))
print(isinstance(names,Iterable))
print(isinstance(1,Iterable))
print(isinstance('1',Iterable))
print(isinstance(5,Iterable))
print(isinstance('a',Iterable))
print(isinstance('樊江飞',Iterable))
#循环控制变量,显示循环次数
i = 0
for char in 'abcdef':
print(i,char)
i = i+1
print('------------------------------------------------------')
#简化方式提供循环遍历
for i,char in enumerate('abcdef'):
print(i,char)
#列表生成式中使用多重循环
p = [x+y for x in 'ABC' for y in 'XYZ']
print(p)
d = [x+y+i for x in 'ABC' for y in 'XYZ' for i in 'FJF']
print(d)
|