python3 第八章 - 數據類型之Number(數字)

来源:https://www.cnblogs.com/mrbug/archive/2018/01/13/8277125.html
-Advertisement-
Play Games

Python 支持三種不同的數字類型: 整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。 浮點型(float) - 浮點型由整數部分與小數部分組成 ...


Python 支持三種不同的數字類型:

  • 整型(Int) - 通常被稱為是整型或整數,是正或負整數,不帶小數點。Python3 整型是沒有限制大小的,可以當作 Long 類型使用,所以 Python3 沒有 Python2 的 Long 類型。
  • 浮點型(float) - 浮點型由整數部分與小數部分組成,浮點型也可以使用科學計數法表示(2.5e2 = 2.5 x 102 = 250)。之所以稱為浮點數是因為按照科學記數法表示時,一個浮點數的小數點位置是可變的,比如,1.23x109和12.3x108是完全相等的。浮點數可以用數學寫法,如1.23,3.14,-9.01,等等。但是對於很大或很小的浮點數,就必須用科學計數法表示,把10用e替代,1.23x109就是1.23e9,或者12.3e8,0.000012可以寫成1.2e-5,等等。整數和浮點數在電腦內部存儲的方式是不同的,整數運算永遠是精確的(除法難道也是精確的?是的!),而浮點數運算則可能會有四捨五入的誤差。
  • 複數( (complex)) - 複數由實數部分和虛數部分構成,可以用a + bj,或者complex(a,b)表示, 複數的實部a和虛部b都是浮點型。點擊此處查閱複數的概念

我們用id()這個函數來輸出變數所引用的地址:

var1 = 100
print(id(var1))

var1 = 200
print(id(var1))

以上代碼,輸出:

2012969536
2012972736

你會發現,orz,兩次的記憶體地址都不想同的。由此可以看出,Python 數字數據類型用於存儲數值,數據類型是不允許改變的,這就意味著如果改變數字數據類型的值,將重新分配記憶體空間。

 

以下實例在變數賦值時 Number 對象將被創建:

var1 = 1
var2 = 10

您也可以使用del語句刪除一些數值對象的引用。del語句的語法是:

del var1[,var2[,var3[....,varN]]]]

 

多個要刪除的對象之前用逗號“”隔開,例如:

var1 = 1
var2 = 10

del var1, var2

 

電腦由於使用二進位,所以,有時候用十六進位表示整數比較方便,十六進位用0x首碼(小寫的x或者或者大寫的X都可以)和0~9,a~f表示,例如:0xf00xabc123,八進位用0o首碼(小寫的o或者大寫的O都可以)和0~7,例如:0o37

number = 0xA0F  # 十六進位
number2 = 0o37  # 八進位

print(number)
print(number2)

以上代碼,輸出:

2575
31

思考,如何用程式來實現10進位轉2進位、8進位、16進位、任意進位?

 

數值類型的舉例

intfloatcomplex
10 0.0 3.14j
100 15.20 45.j
-786 -21.9 9.322e-36j
080 32.3+e18 .876j
-0490 -90. -.6545+0J
-0x260 -32.54e100 3e+26J
0x69 70.2-E12 4.53e-7j

 

有時候,我們需要對數據內置的類型進行轉換,數據類型的轉換,你只需要將數據類型作為函數名即可:

  • int(x) 將x轉換為一個整數。
  • float(x) 將x轉換到一個浮點數。
  • complex(x) 將x轉換到一個複數,實數部分為 x,虛數部分為 0。
  • complex(x, y) 將 x 和 y 轉換到一個複數,實數部分為 x,虛數部分為 y。x 和 y 是數字表達式。
a = 1.0
print(int(a))

以上代碼,輸出

1

 

註意:在不同的機器上浮點運算的結果可能會不一樣。
在整數除法中,除法(/)總是返回一個浮點數,如果只想得到整數的結果,丟棄可能的分數部分,可以使用運算符 // :

print(17 / 3)  # 整數除法返回浮點型
print(17 // 3)  # 整數除法返迴向下取整後的結果
print(17 % 3)  # %操作符返回除法的餘數

以上代碼,輸出:

5.666666666666667
5
2

 

可以使用 ** 操作來進行冪運算:

print('5的平方:', 5 ** 2)
print('5的3次方:', 5 ** 3)

以上代碼,輸出:

5的平方: 25
5的3次方: 125

 

不同類型的數混合運算時會將整數轉換為浮點數:

print('3 * 3.75 / 1.5 的值:', 3 * 3.75 / 1.5)

以上代碼,輸出:

3 * 3.75 / 1.5 的值: 7.5

您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 進入到第四章了,本篇主要聊的點是編碼(也就是 序列化 )與代碼升級的一些場景,來梳理存儲之中涉及到的編解碼的流程。目前主流的編解碼便是來自Apache的 Avro ,來自Facebook的 Thrift 與Google的 Protocolbuf ,在本篇之中,我們也會一一梳理各種編碼的優點與痛點。 ...
  • 統介紹: 1.系統採用主流的 SSM 框架 jsp JSTL bootstrap html5 (PC瀏覽器使用) 2.springmvc +spring4.3.7+ mybaits3.3 SSM 普通java web(非maven, 附贈pom.xml文件) 資料庫:mysql 3.開發工具:mye ...
  • 一. 懶漢式單例 //懶漢式單例類.在第一次調用的時候實例化自己 public class Singleton { private Singleton() {} private static Singleton single=null; //靜態工廠方法 public static Singleto ...
  • 以汽車工廠為例,首先有個汽車類的介面 Car,裡面有個開車的方法 drive(),然後有個寶馬車的類 BMW 和賓士車的類 Benz 實現了 Car 介面。 public interface Car{ public void drive(); } public class BMW implement ...
  • Python的網路編程主要支持兩種網路協議:TCP和UDP。這兩種協議都通過叫Socket的編程抽象進行處理。Socket起源於Unix,是類似於文件的存在,可以像文件一樣進行I/O、打開、關閉等操作,最主要的是它可以實現網路上不同主機的進程間通信,所以基本上Socket是任何一種網路通訊中最基礎的 ...
  • ###模塊calculate是自己寫的,出現紅色也可以調用 ###包導入包中的模塊 導入包中包的模塊 導入包中包模塊的方法 導入包解釋了__init__文件導入模塊和包的區別,導入模塊把模塊解釋了一遍,導入包只是解釋了__init__文件###項目中的模塊導入比較複雜簡單目錄結構,最後執行bin.p ...
  • #\n 回車符 #\r 換行符 #\s 空格 #\t tab符號,不知道?開個txt文本,然後按電腦的tab鍵,就是caps lock上面那個,卧槽,看到一個大長空格(也可能是個超短空格),這個就是tab符 #其他基本不會用,這幾個夠用了 #%d 數字 print '%d' %2 #%s 字元串 p ...
  • 對於中文亂碼問題,根據產生的原因,主要有以下幾種解決方案: 一、以Post方法提交的表單數據中有中文字元時。 這樣的話,就可以在獲取請求參數值之前,調用request對象的setCharacterEncoding("")方法,將請求的解碼方式設定為UTF-8。像這樣: 二、以GET方法提交的表單數據 ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...