【涵子来信】——第一季——第2封——python3级1章攻略

18 篇文章 0 订阅
10 篇文章 1 订阅

_大家好

好几天没有给大家更新文章了啊。今天,我们来唠一唠——

python3级!

提前事项:

本次内容全为干货,十分长,请慢慢食用!

本次内容较长,涉及到了数制转换,二维数据和数据处理。后面还有准备的练习题。

好,咱们废话不多说,开始今天的学习旅程!


目录

一、数制转换

1.1.二、八、十、十六进制及其转换

1.1.1.数制介绍

1.1.2.十进制

1.1.3.二进制

1.1.4.二进制转换

1.1.5.Binary转换函数

1.1.6.八进制

1.1.7.Octal转换函数

1.1.8.十六进制

1.1..9.Hexadecimal转换函数

二、练习题

二、二维数据

2.1.六大基本数据类型

2.2.集合

2.3.基本数据类型

2.3.1.一维数据

2.3.2.二维数据

2.3.3.高维数据

2.3.4.数据操作周期

2.3.5.二维数据的遍历

2.3.6.二维数据的表达形式

三、数据处理

3.1.文件读写

3.2.打开模式

3.3.文件操作

3.4.一维数据操作

3.5.CSV文件

3.6.读取CSV

3.7.写入CSV

3.8.CSV模块

3.9.read()与readline()、readlines()的区别

3.10.write()与writelines()的区别

四、总结


一、数制转换

1.1.二、八、十、十六进制及其转换

1.1.1.数制介绍

如果说语言是思想的载体,那么不同语言的计数方式则反映了不同的算数思维方式。

传说在人来早起,不同民族不同语言中先后出现过以十个手指头为单位的“十进制”;

以手脚共二十个指头为单位的“二十进制”;

以及方便天文历法的“十二进制”或者“六十进制”。

二进制起源于中国。二进制的运用,在我国古代就已呈现的淋漓尽致。

随着人类的发展,几乎所有的语言最终都采取了以“十”为单位的计数方式。

总之,技术的单位没有绝对的好坏标准,只要认为方便好用即可。

1.1.2.十进制

这就不用说了。我们平时算数都是用十进制的!

0, 1, 2, 3, 4, 5, 6, 7, 8, 9

1.1.3.二进制

由0和1组成,逢二进一,常用于表示电路中电流的油污、高低,晶体管的导通和截止等等。二进制兼容逻辑运算。

0+0=0 0+1=1 1+0=1 1+1=10

0*0=0 0*1=0 1*0=0 1*1=1

剩下的进制和前两个差不多。

1.1.4.二进制转换

十进制转二进制:除二取余、逆序输出、利用短除、注意结果

二进制转十进制:按*权展开、逐项相加

Tips*:权,是在高中数学中的一个术语。详细内容请到:百度百科

1.1.5.Binary转换函数

利用python来转换进制:

>>>print(bin(11))
'0b1011'

bin函数将十进制整数转换成二进制数,返回结果是字符串。

二进制的前缀“0b”和“0B”等价,不区分大小写。

>>>print("0b1011")
11

还可以用int函数!

>>>print(int('1011', '2'))
11

记住格式:int(str, 进制)

1.1.6.八进制

由0~7组成,逢八进一。

八进制转十进制:除八取余、逆序输出、利用短除

十进制转八进制:按权展开、逐项相加

1.1.7.Octal转换函数

记住,不是oct(10),而是八进制!

>>>print(oct(11))
'0o31'
>>>print('0o31')
25
>>>print(int('31', '8'))
25

oct函数将十进制整数转换成八进制数,返回结果是字符串。

八进制的前缀“0o”和“0O”等价,不区分大小写。

1.1.8.十六进制

由0~9和A~F组成,逢十六进一。

0, 1, 2, 3, 4, 5, 6, 7, 8, 9, A, B, C, D, E, F

十进制转十六进制:除十六取余、逆序输出、利用短除

十六进制转十进制:按权展开、逐项相加

1.1..9.Hexadecimal转换函数

>>>print(hex(43))
'0x2b'
>>>print('0x2b')
43
>>>print(int('2b', 16))
43

hex函数将十进制整数转换成十六进制数,返回结果是字符串。

十六进制的前缀“0x”和“0X”等价,不区分大小写。

二、练习题

请等待下一封信。

恭喜你看完了——

三分之一的内容!

加油!

二、二维数据

2.1.六大基本数据类型

123 数字

"123" 字符串

[1, 2, 3] 列表

(1, 2, 3) 元组

{"x":1, "y":2, "z":3} 字典

{1, 2 ,3 ,4 ,5} 集合

相信大家前五个都认识,但是第六个集合就不一定了。

2.2.集合

集合是由不重复元素组成的无序容器(有点绕!)

>>>a = {1, 2, 3, 4, 5}
>>>b = set(1, 2, 3, 4, 5)
>>>c = set(1, 1, 2, 2, 3, 3, 4, 4, 5, 5)
>>>d = {5, 4, 3, 2, 1}
>>>a == b == c == b
True

集合的差集

>>>a = {1, 2, 3}
>>>b =  set(3, 4, 5)
>>>a-b # in a not in b
{1, 2}

集合的合集

>>>a|b # in a or b or both
{1, 2, 3, 4, 5}

集合的交集

>>>a&b # in both a and b
{3}

集合的对称差集

>>>a^b # in a or b but not both
{1, 2, 4, 5}

列表与集合同时查找出现过的元素:

列表:

list1 = [1, 2, 3, 4]
list2 = [3, 4, 5, 6]
list3 = []
for i in list1:
   if i in list2:
       list3,append(i)
print(list3)

集合

list1 = [1, 2, 3, 4, 2, 3, 1, 2, 2]
set1 = set(list1)
print(list(set1))

2.3.基本数据类型

2.3.1.一维数据

由对等关系的有序或无序数据构成,采用线性方式组织。

任何表现为序列或集合的对象都可以看做是一维数据。

2.3.2.二维数据

二维数据由多个一维数据构成,是一维数据的组合形式

二维数据一般采用相同的数据类型存储数据

表格是典型的二维数据

姓名语文数学英语
AA1009598
BB9310089
CC959999
score = [["AA", 100, 95, 98],
         ["BB", 93, 100, 89],
         ["CC", 95, 99, 99]]
score[0][0]
"AA"

2.3.3.高维数据

仅利用最基本的二元关系展示数据间的复杂结构

{"name":"光头强",
"adress":{"province":"黑龙江省",
          "city":"哈尔滨市",
          "street":"团结屯"},
"occupation":"伐木工"}

2.3.4.数据操作周期

数据储存<->数据表示<->数据操作

2.3.5.二维数据的遍历

score = [["AA", 100, 95, 98],
         ["BB", 93, 100, 89],
         ["CC", 95, 99, 99]]
for i in range(3):
    for j in range(3):
        print(score[i][j])

如果二维数据储存数据时采用了不同的数据结构,,上述写法还好用吗?为什么?

2.3.6.二维数据的表达形式

表格

柱状图

折线图

饼图

散点图

雷达图

恭喜你成功食用了三分之二

继续加油!

三、数据处理

3.1.文件读写

在同一根目录下时,打开文件很简单

变量名 = open(文件名, 打开模式)

file = open("test.txt", "r")

不在同一根目录下,则需文件路径

file = open("C:\Users\马赛克\Desktop\test\test.txt", "r")

3.2.打开模式

'r' 只读

'x' 新建写入。如果该文件存在会报错

'w' 覆盖写入。如果该文件不存在,创建新文件

'a' 尾部写入。如果该文件不存在,创建新文件

'w+' 覆盖写入并读取

'a+' 尾部写入并读取

此外还有'b', 't'等模式

3.3.文件操作

OS模块-Operation System

不用pip,python3自带的

import os

获取当前.py工作路径

os.getcwd()

暂时让.py去新的路径工作

os.chdir()

要么open时写上路径

f = open(r'test\test.txt', 'r')

要么临时修改路径

import os
os.chdir(r"C:\Users\马赛克\Desktop\test\test")
f = open("test.txt", "r")

不再使用的文件,记得要关闭。

file.close()

常有程序员(学习者、同学等等)会忘记.close()导致资源浪费

推荐:

with open('test.txt', 'r') as f:
   t = f.read()
   print(t)

要注意,python不能读取中文,否则会报错

UnicodeDecodeError
UnicodeError

3.4.一维数据操作

通过.join()向列表插入间隔符号并生成字符串。

f = open('test.txt', 'w')
n = ['a', 'b', 'c', 'd', 'e']
f.write(','.join(n))
f.close

 通过writelines直接写入列表

f = open("test.txt", 'w')
n = ['a', 'b', 'c', 'd', 'e']
f.writelines(n)
f.close()

通过.split()酱油间隔符号的字符串转化为列表

f = open("test.txt", "r")
t = f.read()
t = t.split(',')
print(t)

3.5.CSV文件

CSV - Comma Separated Values

国际通用的一二维数据储存格式,一般.csv后缀名(扩展名)

每行一个一维数据,默认逗号分隔,无空行

Excel和一般编辑软件都可读取或另存为csv文件

3.6.读取CSV

逐行读取

f = open("test.csv", "r")
for i in f:
    print(i)
f.close()

逐行读取并拆分为列表

f = open("test.csv", "r")
for i in f:
    print(i.split(','))
f.close()

逐行读取、拆为列表并移除行末换行符\n

f = open("test.csv", "r")
for i in f:
    i = i.replace('\n', '')
    print(i.split(','))
f.close()

加油!快好了!

 逐行读取、存为二维列表并移除行末换行符

f = open("test.csv", "r")
n = []
for i in f:
    i = i.replace('\n', '')
    n.append(i.split(','))
f.close()
print(n)

3.7.写入CSV

手动使用换行符写入

f = open("test.csv", "w")
n = '姓名, 语文, 数学, 英语 \nAA, 99, 99, 99'

注意逗号是英文的!

f.write(n)
f.close()

循环加入换行符写入

f = open("test.csv", "w")
n = [['姓名', '语文', '数学', '英语'], ["AA", "99". "99", "99"]]
for i in n:
    f.write(','.join(i) + '\n')
f.close()

3.8.CSV模块

csv模块不用pip哦。

读取文件

import csv
with open('test.csv', 'r') as f:
    t = csv.reader(f)
    for i in t:
        print(i)

写入文件

improt csv
with open("test.csv", "w") as f:
    w = csv.writer(f)
    w.writerow(['姓名', '语文', '数学', '英语'])
    w.writerow(['AA', '99', '99', '99'])
    a = ['BB', '80', '80', '80']
    w.writerows(a)

3.9.read()与readline()、readlines()的区别

read()函数每次读取整个文件,返回结果为字符串

readline()函数每次读取文件的第一行,返回结果为字符串

readlines()每次按行读取整个文件的内容,返回结果为列表

3.10.write()与writelines()的区别

write()需要传入一个字符串作为参数,否则会报错

writelines()既可以传入字符串,也可以传入一个字符序列,并将该字符序列写入文件

恭喜恭喜!你读完了!

四、总结

通过这一次学习,我们了解了关于python3级的三个知识点,学习到了很多知识!

希望大家可以学习到更多知识!

给个关注,写作不易!

我们下一期再见。

涵子码农

2022/8/23 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值