python 包和模块

一、模块

        一个.py 文件就是一个模块,模块是含有一系列数据函数等的程序。

1、模块导入

1.1、impotrt 模块名称 [ as 别名]

        import nunpy as np

1.2、form 模块名 import 模块内属性名  [ as 别名]

        from datetime import datetime as dt

1.3、from 模块名 import *

        将该模块下所有属性、方法等内容导入,在引用文件内直接使用具体名称。

2、os模块

        import os

getcwd() :获取当前工作目录

chdir():更改工作目录到指定参数内容

listdir():参数目录的最后一个文件夹的所有文件

split():将最终文件与目录分开输出(元组的第一个参数为目录,第二个参数为文件名称)

rmdir():删除目录

remove():删除参数指定的文件

二、包

        文件夹形式的内容,包含一个固定的__init__.py文件。

1、包导入

        import 包名 [as 包别名]

        import matplotlib

        一般都是直接到包内的某个模块 (import matplotlib.pyplot as plt)

2、第三方包

        使用 pip 安装

三、异常语句

1、try

        捕获异常,得到异常通知,将程序由异常状态变为正常状态

except 子句可以有 1个或多个

except: 不给错误类型,可以匹配全部的错误类型

else 子句里的语句会在 没有错误发生时执行,当处于异常时不执行

finally 子句里的语句,无论何时都执行

try:
    可能发生异常的语句块
except 错误类型1 [as 变量名1]:
    异常处理语句块1
except 错误类型2 [as 变量名2]:
    异常处理语句块2
...
except 错误类型n [as 变量名n]:
    异常处理语句块n
except:
    异常处理语句块other
else:
    未发生异常的语句
finally:
    最终的处理语句
 

def exception_test(a=0):
    try:
        b = 1 / a
    except:
        print(f"分母异常")
    finally:
        print('finally')
exception_test(5) # 不提示
exception_test(0) # 提示

 2、raise

        抛出一个错误,让程序进入异常状态

def raise_test(a, b):
    if b == 0:
        raise Exception("除数为0")
    return a/b

raise_test(1, 0) # 除数为0

 3、常用错误类型

错误类型说明
ZeroDivisionError除(或取模)零 (所有数据类型)
ValueError传入无效的参数
AssertionError断言语句失败
StopIteration迭代器没有更多的值
IndexError序列中没有此索引(index)
IndentationError缩进错误
OSError输入/输出操作失败
ImportError导入模块/对象失败
NameError未声明/初始化对象 (没有属性)
AttributeError对象没有这个属性

四、文件操作

1、打开文件

        open(name, mode,encoding):name 为文件名称;mode 为操作方法;encoding 控制格式

file = open('test.txt', 'r', encoding='utf-8')
x = file.read()
print(file)

"""

1.第一行内容
2.第二行内容
3.第三行内容

"""

file = open('test.txt', 'w', encoding='utf-8')
file.write('重新写入的内容')

"""

文件内就只有"重新写入的内容"

若在py文件下没有该文件,则创建文件

"""

file = open('test.txt', 'a', encoding='utf-8')
file.write('重新写入的内容')

"""

文本变为:

1.第一行内容
2.第二行内容
3.第三行内容重新写入的内容

若在py文件下没有该文件,则创建文件

"""

2、读取文件

        read():在打开文件后,就可以获取文件内的信息

file = open('test.txt', 'r', encoding='utf-8')
x = file.read()
print(file)

"""

1.第一行内容
2.第二行内容
3.第三行内容

"""

 3、写入文件

        模式为 w 或 a ;

file = open('test.txt', 'w', encoding='utf-8')
file.write('重新写入的内容')

"""

文件内就只有"重新写入的内容"

若在py文件下没有该文件,则创建文件

"""

file = open('test.txt', 'a', encoding='utf-8')
file.write('重新写入的内容')

"""

文本变为:

1.第一行内容
2.第二行内容
3.第三行内容重新写入的内容

若在py文件下没有该文件,则创建文件

"""

 4、关闭文件

        在操作文件后,进行关闭,否则可能会被后面的代码影响文件

5、with 方法

with open("test.txt", "a", encoding='utf-8') as file:
    file.write('重新写入的内容')

五、json解析

        import json

        json 与字典格式高度相似,都是键值对,但json的键必须为字符串。

        python 中的空值为None,json中为null

1、序列化与反序列化

        dumps 序列化就是将字典转成json字符串;loads 反序列化就是将json字符串转化成字典。

import json
data = {'name': 'zhangsan',
         'age': 18,
         'hobby': ['football', 'music', None]
        }
json_str = json.dumps(data)
print(json_str, type(json_str))
#{"name": "zhangsan", "age": 18, "hobby": ["football", "music", null]} <class 'str'>

data1 = json.loads(json_str)
print(data1, type(data1))
#{'name': 'zhangsan', 'age': 18, 'hobby': ['football', 'music', None]} <class 'dict'>

2、存放和读取

        dump 将指定内容存放到指定文件;load从指定文件获取内容(都需要搭配open使用)。

import json
data = {'name': 'zhangsan',
         'age': 18,
         'hobby': ['football', 'music', None]
        }
json.dump(data, open('test.json', 'w', encoding='utf-8'))

with open('test.json', 'r', encoding='utf-8') as f:
        data1 = json.load(f)
        print(data1)

# {'name': 'zhangsan', 'age': 18, 'hobby': ['football', 'music', None]}

        

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

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

相关文章

Git下载-连接码云-保姆级教学(连接Gitee失败的解决)

Git介绍 码云连接 一、Git介绍 二、Git的工作机制 下载链接&#xff1a;Git - 下载软件包 三、使用步骤 创建一个wss的文件夹&#xff0c;作为‘工作空间’ 四、连接码云账号 五、连接Gitee失败的解决方法 一、Git介绍 Git是一个免费的、开源的分布式版本控制…

https和http的区别,及HTTPS的工作流程

HTTP&#xff08;HyperText Transfer Protocol&#xff09;和HTTPS&#xff08;HyperText Transfer Protocol Secure&#xff09;都是超文本传输协议&#xff0c;但它们之间的关键区别在于安全性。 安全性&#xff1a; HTTP&#xff1a;数据以明文传输&#xff0c;没有加密&…

【Python · Pytorch】人工神经网络 ANN(上)

【Python Pytorch】人工神经网络 ANN&#xff08;上&#xff09; 0. 生物神经网络1. 人工神经网络定义2. 人工神经网络结构2.1 感知机2.2 多层感知机2.3 全连接神经网络2.4 深度神经网络 2. 训练流程※ 数据预处理 (Data Preprocessing) 3. 常见激活函数3.1 Sigmoid / Logisti…

基本查询【MySQL】

文章目录 基本查询插入时是否更新替换查询指定列查询查询字段为表达式为查询结果指定别名结果去重where条件NULL 的查询 结果排序筛选分页结果UpdateDelete截断表聚合函数分组(group by)having && where 基本查询 建表 mysql> create table Student (-> id int…

pandas——数据结构

一、series &#xff08;一&#xff09;创建series import pandas as pd#1.使用列表或数组创建Series # 使用列表创建Series&#xff0c;索引默认从0开始 s1 pd.Series([1, 2, 3]) print(s1) # 使用列表和自定义索引创建Series s2 pd.Series([1, 2, 3], index[a, b, c]) pr…

算法妙妙屋-------1.递归的深邃回响:C++ 算法世界的优雅之旅

前言&#xff1a; 递归是一种在算法中广泛应用的思想&#xff0c;其主体思想是通过将复杂的问题分解为更简单的子问题来求解。具体而言&#xff0c;递归通常包括以下几个要素&#xff1a; 基本情况&#xff08;Base Case&#xff09;&#xff1a;每个递归算法必须有一个或多个…

禾川HCQ1控制器程序编译报错如何解决

1、第一次打开用户程序 2、提示库未安装 3、安装库文件 4、脉冲轴库未安装 5、没有错误 去禾川自动化官网,把可以安装的包和库都安装下,程序编译就没有错误了。 6、下载相关包文件

HarmonyOS:@Watch装饰器:状态变量更改通知

Watch应用于对状态变量的监听。如果开发者需要关注某个状态变量的值是否改变&#xff0c;可以使用Watch为状态变量设置回调函数。 说明 从API version 9开始&#xff0c;该装饰器支持在ArkTS卡片中使用。 从API version 11开始&#xff0c;该装饰器支持在元服务中使用。 一、概…

Windows如何查看自己网卡的MAC地址?

本章教程&#xff0c;主要介绍如何在Windows查看自己的网卡mac地址。 一、查询MAC地址方法 打开使用PowerShell&#xff0c;运行以下命令即可查询到自己的网卡MAC地址。 Get-NetAdapter | Select-Object Name, MacAddress二、MAC地址是什么 MAC地址&#xff08;Media Access Co…

Unknown at rule @tailwindscss(unknownAtRules)

一、前言 整合 tailwindcss 后&#xff0c;发现指令提示警告 Unknown at rule tailwindscss(unknownAtRules)&#xff0c;其实是 vscode 无法识别 tailwindscss 指令&#xff0c;不影响使用&#xff0c;但是对于我这种有编程洁癖的人来说&#xff0c;有点膈应。 二、解决方案…

Python 实现深度学习模型预测控制--预测模型构建

链接&#xff1a;深度学习模型预测控制 &#xff08;如果认为有用&#xff0c;动动小手为我点亮github小星星哦&#xff09;&#xff0c;持续更新中…… 链接&#xff1a;WangXiaoMingo/TensorDL-MPC: DL-MPC(deep learning model predictive control) is a software toolkit…

安宝特案例 | AR技术在院外心脏骤停急救中的革命性应用

00 案例背景 在院外心脏骤停 (OHCA) 的突发救援中&#xff0c;时间与效率直接决定着患者的生命。传统急救模式下&#xff0c;急救人员常通过视频或电话与医院医生进行沟通&#xff0c;以描述患者状况并依照指令行动。然而&#xff0c;这种信息传递方式往往因信息不完整或传递延…

书生大模型第一关Linux基础知识

任务一&#xff1a;完成SSH连接与端口映射并运行hello_world.py 1.SSH及其端口映射 2.在VSCode中安装插件&#xff1a; 3.创建开发机 最后点击创建&#xff0c;然后可能需要等待一段较长的时间&#xff0c;大概需要5分钟左右&#xff0c;如果需要排队则更长时间 然后选择…

openGauss数据库-头歌实验1-5 修改数据库

一、查看表结构与修改表名 &#xff08;一&#xff09;任务描述 本关任务&#xff1a;修改表名&#xff0c;并能顺利查询到修改后表的结构。 &#xff08;二&#xff09;相关知识 为了完成本关任务&#xff0c;你需要掌握&#xff1a; 1.如何查看表的结构&#xff1b; 2.如…

【机器学习】26. 聚类评估方法

聚类评估方法 1. Unsupervised Measure1.1. Method 1: measure cohesion and separationSilhouette coefficient Method 2&#xff1a;Correlation between two similarity matricesMethod 3&#xff1a;Visual Inspection of similarity matrix 2. Supervised measures3. 决定…

基于stm32单片机的智能循迹小车

功能描述 STM32单片机循迹避障蓝牙控制温度采集烟雾采集火焰探测声光报警按键调节OLED显示 1. STM32单片机为控制核心 2. 通过ds18b20传感器测量环境温度 3. 通过mq-2烟雾传感器测量环境中的烟雾浓度 4. 温度阈值和烟雾浓度阈值可以通过按键进行调节 5. 当温度或者烟雾浓度超过…

【图解版】力扣第70题:爬楼梯

推理出状态表达式 f(5)表示到达第5层&#xff0c;所有可能的方法数。 到达第5层&#xff0c;有可能是从第4层走一步上来&#xff0c;也有可能是从第3层走两步上来。所以我们可以慢慢延伸&#xff0c;画出上面&#x1f446;&#x1f3fb;的图。 从图中&#xff0c;我们可以看到…

MySQL基础(三)

目录 一. 插入内容insert 1.1 默认插入 1.2 指定某些列插入数据 1.3 一次插入多行 1.4 insert 插入时间 二. 查询数据select&#xff08;比较复杂&#xff09; 2.1 全列查询 2.2 指定列查询 2.3 查询字段为表达式 2.4 别名 as 2.5 去重查询 distinct 2.6 排序…

OpenAI 的 Whisper:盛名之下,其实难副?

OpenAI 的 Whisper&#xff1a;盛名之下&#xff0c;其实难副&#xff1f; Whisper 的崛起与承诺 严重缺陷的曝光 风险分析 应对措施 结论 在人工智能的浪潮中&#xff0c;OpenAI 一直以其创新性和强大的技术实力备受瞩目。然而&#xff0c;最近 OpenAI 的语音转写工具 Wh…

在kanzi 3.9.8里使用API创建自定义材质

1. kanzi studio设置 1.1 创建一个纹理贴图&#xff0c;起名Render Target Texture 1.2 创建一个Image节点&#xff0c;使用该贴图 2. 代码设置 2.1 创建一个自定义节点类 class mynode2d : public Node2D { public: virtual void renderOverride(Renderer3D& renderer…