Python——基础语法(模块、包、文件读写等操作)

news/2024/5/19 20:07:37/文章来源:https://blog.csdn.net/weixin_65049289/article/details/126859007

一、模块

概述:一个模块就是一个扩展名为.py的文件,可以包含多个函数、类、语句;使用模块可以提高代码的可维护性、可重用性,避免函数名和变量名冲突,方便其他程序和脚本的导入和使用。

二、模块的自定义

创建一个新模块即是新建一个.py文件,名称尽量不要与python自带的标准模块名称相同。

模块的导入:

  • import 模块名
  • from 模块名称 import 函数/变量/类

三、主程序方式运行

在我们自定义一个模块(a.py)然后导入到另一个模块(b.py)的时候,我们运行b的时候很有可能先会执行a模块的代码,导致结果不是我们想要的;解决这个问题就需要引入主程序方式的运行。

在每个模块的定义中都包括一个记录模块名称的变量__name__,程序可以检查该变量,以确定他们在哪个模块中执行。如果一个模块不是被导入到其他程序中执行,它可能在解释器的顶级模块中执行。顶级模块中的__name__变量的值为__main__。

# @Author:韩慧腾
# @Time :2022/9/14 21:30
# @File :Demo_main.py
# 努力已经来不及了,你得拼命
#该模块未被任何模块导入
print(__name__)#__main__
# @Author:韩慧腾
# @Time :2022/9/14 21:30
# @File :Demo_main.py
# 努力已经来不及了,你得拼命
a=100
print(__name__)#__main__
# @File :Demo1.py
# 努力已经来不及了,你得拼命
import Demo_main
print(Demo_main.a)

在被导入到Demo1模块后,运行Demo1模块会出现以下结果

 我们的预期结果是只有一个100,但实际是先把Demo_main模块执行了,而且__name__是模块名,不是__main__;因此我们可以采用主程序运行的方式解决此问题。

# @File :Demo_main.py
# 努力已经来不及了,你得拼命
a=100
if __name__ == '__main__':print(__name__)
# @File :Demo1.py
# 努力已经来不及了,你得拼命
import Demo_main
print(Demo_main.a)

运行Demo1后结果如下:

二、包(Python Package)

 概述:包是一个分层次的目录结构,将一组功能相近的模块组织在一个目录下;使得代码规范,避免模块名称冲突

包与目录(Directory)区别:

  • 创建一个包之后会自动在包下生成一个__init__.py文件
  • 目录里面不含__init__.py文件

包的导入:import 包名.模块名 (as 名字)

注:上面的名字就是包名.模块名的一个别名,应用起来更加方便

直接import和from……import导入的区别:

  • 直接使用import导入时,后面只能跟包名或者模块名
  • 使用from……import导入时,后面可以跟包、模块名、函数名、变量名等等

三、Python中常见的内置模块

 四、常见的字符编码格式

   Python的解释器使用的是Unicode;.py文件的磁盘上使用的是UTF-8存储。

五、文件的读写(IO操作)

# @Author:韩慧腾
# @Time :2022/9/16 17:14
# @File :File_Demo00.py
# 努力已经来不及了,你得拼命
file=open("D:\Demo.txt",'r')#第一个参数是所要打开文件位置,第二个参数是读文件的意思
print(file.readlines())#会返回一个列表
file.close()#关闭资源通道

 文件的类型:

  • 文本文件:存储的是普遍"字符"文本,默认为Unicode字符集,可以使用记事本程序打开
  • 二进制文件:把数据内容用"字节"进行存储,无法用记事本打开,必须使用专用的软件打开。eg:mp3音频文件,jpg图片,doc文档等

# @Author:韩慧腾
# @Time :2022/9/16 17:40
# @File :File_Demo01.py
# 努力已经来不及了,你得拼命
file=open("D:\Demo.txt",'w')#第一个参数的文件没存在的话会直接创建,存在的话会直接覆盖原来内容
file.write('键盘敲烂,月薪过万')#会替换掉原有内容
file=open("D:\Demo.txt",'a')#第二个参数为a的话会直接在原有内容后面追更,不会覆盖原有内容
file.write('Python')
file.close()
# @Author:韩慧腾
# @Time :2022/9/16 22:35
# @File :File_Demo02.py
# 努力已经来不及了,你得拼命
#图片的复制
file=open("D:\美图\c98cb68b34f9fe8b6989a09dddc8257.jpg",'rb')
file1=open("D:\美图\美女.jpg",'wb')
file1.write(file.read())
file.close()
file1.close()

文件对象的常用方法:

# @Author:韩慧腾
# @Time :2022/9/17 15:21
# @File :File_Demo03.py
# 努力已经来不及了,你得拼命
#文件对象常用方法
file=open("D:\Demo.txt",'r')
print(file.read())#读取文件内容
print(file.readline())#读取文件一行内容
'''
上面的readline是继read方法读取内容之后继续读取,而不是重新读取该文件
'''
print(file.readlines())#返回一个列表,按行读取所有内容

 

# @Author:韩慧腾
# @Time :2022/9/17 16:37
# @File :File_Demo04.py
# 努力已经来不及了,你得拼命
file=open("D:\Demo1.txt",'a')
file.write('网络安全为人民,网络安全靠人民')
lst=['PHP','HTML','CSS']
file.writelines(lst)#会把列表中的内容追加到文件中去
'''
网络安全为人民,网络安全靠人民网络安全为人民,网络安全靠人民PHPHTMLCSS
'''
file.close()

with语句:with语句可以自动管理上下文资源,不论什么原因跳出with块,都能确保文件正确的关闭,以此来达到释放资源的目的,不需要手动关闭资源。

 

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

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于ssm的社区医院儿童预防接种管理系统设计与实现-计算机毕业设计源码+LW文档

开发语言:Java 框架:ssm JDK版本:JDK1.8 服务器:tomcat7 数据库:mysql 5.7(一定要5.7版本) 数据库工具:Navicat11 开发软件:eclipse/myeclipse/idea Maven包&…

且看五年开发码农,如何备战仨月硬刚字节面试官,轻松拿offer

写在前面 前不久跟几个哥们儿在一起吃喝玩闹,因为都是程序员出身,多少还是会谈谈各自公司的状况,其中一位朋友就是面临着跳槽换工作的情况。虽然做了好几年开发,但还是有很大压力,不光因为此次是想进字节跳动&#xf…

变更控制委员会CCB

在实施整体变更控制过程中,每项记录在案的变更请求都必须由一位责任人批准或否决,这个责任人通常是项目发起人或项目经理。应该在项目管理计划或组织流程中指定这位责任人。必要时,应该由变更控制委员会(CCB)来开展实施…

vue中keep-alive的作用

vue中keep-alive的作用1、什么是keep-alive?2、作用3、使用场景4、基本使用4.1、所有组件都缓存4.2、include:只有包裹的组件名被缓存4.3、exclude:只有包裹的组件名不会被缓存4.4、max:组件最多缓存的数量4.5、结合路由router,缓…

CUDA编程基础:线程标识符计算,以及并行运算原理

1,CUDA编程的基本概念 对于一个2-dim的block(D_x, D_y) ,既指的是二维的平面的block模型; gridDim: 这个变量包含网格的维度 blockIdx: 这个变量包含了网格中的线程块索引(0~gridDim-1) blockDim: 这个变量包含了线程块的维度 threadIdx: 这个变量包含了线程块中的线程索引(…

机器人——力控

力控制背后的基本思想很简单:传感器的输出用于在控制器中闭环,调整每个关节扭矩以匹配所需的输出。在某种程度上,这类似于位置控制。您只需用参考力(来自力/扭矩传感器)替换参考位置(来自电机编码器&#x…

java程序设计笔记 -- 继承与多态

继承与多态 子类 is a 关系 整体与部分 has a extends 继承关键词 父类也叫做 超类 基类 object 类 类层次最高点,是所有类的直接或间接父类 方法 public final Class getClass(): 获取当前对象所属的类信息,返回Class对象public Strig toString (…

计划评审技术

计划评审技术就是把工程项目当成一种系统,用网络图或者表格或者矩阵来表示各项具体工作的先后顺序和相互关系,以时间为中心,找出从开工到完工所需要时间的最长路线,并围绕关键路线对对系统进行统筹规划,合理安排以及对…

python--数据容器--列表

目录 1.python中的数据容器: 2.列表的定义 列表的下标索引 列表的查询功能 (方法) 修改列表的值 在指定位置插入元素 追加元素 追加一批元素 删除元素 删除某个元素在列表中的第一个匹配项 清空列表 统计某元素在列表内的数量 统…

ChIP-Seq,MeRIP-seq峰(peak),eccDNA等染色体分布可视化

人类基因组由1-22、X、Y等染色体构成,染色体经过细胞学处理后会呈现出深浅不同的染色带。 染色带的数目、部位、宽窄和着色深浅均相对稳定性,所以每一条染色体都有固定的分带模式,即称带型。 染色体带型是鉴别染色体的重要依据。图1. 人类染色…

【Android进阶】8、单 Activity-多 Fragment 模式 与 Fragment 的管理器

文章目录8.1 UI的灵活需求8.2 Fragment8.3 Fragment实战8.4 创建数据类8.5 创建 UI fragment8.5.1 定义 CrimeFragment 布局8.5.2 创建 CrimeFragment 类8.5.2.1 实现 Fragment 的生命周期函数8.5.2.2 在 Fragment 中实例化部件8.6 让 Activity 托管 Fragment8.6.1 定义 Activi…

Linux网络编程基础<多进程并发服务器>

一、应用场景 最简单的socket示列代码只能一个客户端连接一个服务器,并不支持多个客户端对服务器的连接,为了能让多个客户端进行连接所以需要多进程或者多线程处理 二、思路解析 服务器端的程序是俩个套接字socket创建一个lfd,accept创建一…

外置编码矩阵神经网络all you need

🍿*★,*:.☆欢迎您/$:*.★* 🍿 目录 背景 正文 总结 背景描述

数据结构刷题:第十三天

目录 一,二叉搜索树中的搜索 1,递归 复杂度分析 2,迭代 复杂度分析 二,二叉搜索书中的插入操作 1,模拟 思路与算法 复杂度分析 一,二叉搜索树中的搜索 700. 二叉搜索树中的搜索 - 力扣(L…

阿里P8大佬,整理的从零构建企业级容器集群实战笔记,真涨薪神器

前言 微服务架构时代对我们的基础设施管理提出了非常大的挑战,DevOps和持续交付成为了基本能力要求。没有近两年容器技术的快速发展,这些能力可能仍然只属于少数技术实力强大的互联网公司。容器技术的应用从真正意义上催化了我们在基础设施管理上的革命…

最小系统板 STM32入门,呼吸灯实现(STM32F103C6T6)

Hi, I’m Shendi 接着前一篇 https://blog.csdn.net/qq_41806966/article/details/126894938 这一次使用库来进行 LED 灯的开关,及延时的实现 呼吸灯实现 之前使用直接修改地址的方式实现点灯,这次用 GPIO 实现点灯,并加上延迟&#xff0…

傅立叶及其python应用

前言 本文是傅立叶及其python应用系列的第三篇文章对应的仓库地址为https://github.com/yuanzhoulvpi2017/tiny_python/tree/main/Fourier_Series 介绍 第二篇主要介绍了傅立叶的核心:“傅里叶级数就是函数在某个函数空间中各个基底的投影和“,然后基…

Day27、使用DQL命令查询数据

1、DQL语言 1.1、DQL(Data Query Language,数据查询语言) 1)查询数据库数据,如SELECT语句 2)简单的单表查询或多表的复杂查询和嵌套查询 3)数据库语言中最核心、最重要的语句 4)使用频率最高的语句 1.2、SE…

Linux小白学习

Linux学习 虚拟机 安装Linux镜像下载简单命令含义 一、虚拟机安装 参考视频:https://www.bilibili.com/video/BV1dS4y1e7rH?share_sourcecopy_web&vd_source0d57c2e2317ebb16893c37677d1b8931 二、Linux镜像下载 网盘下载地址: 链接:h…

如何设计一个可扩展的登录功能

本文主要分享了如何设计一个可扩展的登录功能。 一、多种登录方式(需要有一个唯一值来绑定各种登录方式,目前业界用的比较多的是手机号) 1.用户名密码登录 最原始的登录方式,这种登录方式与注册功能是分开的,业界慢慢…