我的账户
啄木鸟学院

专注软件测试菁英教育

亲爱的游客,欢迎!

已有账号,请

如尚未注册?

Python_白李娜_20210120

[复制链接]
つ兜兜里没糖学员认证 发表于 2021-1-20 22:13:05 | 显示全部楼层 |阅读模式 打印 上一主题 下一主题
一、整理笔记
可变参数
   -在参数的前面添加*,就称为可变参数
   -可变参数不限制传入的参数的个数
   -它实际上是把所有传入的参数封装为 一个元组
   -*添加在形参的前面,作用是把传入的参数打包成一个元组
   -*添加在实参的前面,作用是把列表或元组进行拆包成一个一个独立的数据
#可变参数函数
def g(*nums):
    s=0
    for i in nums:
        s+=i
    return s
print('s=%s'%g(1,2,3,4,5,7,8))
#print('s=%s'%g(l[0],l[1],l[2]))
print('s=%s'%g(*l))
关键字参数
   -在参数前t添加**,就称为关键字参数
   -关键字参数应当以key=value的形式进行传参
   -关键字参数不限制传入的参数的个数,可以是多个,也可以是0
   -实际上是把所有传入的参数封装为 一个字典
def student(name,age,**info):
    print (name,age,info)
student('tom',22,gender='',city='西安')
命名关键字参数
   -命名关键字参数应当以key=value的形式进行传参
   -命名关键字参数与位置参数类似,实参和形参的数量必须匹配
   -命名关键字参数还可以给默认值
def student2(name,age,*,gender,city):
    print (name,age,gender,city)
student2('lili',22,gender='',city='西安')
#可以接收任意数量,类型的参数
#*args,**kw 通用参数列表
def function(*args,**kw):
    pass
'''递归函数'''
#递归函数中一定要有对函数自己的调用
#递归函数中一定要有边界条件
def fact(n):
    if n == 1:
        return 1
    return fact(n-1)*n
print(fact(5))
'''切片'''
names = ['bailina','xiaobai','bai','lina']
#names[a:b:c]表示截取从下标为a 到下标b结束的所有元素,但包含a,不包含b
#c是步长
#列表切片后还是列表
print (names[0:3])
print (names[-3:-1])
#如果第一个索引是0,可以省略
print (names[:3])
#如果一直截取到末尾,可以省略第二个索引
print (names[1:])
#复制列表
l = names[:]
print (l)
#切片时还可以指定步长,步长值默认是1
print(names[0::3])
#元组也可以切片,结果还是元组
tuple =(1,2,3,4,5,6,7)
print (tuple[0:3])
#字符串也可以切片,结果还是字符串
s = "abcdef"
print (s[1:4])
'''迭代'''
names = ['bailina','xiaobai','bai']
#循环,遍历,迭代iteration
#names :可迭代对象:列表,元组,字典 ,字符串
for name in names:
    print(name)
print('-------------------------------------')
#遍历key
name_scores = {'bailina':99,'xiaobai':99,'libai':100}
for key in name_scores:
    print(key,name_scores[key])
#遍历value
for value in name_scores.values():
    print(value)
#同时遍历keyvalue
for key ,value in name_scores.items():
    print(key,value)
#遍历字符串
str ='abcdef'
i = 0  #控制循环变量
for char in str:
    print(i,char)
    i = i +1
#简化方式提供循环遍历
for i ,char in enumerate(str):
    print(i,char)
#生成一个列表
# nums = [0,1,2,3,4,5,6,7,8,9]
nums = list(range(0,10))
print(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)
#[1,1/2,1/3]
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)
#用列表生成式生成元组
a = tuple([x*x for x in range(1,10)])
print(a)

回复

使用道具 举报

关注0

粉丝0

帖子30

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

客服电话:17792550360

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

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

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