一、學習內(nèi)容
'''遞歸函數(shù)'''
# a = int(input('請輸入一個數(shù)字:'))
# f = 1
# while a <0:
# print('負數(shù)沒有階乘')
# 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: #遞歸函數(shù)中一定要有邊界條件
return 1
return fact(n-1)*n #遞歸函數(shù)中一定要有對函數(shù)自己的調(diào)用
print(fact(5))
'''切片'''
names = ['白李娜','賀威棟','焦新瑞','張國榮','代金鑫']
# names[a:b:c]表示截取從下表a開始到下表b結(jié)束的所有元素,但是包含a,不包含b。
#c表示步長,默認值是1
#列表切片后還是列表
names[0:3]
print(names[2:3])
#切片支持負數(shù)索引
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 = ['白李娜','賀威棟','焦新瑞','張國榮','代金鑫']
#循環(huán),遍歷,迭代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))
#循環(huán)控制變量,顯示循環(huán)次數(shù)
i = 0
for char in 'abcdef':
print(i,char)
i = i+1
print('------------------------------------------------------')
#簡化方式提供循環(huán)遍歷
for i,char in enumerate('abcdef'):
print(i,char)
#列表生成式中使用多重循環(huán)
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)
|