Pyghon学习记录
【类】是【对象】的母板,得先有了类,我们才能制造各种“对象”。就像我们先有了产品图纸,才能制造各种产品一样
【类】是一个函数包。类中可以放置函数和变量,然后类中的函数可以很方便的使用类中的变量
用class
语句来自定义一个类。
在类中被定义的变量被称为类的【属性】。使用类名
.
变量名
的格式,可以把类中的属性的值提取出来
class 类A():
变量1 = 100
# 这里需要用print语句,才能把提取出的数值打印到屏幕上
print(类A.变量1)
类中的属性(变量)也可以修改,使用类名
.
变量名
的格式,可以让我们在类的外面,增加或修改类的属性:
当类中放置了函数和变量,类就有了方法和属性:
类方法也是函数,它和单独定义函数的区别是什么?
它们两者最大的区别,一个是它的调用格式:类
.
函数名
()
比函数名
()
多了一个【类.】,但更重要的是,“类”中的函数可以利用“类”中的变量(也就是类方法可以调用类属性)。
“重写类方法”分成两个步骤:第一个步骤是在类的外部写一个函数,第二个步骤是把这个新函数的名字赋值给类
.
原始函数
:
class 类():def 原始函数(self):print('我是原始函数!')def 新函数(self): # ***这个括号里面必须写上self,说明是实例。否则会报错print('我是新函数!')a = 类()a.原始函数()类.原始函数 = 新函数a.原始函数()
编码和文件读写:
编码的本质就是让只认识0和1的计算机,能够理解我们人类使用的语言符号,并且将数据转换为二进制进行存储和传输
这种从人类语言到计算机语言转换的形式,就叫做编码表,它让人类语言和计算机语言能够一一对应起来.
UTF-8可以兼容ASCII编码; Unicode是内存编码的规范,而UTF-8是如何保存和传输Unicode的手段;
为什么电脑引入16或8进制?2、8、16,分别是2的1次方、3次方、4次方。这一点使得三种进制之间可以非常直接地互相转换;
计算机是有自己的工作区的,这个工作区被称为“内存”。数据在内存当中处理时,使用的格式是Unicode,统一标准;
在Python3当中,程序处理我们输入的字符串,是默认使用Unicode编码的,所以你什么语言都可以输入;
将人类语言转换为计算机语言,就是【编码】encode();反之,就是【解码】decode()
比如: print('小明'.encode('utf-8')) 打印结果是b'\xe5\xb0\x8f\xe6\x98\x8e', 将人类语言编码后得到的结果,有一个相同之处,就是最前面都有一个字母b,比如b'\xe5\xb0\x8f\xe6\x98\x8e',这代表它是bytes(字节)类型的数据. \x是分隔符,用来分隔一个字节和另一个字节. 另外有的网址里面也有好多的%,它们也是分隔符,替换了Python中的\x.
所谓的编码,其实本质就是把str(字符串)类型的数据,利用不同的编码表,转换成bytes(字节)类型的数据。
字符和字节两个概念: 字符是人们使用的记号,一个抽象的符号,这些都是字符:'1', '中', 'a', '$', '¥' . 而字节则是计算机中存储数据的单元,一个8位的二进制数.
再如ASCII编码, 它不支持中文,所以我们来转换一个大写英文字母K: print('K'.encode('ASCII')), 输出是b'K', 你看到大写字母K被编码后还是K,但这两个K对计算机来说意义是不同的。前者是字符串,采用系统默认的Unicode编码,占两个字节。后者则是bytes类型的数据,只占一个字节。这也验证我们前面所说的编码就是将str类型转换成bytes类型。
接下来我们就来看看文件读写:
文件读写,是Python代码调用电脑文件的主要功能,能被用于读取和写入文本记录、音频片段、Excel文档、保存邮件以及任何保存在电脑上的东西.
你可能会问 ;为什么要在Python打开文件?我直接打开那个文件,在那个文件上操作不就好了吗?
一般来说直接打开操作当然是没问题的。但假如你有一项工作,需要把100个Word文档里的资料合并到1个文件上,一个个地复制粘贴多麻烦啊,这时你就能用上Python了。或者,当你要从网上下载几千条数据时,直接用Python帮你把数据一次性存入文件也是相当方便.
【文件读写】,是分为【读】和【写】两部分的,我们就先来瞧瞧【读文件】是怎么实现的?
读文件也是三步:打开——读取——关闭
文件的地址有两种:相对路径和绝对路径:
绝对路径就是最完整的路径,相对路径指的就是【相对于当前文件夹】的路径,也就是你编写的这个py文件所放的文件夹路径!
打开:file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8')
第二个参数表示打开文件时的模式。这里是字符串 'r',表示 read,表示我们以读的模式打开了这个文件。
\在Python中是转义字符,所以时常会有冲突。为了避坑,Windows的绝对路径通常要稍作处理,写成以下两种格式;
open('C:\\Users\\Ted\\Desktop\\test\\abc.txt') #将'\'替换成'\\'open(r'C:\Users\Ted\Desktop\test\abc.txt') #在路径前加上字母r
除了'r',其他还有'w'(写入),'a'(追加)等模式,我们稍后会涉及到
读取文件:
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') filecontent = file1.read() print(filecontent)
关闭文件:
file1 = open('/Users/Ted/Desktop/test/abc.txt','r',encoding='utf-8') filecontent = file1.read() #读取file1的内容, 并且把读到的内容放在变量**filecontent**里面,这样我们才能拿到文件的内容. print(filecontent) file1.close()
为啥要关闭文件呢?原因有两个:1.计算机能够打开的文件数量是有限制的,open()过多而不close()的话,就不能再打开文件了。2.能保证写入的内容已经在文件里被保存好了.
文件关闭之后就不能再对这个文件进行读写了。如果还需要读写这个文件的话,就要再次 open() 打开这个文件
Pyghon学习记录相关推荐
- Pytorch学习记录-torchtext和Pytorch的实例( 使用神经网络训练Seq2Seq代码)
Pytorch学习记录-torchtext和Pytorch的实例1 0. PyTorch Seq2Seq项目介绍 1. 使用神经网络训练Seq2Seq 1.1 简介,对论文中公式的解读 1.2 数据预 ...
- HTML5与CSS3权威指南之CSS3学习记录
title: HTML5与CSS3权威指南之CSS3学习记录 toc: true date: 2018-10-14 00:06:09 学习资料--<HTML5与CSS3权威指南>(第3版) ...
- springboot @cacheable不起作用_Springboot学习记录13 使用缓存:整合redis
本学习记录的代码,部分参考自gitee码云的如下工程.这个工程有详尽的Spingboot1.x教程.鸣谢! https://gitee.com/didispace/SpringBoot-Learnin ...
- 【Cmake】Cmake学习记录
Cmake学习记录 1.1 常例 add_library(gen_reference_infogen_reference_info/gen_reference_info.hgen_reference_ ...
- ASP.NETCore学习记录(一)
ASP.NETCore学习记录(一) asp.net core介绍 Startup.cs ConfigureServices Configure 0. ASP.NETCore 介绍 ASP.N ...
- Android开发技术周报176学习记录
Android开发技术周报176学习记录 教程 当 OkHttp 遇上 Http 2.0 http://fucknmb.com/2018/04/16/%E5%BD%93OkHttp%E9%81%87% ...
- add函数 pytorch_Pytorch学习记录-Pytorch可视化使用tensorboardX
Pytorch学习记录-Pytorch可视化使用tensorboardX 在很早很早以前(至少一个半月),我做过几节关于tensorboard的学习记录. https://www.jianshu.co ...
- java之字符串学习记录
java之字符串学习记录 public class StringDemo { public static void main(String[] args) { //静态初始化字符串 String s1 ...
- Redis的学习记录
Redis的学习记录 1.先导了解 1.1 NOSQL概述 1.1.1 为什么要用NoSql? 1.1.2 NoSql了解 1.1.3 NoSql特点 1.1.4 NoSQL的四大分类 2. Redi ...
最新文章
- 题目:查找数组中的重复数字,要求空间复杂度为O(1)(基于Java实现)
- C#调用Mail发送QQ邮件
- 死磕 java集合之ConcurrentSkipListMap源码分析——发现个bug
- Java架构经验总结
- .NET中的值类型与引用类型
- Citrix高层相继离职,XenServer或将被流产?
- 【leetcode】栈(python)
- Jmeter脚本录制和压测
- 蒸汽管道图纸符号_管道图形符号
- 学说话:和光合作用五道口店咖啡吧的小姑娘过招儿;推荐:《如何听如何说》 - [学说话]
- 短视频SDK接入(2)---环境搭建
- idea连接linux中mysql[08S01]错误
- 哦也!伟大的回文树(回文自动机)!
- OpenFeign日志
- 智能体温监测预警系统方案开发
- 超经典机械制图基础常识
- 计算机毕业设计 SSM网上购物商城系统(源码+论文)
- LTE QPSK 16QAM星座图、调制符号与bit序列映射关系
- 什么是Mocking framework?它有什么用?(转)
- 如何解决Not able to find Java executable or version. Please check your Java installation?