『Python基礎-5』數字,運算,轉換
目錄
基本的數字類型
二進制,八進制,十六進制
數字類型間的轉換
數字運算
1. 數字類型
Python 數字數據類型用于存儲數學上的值,比如整數、浮點數、復數等。數字類型在python中是不可變類型,意思是一個變量被賦予了一個不一樣的數值之后就不再是原來的內存指向了,python是基于值得內存管理機制。
數據類型是不允許改變的,這就意味著如果改變數字數據類型的值,將重新分配內存空間。
Python 支持三種不同的數值類型:
整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)
復數( (complex)) - 復數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 復數的實部a和虛部b都是浮點型。
2. 二進制,八進制,十六進制
進制也就是進位制。進行加法運算時逢X進一(滿X進一),進行減法運算時借一當X,這就是X進制,這種進制也就包含X個數字,基數為X。
二進制 Binary
二進制以2為基數,只用0和1兩個數字表示數,逢2進一。
二進制常量用0b或0B開頭,后面跟著二進制數字(0、1)
例,ob010101
八進制 Octal
八進制,就是其基數為8,基數值可以取0、1、2、3、4、5、6、7共8個值,逢八進一。
八進制常量以數字0o或0O開頭(0和小寫或大寫的字母“o”),后面接著數字0~7構成的字符串。
例,0o177
十六進制 Hexadecimal
十六進制一ox或0X開頭,后面接十六進制的數字0~9和A~F。十六進制的數字編寫成大寫或小寫都可以。
例,ox9ff
各種進制的用途
2進制,是供計算機使用的,1,0代表開和關,有和無,機器只認識2進制。
10進制,當然是便于我們人類來使用,我們從小的習慣就是使用十進制,這個毋庸置疑。
16進制,內存地址空間是用16進制的數據表示, 如0x8049324。
編程中,我們常用的還是10進制。
比如:int a = 100,b = 99;
不過,由于數據在計算機中的表示,最終以二進制的形式存在,所以有時候使用二進制,可以更直觀地解決 問題。但二進制數太長了。比如int 類型占用4個字節,32位。比如100,用int類型的二進制數表達將是:
0000 0000 0000 0000 0110 0100
面對這么長的數進行思考或操作,沒有人會喜歡。因此,用16進制或8進制可以解決這個問題。因為,進制越大,數的表達長度也就越短。
用于計算機領域的一種重要的數制
對計算機理論的描述,計算機硬件電路的設計都是很有益的。比如邏輯電路設計中,既要考慮功能的完備,還要考慮用盡可能少的硬件,十六進制就能起到一些理論分析的作用。比如四位二進制電路,最多就是十六種狀態,也就是一種十六進制形式,只有這十六種狀態都被用上了或者盡可能多的被用上,硬件資源才發揮了盡可能大的作用。
十六進制更簡短,因為換算的時候一位16進制數可以頂4位2進制數。
3. Python 數字類型轉換
對數據內置的類型進行轉換,數據類型的轉換,只需要將數據類型作為函數名即可。
int(x) 將x轉換為一個整數。
float(x) 將x轉換到一個浮點數。
complex(x) 將x轉換到一個復數,實數部分為 x,虛數部分為 0。
complex(x, y) 將 x 和 y 轉換到一個復數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。
常用的數據轉換:
函數
說明
int(x [,base ])
將x轉換為一個整數
float(x )
將x轉換為一個浮點數
complex(real [,imag ])
創建一個復數,real為實部,imag為虛部
str(x )
將對象 x 轉換為字符串
repr(x )
將對象 x 轉換為表達式字符串
eval(str )
用來計算在字符串中的有效Python表達式,并返回一個對象
tuple(s )
將序列 s 轉換為一個元組
list(s )
將序列 s 轉換為一個列表
chr(x )
將一個整數轉換為一個Unicode字符
ord(x )
將一個字符轉換為它的ASCII整數值
hex(x )
將一個整數轉換為一個十六進制字符串
oct(x )
將一個整數轉換為一個八進制字符串
bin(x )
將一個整數轉換為一個二進制字符串
注意:
在整數除法中,除法(/)總是返回一個浮點數;
如果只想得到整數的結果,丟棄可能的分數部分,可以使用運算符 //
變量在使用前必須先"定義"(即賦予變量一個值),否則會出現錯誤:
n # 嘗試訪問一個未定義的變量
Traceback (mostrecent call last): File "", line 1, in
NameError: name'n' is not defined
4. 數字運算
4.1 算術運算符
下面以a=10 ,b=20為例進行計算:
運算符
描述
實例
+
加
兩個對象相加 a + b 輸出結果 30
-
減
得到負數或是一個數減去另一個數 a - b 輸出結果 -10
*
乘
兩個數相乘或是返回一個被重復若干次的字符串 a * b 輸出結果 200
/
除
b / a 輸出結果 2
//
取整除
返回商的整數部分 9//2 輸出結果 4 , 9.0//2.0 輸出結果 4.0
%
取余
返回除法的余數 b % a 輸出結果 0
**
指數
a**b 為10的20次方, 輸出結果 100000000000000000000
[注意]:
混合運算時,優先級順序為: ** 高于 * / % // 高于 + - ,為了避免歧義,建議使用 () 來處理運算符優先級。
并且,不同類型的數字在進行混合運算時,整數將會轉換成浮點數進行運算。
4.2 賦值運算符
運算符
描述
實例
=
賦值運算符
把 = 號右邊的結果 賦給 左邊的變量,如 num = 1 + 2 * 3,結果num的值為7
+=
加法賦值運算符
c += a 等效于 c = c + a
-=
減法賦值運算符
c -= a 等效于 c = c - a
*=
乘法賦值運算符
c *= a 等效于 c = c * a
/=
除法賦值運算符
c /= a 等效于 c = c / a
%=
取模賦值運算符
c %= a 等效于 c = c % a
**=
冪賦值運算符
c **= a 等效于 c = c ** a
//=
取整除賦值運算符
c //= a 等效于 c = c // a
4.3 比較(即關系)運算符
運算符
描述
示例
==
檢查兩個操作數的值是否相等,如果是則條件變為真。
如a=3,b=3,則(a == b) 為 True
!=
檢查兩個操作數的值是否相等,如果值不相等,則條件變為真。
如a=1,b=3,則(a != b) 為 True
>
檢查左操作數的值是否大于右操作數的值,如果是,則條件成立。
如a=7,b=3,則(a > b) 為 True
<
檢查左操作數的值是否小于右操作數的值,如果是,則條件成立。
如a=7,b=3,則(a < b) 為 False
>=
檢查左操作數的值是否大于或等于右操作數的值,如果是,則條件成立。
如a=3,b=3,則(a >= b) 為 True
<=
檢查左操作數的值是否小于或等于右操作數的值,如果是,則條件成立。
如a=3,b=3,則(a <= b) 為 True
4.4 邏輯運算符
運算符
邏輯表達式
描述
實例
and
x and y
布爾"與":如果 x 為 False,x and y 返回 False,否則它返回 y 的值。
True and False, 返回 False。
or
x or y
布爾"或":如果 x 是 True,它返回 True,否則它返回 y 的值。
False or True, 返回 True。
not
not x
布爾"非":如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。
not True 返回 False, not False 返回 True
『Python基礎-11』集合 (set)
# 『Python基礎-11』集合 (set) 目錄: 集合的基本知識 集合的創建 訪問集合里的值 向集合set增加元素 移除集合中的元素 集合set的運算 1. 集合的基本知識 集合(set)是一個 ...
『Python基礎-4』字符串
# 『Python基礎-4』字符串 目錄 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘號'*'來實現字符串的疊加效果. 2.4 在字符串中添加空 ...
『Python基礎-10』字典
# 『Python基礎-10』字典 目錄: 1.字典基本概念 2.字典鍵(key)的特性 3.字典的創建 4-7.字典的增刪改查 8.遍歷字典 1. 字典的基本概念 字典一種key - value 的 ...
『Python基礎-9』元祖 (tuple)
『Python基礎-9』元祖 (tuple) 目錄: 元祖的基本概念 創建元祖 將列表轉化為元組 查詢元組 更新元組 刪除元組 1. 元祖的基本概念 元祖可以理解為,不可變的列表 元祖使用小括號括起所 ...
『Python基礎-8』列表
『Python基礎-8』列表 1. 列表的基本概念 列表讓你能夠在一個地方存儲成組的信息,其中可以只包含幾個 元素,也可以包含數百萬個元素. 列表由一系列按特定順序排列的元素組成.你可以創建包含字母表 ...
『Python基礎-7』for循環 &; while循環
『Python基礎-7』for循環 & while循環 目錄: 循環語句 for循環 while循環 循環的控制語句: break,continue,pass for...else 和 whi ...
『Python基礎-6』if語句, if-else語句
# 『Python基礎-6』if語句, if-else語句 目錄: 條件測試 if語句 if-else語句 1. 條件測試 每條if語句的核心都是一個值為True或False的表達式,這種表達式被稱為 ...
『Python基礎-3』變量、定義變量、變量類型、關鍵字Python基礎-3』變量、定義變量、變量類型、關鍵字
『Python基礎-3』變量.定義變量.變量類型.關鍵字 目錄: 1.Python變量.變量的命名 2.變量的類型(Python數據類型) 3.Python關鍵字 1. Python 變量.變量的命名 ...
『Python基礎-1 』 編程語言Python的基礎背景知識
#『Python基礎-1 』 編程語言Python的基礎背景知識 目錄: 1.編程語言 1.1 什么是編程語言 1.2 編程語言的種類 1.3 常見的編程語言 1.4 編譯型語言和解釋型語言的對比 2 ...
隨機推薦
ASP.NET MVC 請求路徑相關參數的獲取
Request.ApplicationPath / Request.CurrentExecutionFilePath /Home/Index Request.FilePath /Home/Index ...
jquery常用代碼
轉自:未找到 以下是jquery中比較常用的一些操作實現方式: $("標簽名") //取html元素 document.getElementsByTagName("&qu ...
使用Visual Studio Code開發Asp.Net Core WebApi學習筆記(八)-- 多環境開發
本篇將演示Asp.Net Core如何在多環境下進行開發適配. 在一個正規的開發流程里,軟件開發部署將要經過三個階段:開發.測試.上線,對應了三個環境:開發.測試.生產.在不同的環境里,需要編寫不同的 ...
linux C socket
socket套接字和管道同樣可以提供進程內通信.但套接字更勝一籌,不同的進程可以跨越不同的主機(說白了,支持網絡通信).使用套接字的知名程序:telnet.rlogin.ftp等. 你需要知道的一些基 ...
IE 將“通過域訪問數據源”設置為啟用(注冊表)
XP HKCU\SOFTWARE\Microsoft\Windows\CurrentVersion\Internet Settings\Zones\1\1406 Vista+ HKCU\Softwar ...
開濤spring3(3.1) - DI的配置使用
3.1.1? 依賴和依賴注入 傳統應用程序設計中所說的依賴一般指“類之間的關系”,那先讓我們復習一下類之間的關系: 泛化:表示類與類之間的繼承關系.接口與接口之間的繼承關系: 實現:表示類對接口的實現 ...
UnityShaderVariant的一些探究心得
最近遇到了一個問題,角色在Unity編輯器里運行渲染結果都是好的,打包到IOS上卻發現,角色身上渲染的很黑.花了些時間查了查,又試了試,把這方面算是初步弄清楚了. 先說出現問題的原因,由于我們把sha ...
同步一個 fork
fork 了別人的倉庫后,原作者又更新了倉庫,如何將自己的代碼和原倉庫保持一致?本文將給你解答. 如何使用搜索引擎 其實這個問題并不難,我又被坑了.百度搜的東西不靠譜啊,以后這種問題一定要用英文在?G ...
flask_sqlalchemy
簡介: flask_sqlalchemy 是 Flask Web 框架的一個擴展. 使 Web 服務器以 (ORM: Object Relational Mapping) 對象關系映射的方式與數據庫交 ...