我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

python学习第三天_刘国平_20210120

[复制链接]
果丹卷学员认证 发表于 2021-1-20 22:38:30 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、工作内容:
9:00-20:00
1.递归函数
n=int(input('please input a integer:'))
s=1
while n!=0:
    s=s*n
    n=n-1
print(s)

def factorail(n):
    s=1
    for i in range(1,n+1):
        s*=i
    return s
print(factorail(5))


#递归函数中一定要有对自己的调用
#递归函数中一定要有边界条件
def fact(n):
    if n==1:
        return 1
    return(fact(n-1)*n)
print(fact(5))

2.切片
ames = ['赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞']
#names[a:b]截取从下标a开始到下标b结束的所有元素,包含a,不包含b,a,b可以为负数。
#names[a:b:c] c为步长
print(names[0:3])
print(names[-3:0])

#如果第一个索引是0,可以省略
print(names[:3])
#如果一直截取到末尾,可以省略第二个索引
print(names[3:])
#复制列表
l=names[:]
print(l)
#指定步长,默认步长值为1
#列表切片后还是列表
print(names[0::2])
#元组也可以切片,结果还是元组
y=('赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞')
print(y[0::3])
#字符串也可以切片,结果还是字符串
s='abcdef'
print(s[0::2])

3.迭代
names = ['赵梦冰','张荣亮','侯富君','王颜丽','焦新瑞']
'''
#循环、遍历、迭代iteration
#可迭代对象:列表 元组 字典
for name in names:
    print(name)
'''
#遍历key
name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
for key in name_scores:
    print(key,name_scores[key])
#遍历value
for value in name_scores.values():
    print(value)
#同时遍历key和value
for key,value in name_scores.items():
    print(key,value)
#遍历字符串
i=0 #循环控制变量
for char,i in enumerate('abcdef'):
    print(i,char)
'''如何判断一个对象是可迭代对象'''
from collections.abc import Iterable
#isinstance(obj,type)判断对象obj是否是type类型,是则返回True,否则返回False
print(isinstance(1,int))
print(isinstance('1',int))
print(isinstance(names,Iterable))

4.列表生成式
nums=list(range(10))
nums=list(range(6,10))
print(nums)
#[1*1,2*2,3*3     9*9]
#方法一
nums=[1*1,2*2,3*3]

#方法二
nums=[]
for x in range(1,10):
    nums.append(x*x)
print(nums)

#方法三  列表生成式
m=[x*x for x in range(1,10)]
print(m)
#练习
l=[fraction(1,x) for x in range(1,10)]
print(l)
#列表生成式中添加条件判断
m=[x*x for x in range(1,10) if x%2==0]
print(m)
#列表生成式中使用多重循环
p=[x+y for x in 'ABC' for y in 'XYZ']
#用列表生成式生成元组
q=tuple([x*x for x in range(1,10)])
print(q)

21:00-23:00
做作业
用递归函数实现fibonacci数列某一项的求解
#     1 2 3 4 5 6 7
#     1 1 2 3 5 8 13...
def f(n):
    if n==3:
        return(2)
    if n<3:
        return(1)
    return(f(n-1)+f(n-2))
print(f(1),f(2),f(3),f(4),f(5),f(6))

测试元组生成式和字典生成式

t=tuple([x*x for x in range(1,10)])
print(t)


name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
d={k:v for k,v in name_scores.items() if v<90}
print(d)

# 实现一个trim()函数,利用切片去除字符串前后的空格
#    ' tom cruse '
# 循环方式
def trim(s):
    l=len(s)
    if l>0:
        for i in range(l):
            if s[i]!=' ':
                break
        j=l-1
        while s[j]==' 'and j>=i:
            j-=1
        s=s[i:j+1]
    return s

print(trim('   dvb   '))

#  将下面列表中的所有字符变为小写:(列表生成式)
#     ['Tom','MIKE','VM','Python']
#     'Tom'.lower()
h=['Tom','MIKE','VM','Python']
l = [s.lower() for s in h if isinstance(s,str)]
print(l)
#  使用迭代查找一个列表中的最大值和最小值,返回一个tuple
def s(list):
    if list!=[]:
        (max,min)=(list[0],list[0])
        for x in list:
            if x<min:
                min=x
            if x>max:
                max=x
    return max,min

print(s((20,36,68,21,59,35)))

二、遇到的问题:
元组生成式和字典生成式
三、处理方式(网上查找):
t=tuple([x*x for x in range(1,10)])

name_scores= {'赵梦冰':88,'张荣亮':99,'侯富君':77,'王颜丽':89,'焦新瑞':93}
d={k:v for k,v in name_scores.items() if v<90}

回复

使用道具 举报

关注0

粉丝0

帖子15

发布主题
大家都在学
课堂讨论
一周热帖排行最近7x24小时热帖
关注我们
专注软件测试菁英教育

客服电话:17792550360

客服时间:9:00-21:00

卓目鸟学苑 - 专注软件测试菁英教育!( 陕ICP备2025058934号-2 )

版权所有 © 西安菁英教育科技有限公司 2023-2026