day17_python

之前一个不小心把之前的全部删除了,也没有办法回复,所以以后还是在博客上记录一下

内置函数

55个内置函数

带key的max() min() filter() map() sorted()

匿名函数

lambda 参数1,参数2: 返回值表达式

五个特殊的内置函数可以结合使用

生成器和迭代器

用map来处理字符串列表,把列表中所有人都变成sb,比如alex_sb

name = ['alex', 'wupeiqi', 'yuanhao', 'nezha']

def func(item):
return item + '_sb'

ret = map(func, name)
for i in ret:
print(i)

print(list(i)) # list把字符串拆开变为每一个元素
print(list(ret)) # ret为迭代器,取完后就不含有元素,返回一个空列表
ret = map(lambda item: item+'_sb', name) # lambda与函数无关
print(list(ret))
print(list(ret)) # ret迭代器,取完后依旧消失

用filter()函数处理数字列表,将列表中所有的偶数筛选出来

num = [1, 3, 5, 7, 8]

def func1(x):
if x % 2 == 0:
return True # return x % 2== 0

ret = filter(func1, num) # func和可迭代的 filter返回值为迭代器
print(list(ret))
ret = filter(lambda x: True if x % 2 == 0 else False, num) # 冒号后面可以写表达式和for循环

随意写一个20行以上的文件

运行程序,先将内容读取到内存中,用列表存储

接收用户输入页码,每页5条,仅仅输出当页的内容

with open('C:/Users/dell/Desktop/test20.txt', encoding='utf-8') as f:
p = f.readlines()
page_num = int(input('输入页码:'))

1,1-5

2, 6-10

3, 11-15

4, 16-20

pages, mod = divmod(len(p), 5) # 商余函数,返回两个值
if mod: # mod不为零
pages += 1
if page_num > pages:
print('error')
elif page_num == pages and mod != 0:
for i in range(mod):
print(p[(page_num-1)5 + i].strip()) # 取消输出换行
else:
for i in range(5):
print(p[(page_num-1)
5 + i].strip())

如下,每一个小字典的name对应股票名字,shares对应多少股,price对应股票的价格

portfolio = [
{'name': 'IBM', 'shares': 100, 'price': 91.1},
{'name': 'AAPL', 'shares': 50, 'price': 543.22},
{'name': 'FB', 'shares': 200, 'price': 21.09},
{'name': 'HPQ', 'shares': 35, 'price': 31.75},
{'name': 'YHOO', 'shares': 45, 'price': 16.35},
{'name': 'ACME', 'shares': 75, 'price': 115.65}
]

计算购买每只股票的的总价?

ret = map(lambda dic: {dic['name']: round(
dic['share']*dic['price'], 2)}, portfolio) # round 精确小数位
print(list(ret))

用filter()过滤出单价大于100的股票有哪些?

ret = filter(lambda dic: True if dic['price'] > 100 else False, portfolio)
ret = filter(lambda dic: dic['price'] > 100, portfolio)
print(ret)
###########################################################################################

上一篇:firewall-cmd设置NAT转换


下一篇:day17-面向对象基础