网络编程(part1)--IO及字节串
鄙人學(xué)習(xí)筆記
文章目錄
- IO
- 定義
- 程序分類
- 文件
- 字節(jié)串(bytes)
- 舉個例子1(字符串與字節(jié)串轉(zhuǎn)換方法1)
- 舉個例子2(字符串與字節(jié)串轉(zhuǎn)換方法2)
- 舉個例子3(byte方法的使用)
IO
定義
在內(nèi)存中存在數(shù)據(jù)交換的操作認為是IO操作,比如和終端交互 ,和磁盤(能夠長久保存數(shù)據(jù)數(shù)據(jù)的存儲器)交互,和網(wǎng)絡(luò)交互等.
程序分類
①IO密集型程序:在程序執(zhí)行中有大量IO操作,而cpu運算較少.消耗cpu較少,耗時長(IO操作耗時長,效率低.磁盤的讀寫速度,直接會影響到我們程序運行的速度.)
②計算密集型程序:程序運行中計算較多,IO操作相對較少。cpu消耗多,執(zhí)行速度快,幾乎沒有阻塞。
文件
文件是保存在持久化存儲設(shè)備(硬盤、U盤、光盤…)上的一段數(shù)據(jù)。從功能角度,分為文本文件(打開后會自動解碼為字符,如.py文件)、二進制文件(如視頻、音頻等,必須要用專業(yè)的工具,才能顯示出它需要表達的東西)。在Python里把文件視作一種類型的對象,類似之前學(xué)習(xí)過的其它類型。
字節(jié)串(bytes)
在python3中引入了字節(jié)串的概念,與字符串str不同,字節(jié)串以字節(jié)序列值表達數(shù)據(jù),更方便用來處理二進制數(shù)據(jù)。因此字節(jié)串是python3表達二進制編碼的一種形式。
①普通的ascii編碼字符串可以在前面加b轉(zhuǎn)換為字節(jié)串,例如:b’hello’
②字符串轉(zhuǎn)換為字節(jié)串方法 :encode()
③字節(jié)串轉(zhuǎn)換為字符串方法 : decode()
備注:ASCII ((American Standard Code for Information Interchange): 美國信息交換標準代碼)是基于拉丁字母的一套電腦編碼系統(tǒng),主要用于顯示現(xiàn)代英語和其他西歐語言。
舉個例子1(字符串與字節(jié)串轉(zhuǎn)換方法1)
字符串前加b,使其轉(zhuǎn)換為字節(jié)串
(1)字符串為英文
結(jié)果:
結(jié)果中顯示的b’hello world’就是字節(jié)串,為啥它不顯示為01的形式呢?因為這是py的一種表現(xiàn)方法而已,但是他在我們的內(nèi)存中存儲的形式的確是二進制存儲。
(2)字符串為漢字
結(jié)果:
報錯!信息顯示,只允許ASCII編碼序列內(nèi)的字符串才能表達成字節(jié)碼存儲, ASCII編碼序列中沒有漢字。
備注 :那我們要是想實現(xiàn)漢字與字節(jié)串的相互轉(zhuǎn)換該咋整呢?那就要用到encode()和decode()
舉個例子2(字符串與字節(jié)串轉(zhuǎn)換方法2)
利用encode()和decode(),實現(xiàn)字符串與字節(jié)串之間的相互轉(zhuǎn)換。
(1)encode
結(jié)果:
這就是python中將”你好” 轉(zhuǎn)換成字節(jié)串的樣子,它由兩位十六進制為一組來表達的。
(2)decode
結(jié)果:
備注:我們也可以通過bytes()這種強轉(zhuǎn)方法,將數(shù)據(jù)轉(zhuǎn)換成字節(jié)串。
舉個例子3(byte方法的使用)
①byte()內(nèi)的參數(shù)若為整數(shù)n,則表示,將一個長度為n的,元素全為0的列表序列轉(zhuǎn)換為字節(jié)串。比如:
結(jié)果:
②byte()內(nèi)的參數(shù)若為字符串,則python會將字符串轉(zhuǎn)換為字節(jié)串。但注意,要指定encoding參數(shù)為”utf-8”
③byte()內(nèi)的參數(shù)若為整數(shù)(0-255內(nèi))列表,則表示,將列表整數(shù)轉(zhuǎn)換為bytes字節(jié)串
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎勵來咯,堅持創(chuàng)作打卡瓜分現(xiàn)金大獎總結(jié)
以上是生活随笔為你收集整理的网络编程(part1)--IO及字节串的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: HTML基础(part7)--常用标签之
- 下一篇: 网络编程(part2)--文件读写之打开