2.3学习总结

模块和包

一、map和reduce

from functools import reduce
# 1.map
"""
用法一:
map(函数,序列)      --将原序列中的元素,按函数的标准转换成新的序列。
函数的要求:
a.是一个函数
b.有一个参数(指向后面的的这个序列的元素)
c.需要一个返回值(就新系列中的元素)
用法二:
map(函数,序列1,序列2)
函数的要求:
有两个参数(参数多少,看序列多少),分别指向后面两个序列的元素
返回值(新序列的元素)

"""
# 获取nums中所有元素的个位数,产生一个新列表
nums = [15, 45, 78, 65, 23]
result1 = map(lambda x: x % 10, nums)
print(list(result1))        # [5, 5, 8, 5, 3]

# 练习:将以下两个列表按照下面的要求转换字典: {'苹果': 1823, '小爱同学':22221, '耳机': 891, '天猫精灵': 78}
names = ['苹果', '小爱同学', '耳机', '天猫精灵']
nums = [1823, 22221, 891, 78]
result2 = map(lambda x, y: (x, y), names, nums)
print(dict(result2))

# 2.reduce  :要先导入包(from functools import reduce)
# 按照指定规则对序列中的元素进行合并操作
"""
reduce(函数,序列,初始值)
函数的要求:
a.函数
b.有且只有两个参数(第一个参数第一次指向初始值;从第二次开始,指向上一次的计算结果
;第二个参数指向序列中的每一个元素)
c.有一个返回值(返回值决定合并规则)

"""
# 求所有元素的和
nums = [12, 5, 89, 33]
result = reduce(lambda x, y: x + y, nums, 0)
# x第一次指向0,之后指向上一次计算结果(最后返回的是x的值),y指向每个元素。。。。。
print(result)       # 139

# 练习1:求所有的数的个位的和
nums = [23, 34, 56, 67, 8]
result3 = reduce(lambda x, y: x + y % 10, nums, 0)
print(result3)
# 练习2:求所有的元素的数值和
nums1 = [23, '78.9', 9, '10']
result4 = reduce(lambda x, y: x + float(y), nums1, 0)
print(result4)
# 练习3:求所有数字的乘积
nums2 = [23, 8.9, 'abc', True, '2']
# 三目运算符
result5 = reduce(lambda x, y: x * (y if type(y) in [int, float] else 1), nums2, 1)
print(result5)

二、模块的使用

# 1.什么是模块:
# 一个py文件就是一个模块
# python中可以再一个模块中去使用另外一个模块(命名要规范)中的所有全局变量,但是要导入

# 2.导入模块
"""
1)import 模块名  --导入后需要通过‘模块名(就是文件名).xxx’的形式去使用模块中的内容

2)from 模块名 import 变量名1,变量名2,,,,     ----导入指定模块的指定变量;导入后直接使用

3)重命名
import 模块名 as 新模块名(给模块名命名);     from 模块名import 变量名1 as 新变量名1,变量名2 as 新变量名2

4)通配符
from 模块名 import *       ---导入指定模块中所有的指定变量
"""
# 3.导入模块的原理
# 不管以什么样的方式导入模块,在进入的时候系统会自动进入被导入的模块,将模块中的代码全部执行一遍
# python导入模块的时候会自动检测是否被导入,只会导入一次,不会重复导入

# 这个if外面的代码才是会被其他模块执行的代码
if __name__ == '__main__':
    # 这个if里面的代码不会被其他模块调用执行,只能被自己执行
    pass

三、包的使用

# 1.什么是包
# 包就是用来管理多个模块的一种特殊的文件夹 (包含有__init__.py文件的文件夹)

# 2.怎么使用包中模块的内容
# ===========方法一:=========
# import files.jsonFile
# files.jsonFile.json_read()

# ===========方法二:=========
# import files.jsonFile as jf
# jf.json_read()

# ==========方法三:=========
# from files import jsonFile
# jsonFile.json_read()

# ==========方法四:=========
# from files.jsonFile import json_read
# json_read()


# 3.__init__.py
# 通过包导入内容的时候,会先执行__init__.py文件中的内容

# import files
# files.jsonFile.json_read()
# print(files.otherFile.abc)

# from files import *
# json_read()
# text_write()

from files import open_file
open_file()
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值