Python学习基础笔记七十——模块和库1

news2025/2/1 1:54:12

模块和库:

一个python代码文件就实现了功能。功能比较单一。

在企业中,项目开发的文件,可能有成百上千个。

不同的代码文件,实现了不同的功能模块,就像一块块积木一样。这些功能文件整合起来,实现一个完整的软件。

在python中,一个代码文件,也就是一个.py文件,我们也叫它一个模块(module)。

a.py 文件,我们称之为模块a。

b.py文件,我们称之为模块b。

模块就是代码文件的意思。

模块之间的调用:

那么代码模块之间是怎么互相联系的呢?

案例:输入总费用和聚餐人数,计算人均费用的功能。单独实现一个模块文件aa.py

fee = input('请输入午餐费用: ')
members = input('请输入聚餐人员姓名,以英文逗号,分隔:')

memberlist = members.split(',')

headcount = len(memberlist)

avgfee = int(fee) / headcount

print(avgfee)

放到列表中,是为了得到人数。 

但是,我们需要将每次账单记录到文件中,这样才能定期进行结算。

我们可以创建另外一个模块文件save.py, 在里面定义一个函数,该函数实现记录消费信息到文件的功能。

def savetofile(memberlist, avgfee):
    with open('record.txt', 'a', encoding='utf8') as f:
        recorditem = [f'{member}:{avgfee}' for member in memberlist]
        f.write(' | '.join(recorditem) + '\n')

聚餐人数的列表和平均费用。

a是文件的追加模式。

通过列表推导式,产生    人员列表:平均费用  这样的列表项。

然后还使用了|分隔符。

就这段代码,也有很多内容值得我们学习的。

现在aa.py和save.py两个模块文件。

方法一:

在aa.py里面通过import关键字导入模块save。

import save

导入save模块。模块文件对象。

导入后,save模块就成为模块aa中的一个变量,对应一个模块对象。

模块也是一个对象。

save.savetofile(memberlist, avgfee)

使用save模块中里面的savetofile函数。

到save模块找savetofile的名字,这个名字对应的是一个函数。

方法二:

还可以在aa.py里面通过from import 关键字导入其他模块里的标识符(或者是变量名或者是函数名等。)

from save import savetofile

导入之后,这些其他模块的变量名和函数名就称为模块aa 里面的变量名、函数名了。

这样,我们就可以直接使用它们了。

完整代码:

from save import savetofile

fee = input('请输入午餐费用: ')
members = input('请输入聚餐人员姓名,以英文逗号,分隔:')

memberlist = members.split(',')

headcount = len(memberlist)

avgfee = int(fee) / headcount

print(avgfee)

savetofile(memberlist, avgfee)

一些技巧:

1)如果在一些模块文件中需要导入多个其他模块文件,可以分开写导入语句。

import aa
import bb
import cc

也可以一起导入:

import aa, bb, cc

2)如果我们要从1个模块中导入多个标识符:

from aa import func1, var1, func2, var2

3)如果到导入的1个模块中有很多个标识符:

from aa import *

通配符,把aa模块中所有可以导入的对象全部都导入了。

4)如果从两个模块中导入函数,恰好两个函数是同名的,那么我们可以使用别名。

from save import savetofile
from save2 import savetofile as savetofile2

当一个b模块从a模块导入了名字 var1 后,注意,b模块和a模块 是 各自有一个 名为 var1 的变量 , 而不是两个模块共享一个 名为 var1 的变量。

如果要在多个模块中共享同一个数据对象,并且这个数据对象的值将来可能会改变。

即使共享的只是一个数字或者字符串变量, 也应该放在一个值可以变动的对象类型中。 比如:列表, 或者后面要学习的 字典 和 自定义类型。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1093955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

git-ssh-key协议同步文件

生成秘钥 ssh-keygen -t rsa ssh-keygen -t rsa Generating public/private rsa key pair. Enter file in which to save the key (/c/Users/Beza/.ssh/id_rsa): /c/Users/Beza/.ssh/id_rsa already exists. Overwrite (y/n)? y Enter passphrase (empty for no passphrase): …

进化算法------代码示例

前言 遗传算法就是在一个解空间上,随机的给定一组解,这组解称为父亲种群,通过这组解的交叉,变异,构建出新的解,称为下一代种群,然后在目前已有的所有解中抽取表现好的解组成新的父亲种群&#…

Linux开发工具:vim的介绍和用法及其简单配置

前言 Vim 简介. 编辑. Vim是从 vi 发展出来的一个文本编辑器。. 代码补全、编译及错误跳转等方便编程的功能特别丰富,在程序员中被广泛使用,和Emacs并列成为类Unix系统用户最喜欢的文本编辑器。. [1] vim的设计理念是命令的组合。. 用户学习了各种各样的…

公众号主体注销被冻结了,怎么迁移?

公众号迁移的好处有哪些?迁移后原公众号还能用吗?1)获得更多权限功能如果公众号是个人主体,想进行认证,拥有更多权限功能。例如菜单栏跳转外部链接,相拥有留言功能,服务号认证获得开发权限等。就…

java社区商店生鲜商城电商平台springboot+vue

使用Vue框架的开发可以把前后台完全分离,前后端代码互不影响,代码上完全独立。而且Vue是用MVC或者称为MVVC的方式,使得前端代码也区分出model,controller and view层,代码做到更好的控制运行也更流畅。 jdk版本&#x…

Django 使用Mysql数据库

目录 Django 使用Mysql数据库本地安装Mysql数据服务安装好Pymysql服务Django配置数据库迁移各种报错无法找到mysqlclient数据库拒绝连接 Django 使用Mysql数据库 本地安装Mysql数据服务 安装好Pymysql服务 python3 -m pip install PyMySQL官方文档介绍 Django配置 官网文档 …

访问量突破1W,纪念一下~

Mr.kanglong, 继续加油!

LeetCode讲解篇之138. 随机链表的复制

LeetCode讲解篇之138. 随机链表的复制 文章目录 LeetCode讲解篇之138. 随机链表的复制题目描述题解思路题解代码 题目描述 题解思路 先遍历一遍链表,用哈希表保存原始节点和克隆节点的映射关系,先只克隆节点的Val,然后再次遍历链表&#xff…

【SOA-KELM分类】基于海鸥算法优化核极限学习机分类研究(Matlab代码实现)

💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜密,逻辑清晰,为了方便读者。 ⛳️座右铭&a…

macbook笔记本电脑内存怎么清理才能干净流畅?

假如你还在为“你的系统内存不足”的提示所困扰,或者你的Mac电脑突然运行缓慢和卡顿,那么你一般需要认真了解一下macbook内存怎么清理了? MacBook是功能强大的电脑,这点毫无疑问,但是它仍旧会随着时间推移变得运行缓慢。值得庆幸…

【C++】继承 -- 详解

一、继承的概念及定义 1、继承的概念 继承 (inheritance) 机制是面向对象程序设计使代码可以复用的最重要的手段,它允许程序员在保 持原有类特性的基础上进行扩展,增加功能,这样产生新的类,称派生类。 继承呈现了面向对象 程序设…

asp.net老年大学信息VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio计算机毕业设计

一、源码特点 asp.net老年大学信息管理系统是一套完善的web设计管理系统,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。开发环境为vs2010,数据库为sqlserver2008,使用c# 语言开发 asp.net老年大学信息管理系统…

Linux 基础(从环境搭建到基础命令)

前言 一般来说,当我们写好一个网站,是需要部署到服务器上的。而服务器层面,最主流的操作系统就是 Linux。本章就重点来总结一下 Linux 环境搭建 以及最常用的一些 命令。 一、Linux环境搭建 1、购买云服务器 对于Linux来说,有…

基于PHP的芒果销售交易平台

有需要请加文章底部Q哦 可远程调试 基于PHP的芒果销售交易平台 一 介绍 芒果销售交易平台基于原生PHP开发,数据库mysql,前端bootstrap。用户可注册登录,购物下单,评论等。管理员登录后台可对芒果,用户,订…

Stable Diffusion绘画,卡通,教室

1 girl, parted lips, blush, makeup, light smile, school uniform, classroom, light rays, glow, thighs, collarbone, narrow waist, (masterpiece), wallpaper 1个女孩,双唇,腮红,化妆,浅笑,校服,教室…

python openai playground使用教程

文章目录 playground介绍Playground特点模型设置和参数选择四种语言模型介绍 playground应用构建自己的playground应用playground python使用 playground介绍 OpenAI Playground是一个基于Web的工具,旨在帮助开发人员测试和尝试OpenAI的语言模型,如GPT-…

微信小程序备案内容常见问题汇总

一、备案时间点 自2023年09月01日起,新的微信小程序,必须备案后才能上架; 在2024年03月31日前,所有小程序都必须完成备案; 于2024年04月01日起,对未备案小程序进行清退处理。 微信小程序备案系统已于9月4日上线。 二、备案流程 [找备案入口]–[填主体信息]–[填小程…

VMware使用ubuntu安装增强功能实现自动缩放

VMware使用ubuntu安装增强功能实现自动缩放 1.下载 VMware Tools2.安装tool 1.下载 VMware Tools 1.需要先弹出DVD 2.虚拟机-安装VMware Tools 进入终端 3.把media下的VMware压缩包拷贝到home/下 4.去home下解压 2.安装tool 进入vmware-tools-distrib sudo ./vmware-ins…

Liunx中系统安全及文件系统(极其粗糙版)

系统安全: 系统安全和数据防护,数据备份的资质 比如三台服务器: 500万 工信部是有要求的,组织必须保证处理的个人数据的安全性 品牌形象如何维护呢 基于liunx的安全加固措施: 权限进行控制 账号安全:…

latex中appendix附录怎么写

这个很简单,我一开始以为很复杂。 \begin{document} #这里是“正文”。 #这里是“引用”。 #下面开始是附录。 \appendix \section{Proofs}#和正文一样,甚至比如subsection,subsubsection之类的也一样。 This paper proposed a nice work!\section{Addi…