網站首頁 編程語言 正文
1.Python的基本數據類型
數據類型想必大家都知道是什么含義,指的是輸入數據的類型,任何數據都有明確的數據類型,例如我們輸入100,這個數據就是整數類型,輸入7.7這個數據就是浮點數類型,輸入字母、漢字、字母加漢字的數據都是字符串類型。
Python基本數據類型有三種:
- 整數類型:數字
- 浮點數類型:帶小數點的數字
- 字符串類型:字母、數字、漢字任意組合
通過type
函數可以讀取某個數據的數據類型,配合print
函數可以打印出某個數據的類型,語法格式如下。
type(輸入的數據)
print(type(輸入的數據))
打印出100、7.7、aaas11sdj三個數據的數據類型。
print(type(100)) print(type(7.7)) print(type('aaas11sdj'))
使用print配合type函數一起使用,可以打印出某個數據的數據類型是什么。
2.整數類型的概念以及使用
2.1.整數類型的概念
整數類型是什么就不再多說了,在計算機整數中有四種不同的進制表示方式,對于一個整數可以有十進制、二進制、八進制、十六進制這四種表示方式,默認情況下整數是十進制表示。
- 十進制默認就是一個整數,沒有任何含義
- 二進制是以0b開頭的,只有0和1兩個數字,在計算機中一切皆二進制,只有0和1。
- 八進制是以0o開頭的,包含0-7八個數字。
- 十六進制是以0x開頭,包含0-9十個數字和A-F六個字母。
各種進制包含的數字、計算方法都在下表中:
進制類型 | 基本數 | 逢幾進一 | ?計算方法 |
---|---|---|---|
十進制 | 0/1/2/3/4/5/6/7/8/9 | 10 | 118=8+1*10^1+1*10^2 |
二進制 | 0/1 | 2 | 0b1110110=0+1*2^1+1*2^2+0*2^3+1*2^4+1*2^5+1*2^6=118 |
八進制 | 0/1/2/3/4/5/6/7 | 8 | 0o166=6+6*8^1+1*8^2=118 |
十六進制 | 0/1/2/3/4/5/6/7/8/9 A/B/C/D/E/F |
16 | 0x76=6+7*16^118 |
進制類型基本數逢幾進一計算方法
進制轉換的計算方法技巧:
任何進制都是一個整數,幾進制轉換成幾進制,就要看是逢幾進一,例如整數118轉換成十進制:
逢十進一:118=8+1*10^1+1*10^2
,從最左側的個位數開始計算,第一位不變,第二位乘10的1次方,第三位乘10的2次方,以此類推,有幾位數字就計算幾位,最后將數字相加就是準確的十進制數。
2.2.使用Python操作整數類型
print函數可以將輸入的整數(數字)轉換成十進制數,也可以結合進制函數將輸入的數據轉換成指定進制的數字,相當于進制轉換,還可以通過print函數結合int整數函數將傳入的數據轉換成一個整數。
1)使用print函數將輸入的整數轉換成十進制數
print函數會將傳入的整數轉換成一個十進制數字,根據傳入的整數,print函數會識別這個證書是幾進制數,然后通過運算轉換成對應的十進制數。
#傳入一個十進制數118,被print函數輸出后得到十進制數118 print(118) #傳入一個二進制數0b1110110,被print函數輸出后得到十進制數118 print(0b1110110) #傳入一個八進制數0o166,被print函數輸出后得到十進制數118 print(0o166) #傳入一個十六進制數0x76,被print函數輸出后得到十進制數118 print(0x76)
2)使用print函數將傳入的數據根據進制函數轉換成對應進制數
使用print函數,根據我們傳入的數據,必須是整數,然后通過進制函數,將這個整數轉換成對應進制的數字。
對于進制轉換的函數,Python有3個內置的進制函數,可以將傳入的十進制數字轉換成對應進制的字符串。
- bin():將傳入的十進制整數轉換成二進制字符串。
- oct():將傳入的十進制整數轉換成八進制字符串。
- hex():將傳入的十進制整數轉換成十六進制字符串。
#bin():將傳入的十進制整數轉換成二進制字符串 print(bin(118)) #返回0b1110110 # oct():將傳入的十進制整數轉換成八進制字符串。 print(oct(118)) #返回0o166 # hex():將傳入的十進制整數轉換成十六進制字符串。 print(hex(118)) #返回0x76
3)使用print函數配合int函數將傳入的數據轉換成整數
int函數可以將傳入的數據轉換成一個整數,也可以說是創建一個整數,使用int函數處理整數時有三種情況:
- 當int函數不傳入任何參數時,默認返回整數0。
- 當int函數傳入一個參數時,會將傳遞的參數轉換成整數,例如傳入的是小數,也會將小數部分移除,僅顯示整數部分。
- 當int函數傳入兩個參數時,第一個參數必須是數字,第二個參數指定這個數字是哪種進制,然后根據傳參將這個數字轉換成十進制。
#當int函數不傳入任何參數時,默認返回整數0 print(int()) #當int函數傳入一個參數時,會將傳遞的參數轉換成整數 print(int(118)) #轉換成118 print(int(118.9)) #轉換成118 print(int('117')) #轉換成117 #int函數傳入兩個參數 #傳入數字118,這個數字是十進制,轉換成對應的十進制數,得到的結果是118 print(int('118',10)) #傳入數字0o166,這個數字是八進制,轉換成對應的十進制數,得到的結果是118 print(int('0o166',8))
3.浮點數類型的概念以及使用
浮點數指的就是小數,我們可以直接使用print函數打印一個浮點數。
print(0.348923740932) #得到結果0.348923740932
另外我們還可以通過float函數創建浮點數,和int函數使用方法一樣,通過float函數可以指定傳入的數據輸出后是一個浮點數,但是傳入的數字必須是數字。
對于float函數來說,如果不傳入任何參數,默認返回浮點數0.0,當只傳遞一個參數時,會將傳遞的參數轉換為浮點數。
#不傳入參數默認返回0 print(float()) #傳入一個整數 被float轉換成浮點數 結果為176.0 print(float(176)) #傳入一個浮點數,被float轉換成浮點數,結果不變:152.88 print(float(152.88))
另外對于很大的數字,例如幾千萬幾個億,我們也可以使用浮點數通過科學技術法的形式來表示。
公式為:men
? m表示浮點數,e是固定寫法表示乘以10,n表示乘以10的n次方。
? 例如我要計算浮點數5.27的10的7次方是多少,寫法就是5.27e7,過程就是5.27*10^7
,結果為52700000。
#52700000這個整數比較大,我們希望傳參時簡化輸入的內容,少輸入一點,基于這種情況可以通過float函數使用科學計數法的方式簡化輸入的內容 print(float(5.27e7)) #返回的結果為:52700000.0 #求5.27的10的-3次方是多少 print(float(5.27e-3))
浮點數在運算過程中可能會出現不精準的現象,如下所示。
#運算結果非0 print(1.1+2.2+3.3) #輸出結果為6.6 精準。 #運算結果為0 print(1.1+2.2-3.3) #輸出結果為:4.440892098500626e-16 不精準。
對于這種不精準的浮點數運算,我們可以使用decimal、fractions這兩個模塊中的類來解決此問題。
使用decimal模塊可以處理十進制浮點數運算,使用fractions模塊可以處理分子分母相除之后的浮點數運算。
1.使用decimal模塊解決
#從decimal模塊中導入Decimal類,Decimal可以理解為是decimal模塊中的內置函數 from decimal import Decimal #將浮點數傳入Decimal類中,使用print進行運算 print(Decimal('1.1') + Decimal('2.2') - Decimal('3.3')) #輸出結果為:0.0 正確的結果
2.使用fractions模塊解決
#從fractions模塊中導入Fraction類,Fraction類可以理解為是fractions這個模塊的內置函數 from fractions import Fraction #將浮點數傳入到Fraction類中,使用print進行運算 print(Fraction(11, 10) + Fraction(22, 10) - Fraction(33, 10)) #輸出結果:0 正確的結果
4.布爾類型的概念以及使用
布爾類型只有兩種取值范圍,要么是True,要么是False,嚴格區分大小寫。
例如:今天下雨嗎?今天回家嗎?都屬于布爾表達式,回答要么是True,要么是False。
#當表達式為真時,返回True print(5>3) #當表達式為假時,返回False print(6<2)
True對應的數字值是1,False對應的數字值是0。
#TRUE的值為1,如果TRUE的值不為1,則會返回False print(True == 1) #False的值為0,如果False的值不為1,則會返回False print(False == 0) #為了進一步驗證True和False的值,我們進行一組運算,True=1+False=0+10,返回結果為11,就表示我們的說法是正確的 print(True + False + 10)
原文鏈接:https://blog.csdn.net/weixin_44953658/article/details/127507118
相關推薦
- 2022-06-18 C#多線程之線程中止Abort()方法_C#教程
- 2023-10-12 antd3升級到antd4(已解決所有報錯)
- 2021-11-29 .Net性能測試框架Crank的使用方法_基礎應用
- 2022-11-15 python內置模塊OS?實現SHELL端文件處理器_python
- 2023-03-27 Android?Framework原理Binder驅動源碼解析_Android
- 2022-07-10 node支持ES6模塊化練習
- 2022-09-17 詳解redis集群的三種方式_Redis
- 2021-12-05 密碼學之apache部署https介紹_Linux
- 最近更新
-
- window11 系統安裝 yarn
- 超詳細win安裝深度學習環境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權
- redisson分布式鎖中waittime的設
- maven:解決release錯誤:Artif
- restTemplate使用總結
- Spring Security之安全異常處理
- MybatisPlus優雅實現加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務發現-Nac
- Spring Security之基于HttpR
- Redis 底層數據結構-簡單動態字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應用詳解
- 聊聊消息隊列,發送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支