三、python基础语法进阶篇(黑马程序猿-python学习记录)
黑马程序猿的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类型
十一、 多态
三、python基础语法进阶篇(黑马程序猿-python学习记录)相关推荐
- 二、python基础语法篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
- 七、python-PySpark篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
- 五、python-地图可视化篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
- 六、python操作mysql篇(黑马程序猿-python学习记录)
黑马程序猿的python学习视频:https://www.bilibili.com/video/BV1qW4y1a7fU/ ====================================== ...
- Python基础语法入门篇(一)
Python基础语法入门篇(二) 1. 注释 在我们工作编码的过程中,如果一段代码的逻辑比较复杂,不是特别容易理解,可以适当的添加注释,以辅助自己 或者其他编码人员解读代码. 注释是给程序员看的,为了 ...
- python视频教程黑马-python视频教程免费:求黑马程序员python教程?
python后端开发需要学什么? 第一阶段:Python语言基础 主习Python最基识,如Python3.数据类型.字符串.函数.类件操作等.阶段课程结束后,学员需要完成Pygame实战飞机大战.2 ...
- 下载python教程-Python基础教程下载【黑马程序员完整版】
课程介绍 目录大纲: 1-3 天内容为Linux基础命令 4-13 天内容为Python基础教程 14-15 天内容为 飞机大战项目演练 视频概括: 第一阶段(1-3天): 该阶段首先通过介绍不同领域 ...
- JAVA基础语法笔记(黑马程序员系列)
1. Java概述 1.1 Java语言发展史(了解) 语言:人与人交流沟通的表达方式 计算机语言:人与计算机之间进行信息交流沟通的一种特殊语言 Java语言是美国Sun公司(Stanford Uni ...
- python基础语法手册_说一说python中的几个基础语法
学一门语言,基础语法一定要扎实.就如盖房子一样,地基打得好,任凭风吹雨打,学习python也一样,学习很多东西都会花大量的时间来学习基础语法,对于毫无编程经验的新手而言,这样的无疑是很友好的,那么我们 ...
最新文章
- python处理csv文件缺失值_python处理数据中缺失值
- 自己开发的Grid组件 针对IOS的
- linux grep sed awk
- 快捷键截屏_QQ的Ctrl+Alt+A快捷键除了截屏,竟然还有这么多好用的功能!
- jdbc mysql 报错 ssl_Mybatis使用JDBC连接数据库报错及解决方案
- Android跨屏拖动item,android中如何实现两个listview中的item可以互相拖拽移位?
- filter_var()函数
- 通过MySQL存储原理来分析排序和锁
- 台达vfd一ⅴe变频说明书_PLC运动控制实例解析:PLC与变频器系统
- Zabbix安装和使用配置小结
- loadrunner要点总结
- Word2007中公式和文字混排,文字和公式总是没法对齐
- 这个1500个+Javascript特效代码,瞬间提升你的开发效率
- clion ros debug clion配置ros环境及调试
- nvidia卸载程序无法继续运行_nvidia安装程序无法继续 不兼容怎么办 nvidia安装程序无法继续安装怎么办...
- 技术经理、架构师、技术总监、VP、CTO,这些岗位都是如何挣出来
- 电脑与手机竟然还能这样传文件!
- 直观认识Windows
- 【慕课网】人工智能-语音入门|公开课知识整理
- [Unity Mirror] 自定义角色生成