鱼C论坛

 找回密码
 立即注册
查看: 2174|回复: 5

[技术交流] 《零基础入门学习Python》51讲内容归纳

[复制链接]
发表于 2019-8-12 23:39:12 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
小牛有话说:
        各位鱼油,大家好。我是小牛,再回首,已经三年时间过去了。小牛也从一名学生成为了一名人民教师,希望能在暑假里把前面挖的坑给填起来一部分,也衷心地希望各位鱼油能在阅读帖子过程中有所收获。。。。。。

本期主要内容导读:
        这一期我们归纳一下鱼神第五十一讲“模块:__name__='__main__'、搜索路径和包”。顾名思义,这一期里面鱼神主要讲解了模块中__name__属性的妙用,模块的搜索路径和模块打包的相关知识。
1.模块中__name__的含义和作用
        __name__属于系统内置的变量,对于一个模块中的__name__值:如果该模块是被导入,则__name__的值为模块名字;如果模块是被直接执行,__name__的值为’main’,举例说明:
def c2f(cel):
    fah = cel*1.8 + 32
    return fah
def f2c(fah):
    cel = (fah-32)/1.8 
    return cel
if __name__ == '__main__': #判定该模块程序是自己运行还是被调用
    print("__name__的值为%s"%(__name__))
    print("验证,0摄氏度 = %.2f华氏度"%(c2f(0)))
    print("验证,20华氏度 = %.2f摄氏度"%(f2c(0)))
else:
    print("__name__的值为模块名%s"%(__name__))
       
        由于该模块是直接运行,所以__name__ 的值为"__name__",运行结果为:
__name__的值为__main__
验证,0摄氏度 = 32.00华氏度
验证,20华氏度 = -17.78摄氏度

        当通过calc.py进行调用,相关代码如下:
from Temperature_Conversion import *
print("输入的摄氏温度为100,转换后的华氏温度为%.2f"%(c2f(100)))
print("输入的华式温度为212,转换后的摄氏温度为%.2f"%(f2c(212)))
        由于是通过别的模块调用Temperature_Conversion模块,所以Temperature_Conversion模块内的__name__ 的值为模块名,运行结果为:
__name__的值为模块名Temperature_Conversion
输入的摄氏温度为100,转换后的华氏温度为212.00
输入的华式温度为212,转换后的摄氏温度为100.00
       
在大型工程中,常常有if __name__ == "__main__":来表明整个工程开始运行的入口。

2.模块的搜索路径用法
        当通过import语句调用需要的模块时,程序会按照默认的路径查找调用的模块名。那么Python程序中默认的查找路径是什么呢,在idle在输入一下代码获得默认路径:
import sys
print(sys.path)
获得默认搜索路径如下:
'', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\Lib\\idlelib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\python37.zip', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\DLLs', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\lib', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37', 'C:\\Users\\Administrator\\AppData\\Local\\Programs\\Python\\Python37\\lib\\site-packages'
        默认路径与用户电脑配置有关,一般情况下,建议用户将需要调用的模块放入"site-packages"文件夹下,当然将调用模块直接放在主程序同一目录下也是最简单有效的方式。
        另外,也可以不改变调用模块文件的位置,只需要通过在默认路径中加入调用模块所在的路径即可,举例说明:
sys.path.append(r"D:\python_tests\case50")  #首先将Temperature_Conversion.py模块的位置添加到默认的Python程序路径内
        此时输入以下代码:
import Temperature_Conversion
print("20摄氏度=%.2f华氏度"%Temperature_Conversion.c2f(20))
        则会显示以下结果:
20摄氏度=68.00华氏度
        表明此时可以直接调用Temperature_Conversion模块。
3.模块的包用法
        对于大型工程代码,可能会有成千上万个模块,此时如果一股脑放在一起或者像上面一样添加默认路径显然不现实,此时就需要我们将不同的模块分类放入不同的文件夹下,直接将每一个文件夹打包进行调用即可。
        具体的打包过程需要三个步骤:(1)创建一个文件夹,文件夹名即打包名;(2)在创建的文件夹内创建__init__.py模块,表明所在文件夹是用来进行打包的,__init__.py模块内容可为空;(3)将调用模块放入该文件夹内;
        (4)在主程序内通过 import 文件夹名.调用模块名 进行模块调用。实例说明如下:
        新建一个文件夹Bao,并在Bao文件夹下创建__init__.py,接着将Temperature_Conversion.py放入该文件夹下;在calc.py程序中加入如下调用代码:
import Bao.Temperature_Conversion
print("输入的摄氏温度为100,转换后的华氏温度为%.2f"%(Bao.Temperature_Conversion.c2f(100)))
print("输入的华式温度为212,转换后的摄氏温度为%.2f"%(Bao.Temperature_Conversion.f2c(212)))
        执行后显示结果如下:
__name__的值为模块名Bao.Temperature_Conversion
输入的摄氏温度为100,转换后的华氏温度为212.00
输入的华式温度为212,转换后的摄氏温度为100.00
        根据第50讲内容,这里在calc.py程序里面推荐如下代码进行调用:
import Bao.Temperature_Conversion as tc
print("输入的摄氏温度为100,转换后的华氏温度为%.2f"%(tc.c2f(100)))
print("输入的华式温度为212,转换后的摄氏温度为%.2f"%(tc.f2c(212)))

评分

参与人数 2荣誉 +5 鱼币 +8 贡献 +6 收起 理由
kykio + 3 + 5 + 3 感谢楼主无私奉献!
小甲鱼 + 2 + 3 + 3 鱼C有你更精彩^_^

查看全部评分

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-8-13 08:35:02 | 显示全部楼层
写的真棒!帮顶一个~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-22 08:01:48 | 显示全部楼层
羡慕了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-11 07:57:59 | 显示全部楼层
收藏收藏,楼主太棒了趴
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-11-11 10:38:51 | 显示全部楼层
已收藏
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-3-2 11:31:50 | 显示全部楼层
不更新的拉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-22 14:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表