三元運算

什麼是三元運算?請看下圖說明

透過上圖說明後,可以得出一個三元運算公式: result = 值1 if 條件 else 值2,

  • 如果鯈件為真: result = 值1
  • 如果鯈件為假: result = 值2

如果不寫三元運算的話,那原本的代碼就會寫的較為冗長,就像下面的代碼

#!/usr/bin/env python3
# -*- coding:utf-8 -*- a, b, c = 1, 3, 5 if a > b:
d = a
else:
d = c
print(d) ---------------執行結果---------------
5 Process finished with exit code 0

進制

  • 二進制 - 01
  • 八進制 - 01234567
  • 十進制 - 0123456789 (我們生活用的就是十進制)
  • 十六進制 - 0123456789ABCDEF

bytes類型 (字節)

在 Python2 裡,字符串和字節常常傻傻分不清楚,字節可以把它理解為二進制的數據類型,字符串但在 Python3 裡,有一個專門的數據類型,就叫 bytes類型。

Python3 最重要的特性大概算是對文件與二進制數據做了更清楚的區分。文件大都是用 Unicode,由 str類型 表示,二進制數據則由 bytes類型 表示,在 Python3 不會以任意隱式的方式混用 str 和 bytes,也正因為這樣,所以你不能拼接字符串和字節包,也無法在字節包裡搜索字符串(反之亦然),也不能將字符串傳入參數為字節包的函數(反之亦然)。

有沒有一種可能的情況是我的文件是存成二進制的話,那可不可以互相轉換?就像是之前提到過的,字符編碼裡,有 ASCII 、 GB2312 、 GBK 、 GB 18030等,不同的編碼之間不是可以互相轉換的,相對地,就如同 str 跟 bytes 也是可以互相轉換的,請看下圖說明

來簡單手動實驗一下

↑↑↑請觀察輸出結果↑↑↑,那寫在代碼裡,又該怎麼寫呢?

輸出不會出錯,是因為預設已經吃了 utf-8

但建議還是手動自已加上去,避免出錯

輸出結果

我是鋼鐵人
b'\xe6\x88\x91\xe6\x98\xaf\xe9\x8b\xbc\xe9\x90\xb5\xe4\xba\xba' Process finished with exit code 0

再來試試把它還原回去字符串

輸出結果

我是鋼鐵人
b'\xe6\x88\x91\xe6\x98\xaf\xe9\x8b\xbc\xe9\x90\xb5\xe4\xba\xba'
我是鋼鐵人 Process finished with exit code 0

知識點:

  • 什麼叫隱式?隱式就是 Python2 會自動幫你做轉換類型,例如,之前我們使用 int(整數) 時,當我們傳入的數值過大時,會自動幫你轉成 long(長整數),但在 Python3 中,並不會幫你做這件事,要嘛給你出錯,要嘛就是自已手動執行。
  • 在 Python2 裡,是可以互相拼接字符串和字節包,因為它們是一樣的東西。
  • 有一種情況下,字符串一定要轉成二進制,在socket網路編程中,網路傳輸都是以二進制傳輸,在 Python3 中,當所有數據要從A台電腦傳到B台電腦時,都是以二進制傳輸,因此務必要把字符串轉成二進制,而在 Python2 中,因為字符串可以是直接傳輸。

參考資料:

二进制数与十六进制数之间如何互相转换

二、八、十、十六进制转换(图解篇)

Unicode HOWTO

Python 基礎 - bytes數據類型的更多相关文章

  1. GO語言基礎教程:數據類型,變量,常量

    GO類似PHP,每行的結尾要加分號來結束,不同點在於GO對此並不強制,這一點又像javascript,另外GO的語句塊是用一對大括號來包裹的,但是go要求左大括號必須要在語句的結尾處,不能在行首出現左 ...

  2. Python 基礎 - 數據類型

    標準數據類型 Python3 中有六個標準的數據類型 1 Number(數字) 2 String(字符串) 3 List (列表) 4 Tuple (元組) 5 Sets (集合) 6 Diction ...

  3. js數據類型

    js的數據類型有:字符串.數字.布爾型.數組.undfined.null: js擁有動態類型,同樣的變量可以賦值多個類型: 變量賦值可以聲明后賦值,或者聲明時賦值: 字符串: 字符串用單引號或者雙引號 ...

  4. Python 基礎 - 字典的操作使用

    接下來介紹字典,這在未來工作上,會是很常使用的,就來好好了解一下唄- 字典是一個 key(鍵)-value(值) 的數據類型,可以儲存很多訊息 #!/usr/bin/env python3 # -*- ...

  5. Python 基礎 - 列表的使用

    如果想要存所有 Marvel's The Avengers 角色的人名,該如何存呢?請用目前已學到的知識來實做- #!/usr/bin/env python3 # -*- coding:utf-8 - ...

  6. Python 基礎 - 用戶交互程序

    現在就來寫一個簡單的 用戶輸入 的程式,這是一個互動模式,需要使用者自已輸入 #!/usr/bin/env python3 # -*- coding:utf-8 -*- username = inpu ...

  7. GO語言基礎教程:數組,切片,map

    這節課我們來講解數組,切片和map,或許您是從其他語言轉到GO語言這邊的,那麼在其他語言的影響下您可能會不太適應GO語言的數組,因為GO語言把數組給拆分成了array,slice和map,接下來的時間 ...

  8. Python 基礎 - for流程判斷

    今天介紹另一個循環判斷式 for循環,首先,先寫一個很簡單的 for循環的代碼 #!/usr/bin/env python3 # -*- coding:utf-8 -*- for i in range ...

  9. Python 基礎 - if else流程判斷

    hmm~前面講了那麼多,終於可以稍稍的正式進入另一個階段,沒錯,要開始寫判斷式了 這次先從最簡單的判斷式開始,if else 開始- Go 首先,之前有寫有一個簡單的互動式 用戶輸入 的代碼,忘記了嗎 ...

随机推荐

  1. 剑指offer一:二维数组中的查找

    题目: 在一个二维数组中,每一行都按照从左到右递增的顺序排序,每一列都按照从上到下递增的顺序排序.请完成一个函数,输入这样的一个二维数组和一个整数,判断数组中是否含有该整数. 思路: 这是一个顺序二维 ...

  2. Deep Learning 17:DBN的学习_读论文“A fast learning algorithm for deep belief nets”的总结

    1.论文“A fast learning algorithm for deep belief nets”的“explaining away”现象的解释: 见:Explaining Away的简单理解 ...

  3. Python之路 day2 初识字典

    #Author:ersa ''' key-value 键值对 字典是无序的,不需要下标,有key 字典的查找.修改.添加.判断.删除 ''' info = { 'stu1101': "Ten ...

  4. 0030 Linux 网络操作命令

    1. 主机是否可达 ping IP 2. 服务是否在运行 telnet IP port 3. 网络配置 ifconfig ip route arp 4. 网络访问 curl wget 5. 网络追踪 ...

  5. OllyDBG 1.10

    OllyDBG 1.10 OllyDBG.exeOllyDBG SoftICE文件->打开 (快捷键是 F3)F2 断点 F9F8 步过 F10F7 步入 F8F4 运行到位置 F7F9 运行 ...

  6. 51nod 1027大数乘法

    题目链接:51nod 1027大数乘法 直接模板了. #include<cstdio> #include<cstring> using namespace std; ; ; ; ...

  7. @keyframes

    通过 @keyframes 规则,您能够创建动画. @keyframes movelike{ from{right:1205px;} to{right:0px}} 创建动画的原理是,将一套 CSS 样 ...

  8. Project中分清楚挣值项

    在项目管理非常重要的挣值管理,有一些关键项,像PV,EV,AC,BAC,EAC,ETC等等这些都是关键项,如果这个没分清楚,计算出很多东西都是错的,下面两个图是我一个项目快要完成的报表. 图1 图2 ...

  9. PDF 补丁丁 0.4.2.1023 测试版发布:新增旋转页面功能

    新的测试版发布啦.此版本增加了旋转页面的功能. 在“PDF文档选项”对话框的“页面设置”选项卡中,可设置需要旋转的页面(输入页码范围),以及旋转角度. 此外,还修复了统一页面尺寸功能的小问题.

  10. 谈谈Javascript的this关键字(this is not this)

    前言: 看文章标题你就知道,这篇文章我只讲一个简单的Javascript的this关键字,说它简单——它又不简单,因为曾几何时我也对this关键字有些困惑,它也确实会让不少程序员感到不解——它像是一个 ...