三、python基础语法进阶篇(黑马程序猿-python学习记录)

news2024/9/21 20:34:55

黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/

===============================================================

目录

一、文件操作

一、 文件的读取

1. 打开文件open()

2. 读取文件10个字节read(10)

3. 读取文件全部信息read()

4. 读取文件readLines()

5. 读取文件readLine()

6. for循环读取文件行

7. 文件的关闭close

8. with open

二、 文件的写入

三、 文件的追加

二、 异常

1. 了解异常

​​​​​​​2. 异常的捕获try: except:

三、 python模块

四、 python包

​​​​​​​1. 新建python软件包

​​​​​​​2. 第三方包

​​​​​​​3. 第三方包下载

1. pip下载第三方包

2. pycharm下载第三方包

​​​​​​​五、 案例:str字符串反转和切片

一、 案例:读取文件信息

二、案例:追加文件信息

​​​​​​​六、 json

1. dumps:python数据转json

2. loads:json字符串转python数据

七、 类和对象

1. 类的成员方法

2. 构造方法__init__

3. 内置方法

4. 内置方法__str__

5. 内置方法__lt__ 大于和小于

6. 内置方法__le__ 大于等于和小于等于

7. 内置方法__eq__ ==

8. 私有成员变量和私有成员方法

八、 继承

1. 单继承语法

2. 单继承实例

3. 多继承语法

九、复写

​​​​​​​十、类型注解

1. 变量的类型注解

​​​​​​​2. 函数(方法)的类型注解

​​​​​​​3. Union类型

​​​​​​​十一、 多态


一、文件操作

一、 文件的读取

​​​​​​​1. 打开文件open()

f = open("D:/test.txt","r",encoding="UTF-8")

print(type(f))

<class '_io.TextIOWrapper'>

2. 读取文件10个字节read(10)

f = open("D:/test.txt","r",encoding="UTF-8")

print(type(f))

print(f"读取10个字节的结果:{f.read(10)}")

读取10个字节的结果:1111111111

3. 读取文件全部信息read()

f = open("D:/test.txt","r",encoding="UTF-8")

print(type(f))

print(f"读取全部内容的结果:{f.read()}")

读取全部内容的结果:111111111111111

22222222222222

33333333333333

4

5

6

7

8

4. 读取文件readLines()

f = open("D:/test.txt","r",encoding="UTF-8")

lines = f.readlines()

print(lines)

['111111111111111\n', '22222222222222\n', '33333333333333\n', '\n', '4\n', '5\n', '6\n', '7\n', '8\n']

5. 读取文件readLine()

一次读取一行

6. for循环读取文件行

f = open("D:/test.txt","r",encoding="UTF-8")

for line in f:

print(line)

111111111111111

22222222222222

33333333333333

4

5

6

7

8

7. 文件的关闭close

解除文件的占用

f = open("D:/test.txt","r",encoding="UTF-8")

f.close()

8. with open

执行完语句块 会自动close

with open("D:/test.txt","r",encoding="UTF-8")as f:

for line in f:

print(f"{line}")

111111111111111

22222222222222

33333333333333

4

5

6

7

8

二、 文件的写入

f= open("D:/test.txt","w",encoding="UTF-8")

f.write("hello");

f.close()

open的时候 使用w作为写入

如果没有路径会创建路径

如果有文件 那就覆盖原来的内容

写完之后 记得close一下或者flush一下 就能写进去

​​​​​​​三、 文件的追加

f= open("D:/test.txt","a",encoding="UTF-8")

f.write("world");

f.flush()

f.close()

二、 异常

1. 了解异常

​​​​​​​2. 异常的捕获try: except:

三、 python模块

导入模块

import time # 引入时间模块 导入python内置的time模块

time.sleep(1)

导入模块中的功能

from time import sleep # 引入时间模块 中的sleep功能

sleep(1)

导入模块中的全部功能

from time import * # 导入模块中的全部功能 *代表所有

sleep(1)

取别名

import time as a

a.sleep(1)

四、 python包

​​​​​​​1. 新建python软件包

新建成功后会有一个.py后缀的文件

如果有:代表是软件包

没有的话:代表是普通文件夹

​​​​​​​2. 第三方包

​​​​​​​3. 第三方包下载

1. pip下载第三方包

pip install -i https://pypi.tuna.tsinghua.edu.cn/simple numpy

2. pycharm下载第三方包

打开pycharm 右下角的python3.10点击后 选择解释器设置

就能看到刚才安装的第三方包numpy

点击加号 添加其他第三方包

搜索pandas,选中pandas,然后点击选项 输入

-i https://pypi.tuna.tsinghua.edu.cn/simple

点击 安装软件包

下方会出现一个安装的进度条

安装成功

​​​​​​​五、 案例:str字符串反转和切片

def str_reserse(s):

"""

功能是将字符串反转

:param s:将被反转的字符串

:return:反转后的字符串

"""

return s[::-1]

def substr(s,x,y):

"""

功能是按照给定的下标完成给定字符串的切片

:param s:即将被切片的字符串

:param x:切片的开始下标

:param y:切片的结束下标

:return:切片完成后的字符串

"""

return s[x:y]

if __name__ == '__main__':

print(str_reserse("123"))

print(substr("12345",1,2))

321

2

一、 案例:读取文件信息

def print_file_info(file_name):

"""

功能:将给定路径的文件内容输出到控制台

:param file_name:即将读取的文件路径

:return:None

"""

f=None

try:

f=open(file_name,"r",encoding="UTF-8")

content=f.read()

print(f"文件的全部内容如下:{content}")

except Exception as e:

print(f"程序出现异常:{e}")

finally:

if f: # 如果变量是None 表示false;如果有任何内容 就是true

f.close()

if __name__ == '__main__':

print_file_info("D:/aa.txt")

def print_file_info(file_name):

"""

功能:将给定路径的文件内容输出到控制台

:param file_name:即将读取的文件路径

:return:None

"""

f=None

try:

f=open(file_name,"r",encoding="UTF-8")

content=f.read()

print(f"文件的全部内容如下:{content}")

except Exception as e:

print(f"程序出现异常:{e}")

finally:

if f: # 如果变量是None 表示false;如果有任何内容 就是true

f.close()

if __name__ == '__main__':

print_file_info("D:/test.txt")

程序出现异常:[Errno 2] No such file or directory: 'D:/aa.txt'

文件的全部内容如下:helloworldworld

二、案例:追加文件信息

def append_to_file(file_name,data):

"""

功能:将指定的数据追加到指定的文件中

:param file_name:指定的文件路径

:param data:指定的数据

:return:None

"""

f = open(file_name,"a",encoding="UTF-8")

f.write(data)

f.write("\n")

f.close()

if __name__ == '__main__':

append_to_file("D:/test.txt","嘿嘿")

​​​​​​​六、 json

1. dumps:python数据转json

先导入json包

使用 json.dumps对python数据转成json

ensure_ascii=False:可以读取中文

"""

演示 json数据和python数据的互相转换

"""

import json

data=[

{"name":"张三","age":12},

{"name":"李四","age":15},

{"name":"王五","age":11}

]

json_str = json.dumps(data,ensure_ascii=False)

print(json_str)

[{"name": "张三", "age": 12}, {"name": "李四", "age": 15}, {"name": "王五", "age": 11}]

2. loads:json字符串转python数据

import json

s='[{"name": "张三", "age": 12}, {"name": "李四", "age": 15}, {"name": "王五", "age": 11}]'

python_list_data = json.loads(s)

print(python_list_data)

[{'name': '张三', 'age': 12}, {'name': '李四', 'age': 15}, {'name': '王五', 'age': 11}]

七、 类和对象

1. 类的成员方法

class Student:

name=None

age=None

def say_hi(self):

print(f"大家好,我是{self.name}")

stu = Student()

stu.age=11

stu.name="张三"

stu.say_hi()

大家好,我是张三。

2. 构造方法__init__

class Student:

name=None,

age=None

def __init__(self,name,age):

self.name=name

self.age=age

print("创建了一个student对象")

stu = Student("张三",19)

print(stu.name)

print(stu.age)

创建了一个student对象

张三

19

3. 内置方法

__init__

构造方法

__str__

字符串方法

__lt__

小于、大于符号比较

__le__

小于等于、大于等于符号比较

__eq__

==符号比较

4. 内置方法__str__

class Student:

name=None,

age=None

def __init__(self,name,age):

self.name=name

self.age=age

print("创建了一个student对象")

def __str__(self):

print("调用了__str__")

return f"Student对象,name{self.name},age:{self.age}"

stu = Student("张三",19)

print(stu)

print(str(stu))

创建了一个student对象

调用了__str__

Student对象,name:张三,age:19

调用了__str__

Student对象,name:张三,age:19

5. 内置方法__lt__ 大于和小于

class Student:

name=None,

age=None

def __init__(self,name,age):

self.name=name

self.age=age

print("创建了一个student对象")

def __str__(self):

print("调用了__str__")

return f"Student对象,name{self.name},age:{self.age}"

def __lt__(self,other):

return self.age<other.age

stu1 = Student("张三",19)

stu2 = Student("李四",20)

print(stu1<stu2)

print(stu1>stu2)

创建了一个student对象

创建了一个student对象

True

False

6. 内置方法__le__ 大于等于和小于等于

class Student:

name=None,

age=None

def __init__(self,name,age):

self.name=name

self.age=age

print("创建了一个student对象")

def __str__(self):

print("调用了__str__")

return f"Student对象,name{self.name},age:{self.age}"

def __lt__(self,other):

return self.age<other.age

def __le__(self,other):

return self.age<=other.age

stu1 = Student("张三",19)

stu2 = Student("李四",20)

print(stu1<=stu2)

print(stu1>=stu2)

创建了一个student对象

创建了一个student对象

True

False

7. 内置方法__eq__ ==

class Student:

name=None,

age=None

def __init__(self,name,age):

self.name=name

self.age=age

print("创建了一个student对象")

def __str__(self):

print("调用了__str__")

return f"Student对象,name{self.name},age:{self.age}"

def __lt__(self,other):

return self.age<other.age

def __le__(self,other):

return self.age<=other.age

def __eq__(self,other):

return self.age==other.age

stu1 = Student("张三",20)

stu2 = Student("李四",20)

print(stu1==stu2)

创建了一个student对象

创建了一个student对象

True

8. 私有成员变量和私有成员方法

使用两个下划线 去声明成员变量或方法

class Student:

__age=10

def __oneFf(self):

print("私有成员方法被调用...")

def 调用我呀(self):

if(self.__age==10):

print("我十岁啦")

else:

self.__oneFf()

stu = Student()

stu.调用我呀()

我十岁啦

八、 继承

1. 单继承语法

class 类名(父类名):

类内容体

2. 单继承实例

class Phone:

IMEI=None # 序列号

productor="老的厂商" # 厂商

def call_by_4g(self):

print("4G通话...")

# 单继承

class Phone2023(Phone):

face_id="10001" # 面部识别ID

def call_by_5g(self):

print("2023年新功能:5G通话...")

phone=Phone2023()

print(phone.productor)

phone.call_by_4g()

phone.call_by_5g()

老的厂商

4G通话...

2023年新功能:5G通话...

3. 多继承语法

class 类名(父类名1,父类名2,父类名3...):

类内容体

注意:如果只想继承父类,不想拓展新功能 可以使用pass关键字

例如:

class 类名(父类名1,父类名2,父类名3...):

pass

九、复写

​​​​​​​十、类型注解

1. 变量的类型注解

​​​​​​​2. 函数(方法)的类型注解

​​​​​​​3. Union类型

​​​​​​​十一、 多态

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

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

相关文章

Nginx与LUA(7)

您好&#xff0c;我是湘王&#xff0c;这是我的CSDN博客。值此新春佳节&#xff0c;我给您拜年啦&#xff5e;祝您在新的一年中所求皆所愿&#xff0c;所行皆坦途&#xff0c;展宏“兔”&#xff0c;有钱“兔”&#xff0c;多喜乐&#xff0c;常安宁&#xff01;软件开发中&…

使用小程序+网页简易实现多客户端实时弹幕

此文主要通过小程序网页模拟多客户端通过轮询、WebSockets、订阅推送等方式简易实现实时弹幕。 实现流程1、服务端1.1、创建项目2.2、接口定义2、客户端2.1、小程序端2.2、web端3、实现方式3.1、轮询3.2、WebSocket3.3、订阅推送实现流程 1、服务端 1.1、创建项目 打开Visual…

【docker概念和实践 5】容器命令和案例(1)

一、说明 docker的四个要素是&#xff1a;本地的Docker-engine、网上&#xff08;本地&#xff09;的仓库、镜像images、容器&#xff1b;初学者必须了解这是个概念的关系。但是&#xff0c;真正重要的概念是容器&#xff0c;因为&#xff0c;只有掌握了容器&#xff0c;才能具…

SpringBoot整合SSM

添加pom依赖 <dependency><groupId>org.projectlombok</groupId><artifactId>lombok</artifactId><version>1.16.18</version><scope>provided</scope></dependency><dependency><groupId>org.mybati…

macOS Monterey 12.6.3 (21G419) Boot ISO 原版可引导镜像

macOS Monterey 12.6&#xff0c;皆为安全更新&#xff0c;不再赘述。 macOS Monterey 12.6&#xff0c;发布于 2022 年 9 月 12 日&#xff08;北京时间今日凌晨&#xff09;&#xff0c;本次为安全更新。 今日&#xff08;2022-07-21&#xff09;凌晨&#xff0c;Apple 终于…

【Hadoop】HDFS高可用与高扩展原理分析(HA架构与Federation机制)

文章目录一、HDFS的高可用性&#xff08;HA架构&#xff09;二、HDFS的高扩展性&#xff08;Federation机制&#xff09;三、HA架构 Federation机制一、HDFS的高可用性&#xff08;HA架构&#xff09; 为保证HDFS的高可用性&#xff0c;即当NameNode节点机器出现故障而导致宕机…

【操作系统】—— Windows常用快捷键(带你快速了解)

&#x1f4dc; “作者 久绊A” 专注记录自己所整理的Java、web、sql等&#xff0c;IT技术干货、学习经验、面试资料、刷题记录&#xff0c;以及遇到的问题和解决方案&#xff0c;记录自己成长的点滴。 &#x1f341; 操作系统【带你快速了解】对于电脑来说&#xff0c;如果说…

【JavaEE】定时器的简单实现

目录 定时器 实现定时器 描述任务 保存任务 扫描任务 执行任务 定时器 在实现定时器之前&#xff0c;先来简单的了解一下什么是定时器。 定时器是软件开发中一个重要的组件。比如到了什么时候&#xff0c;干一件什么样的事情&#xff1b;多少秒之后干什么。本篇文章介绍…

活动星投票最美养生师展网络评选微信的投票方式线上免费投票

“最美养生师”网络评选投票_用户同什么方法挑选投票小程序_最好的投票小程序用户在使用微信投票的时候&#xff0c;需要功能齐全&#xff0c;又快捷方便的投票小程序。而“活动星投票”这款软件使用非常的方便&#xff0c;用户可以随时使用手机微信小程序获得线上投票服务&…

Hive函数大全–完整版(三)

官网参考地址&#xff1a; 官网UDF - Apache Hive 1. 基本数据类型 2. 基础运算符与函数 SQL结果A IS NULL 空A IS NOT NULL 非空 A LIKE B 模糊匹配A RLIKE B 正则表达式匹配A REGEXP B 正则表达式匹配 3. 类型转换 cast(expr as <type>)…

园区网典型组网架构及案例实践

什么是园区网园区网络是限定区域内&#xff0c;连接人与物的局域网络&#xff1b;园区网络通常只有一个管理主体&#xff1b;如果有多个管理主体&#xff0c;通常被认为为多个园区网络。园区网络典型架构小型园区网络典型架构小型园区网络应用于接入用户数量较少的场景&#xf…

SpringBoot 统一功能处理

SpringBoot 统一功能处理前言一、用户登录权限效验1.1 最初的用户登录验证1.2 Spring AOP 用户统一登录验证的问题1.3 Spring 拦截器1.3.1 准备工作1.3.2 自定义拦截器1.3.3 将自定义拦截器加入到系统配置1.4 拦截器实现原理1.4.1 实现原理源码分析1.4.2 拦截器小结1.5 扩展&am…

CBC模式的3DES加解密(课程设计报告)

目录一、实验内容二、实验原理2.1 DES加解密原理2.1.1 DES加解密的基本原理2.1.2 DES加解密的关键步骤2.2 3DES加解密原理2.3 分组密码CBC加解密模式原理2.4 填充原理三、实验过程3.1 变量说明3.1.1 主函数变量说明3.1.2 其他重要变量说明3.2 函数功能说明3.2.1主函数说明3.2.2…

并行训练方法-单机多卡

一、简单方便的 nn.DataParallel DataParallel 可以帮助我们&#xff08;使用单进程控&#xff09;将模型和数据加载到多个 GPU 中&#xff0c;控制数据在 GPU 之间的流动&#xff0c;协同不同 GPU 上的模型进行并行训练&#xff08;细粒度的方法有 scatter&#xff0c;gather …

学习记录670@项目管理之变更管理

变更的分类 按变更性质分为重大变更、重要变更和一般变更&#xff0c;可通过不同审批权限控制。按变更的迫切性分为紧急变更和非紧急变更&#xff0c;可通过不同的变更处理流程进行控制。按变更所发生的领域和阶段&#xff0c;可分为进度变更、成本变更、质量变更、设计变更、…

3小时精通opencv(四) 透视变换与图像拼接

3小时精通opencv(四) 透视变换与图像拼接 参考视频资源:3h精通Opencv-Python 文章目录3小时精通opencv(四) 透视变换与图像拼接透视变换图像拼接全部代码透视变换 透视变换建立两平面场之间的对应关系&#xff0c; 将原始图片投影到一个新的视平面上 # Author : JokerTon…

Elasticsearch7.8.0版本入门——JavaAPI操作(环境准备)

目录一、创建springboot项目二、pom.xml文件引入相关maven依赖三、创建客户端对象一、创建springboot项目 创建springboot项目步骤参考此博文链接&#xff1a;https://wwwxz.blog.csdn.net/article/details/91977374 二、pom.xml文件引入相关maven依赖 引入elasticsearch依赖…

NR PUSCH(七) 相干传输

微信同步更新欢迎关注同名mode协议笔记 这篇就是为记录一个概念在协议中的体现方式。相干传输被定义为一种UE能力。考虑到UE的实现成本&#xff0c;NR不要求所有的UE都能做到所有的天线端口都可以相干传输。NR定义了以下3种UE的相干传输能力。 (1)全相干&#xff08;Fully-coh…

正点原子Linux驱动第三期

目录 第一讲 系统镜像烧写 第二讲 u-boot编译 第三讲 uboot命令使用 第四讲 Uboot源码分析 第五讲 uboot顶层 Makefile分析 第六讲 Uboot启动流程 第七讲 uboot移植 第八讲 UBoot图形化界面配置 第九讲 Linux 内核移植 第十讲 Linux内核源码目录分析 第十一讲 Linux…

六、python操作mysql篇(黑马程序猿-python学习记录)

黑马程序猿的python学习视频&#xff1a;https://www.bilibili.com/video/BV1qW4y1a7fU/ 目录 1. 下载pymysql 2. 新建数据库 3. mysql服务器版本查询 4. 执行非查询性质的SQL 5. 执行查询性质的sql 6. 执行新增sql 1. 下载pymysql 右下角点击版本 选择解释器设置 点击加号 搜…