菁英科技(卓目鸟学苑)- 专注软件测试菁英教育
标题: python 武浩杰 20210120 [打印本页]
作者: 海底月是天上月 时间: 2021-1-20 22:11
标题: python 武浩杰 20210120
'''
递归函数
'''
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)
欢迎光临 菁英科技(卓目鸟学苑)- 专注软件测试菁英教育 (http://www.zmnxy.com/) |
Powered by Discuz! X3.4 |