程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式師世界 >> 編程語言 >  >> 更多編程語言 >> Python

Python基本數據類型

編輯:Python

活動地址:CSDN21天學習挑戰賽

前言

第一節,我們學習【Python開發環境的搭建】,知道什麼了是程序設計語言,了解了Python語言的發展及特點,並進行Python開發環境的搭建以及Python集成開發環境PyCharm的安裝及模板設置。
第二節,我們學習【Python語言的基本語法元素】。包括Python程序的格式框架(縮進、注釋),語法元素名稱,數據類型和語句元素以及基本的輸入輸出函數。
本節,我們將學習【Python的基本數據類型】。數字類型:整數類型、浮點數類型、復數類型。字符串類型以及數據類型之間的轉換。

目錄

  • 前言
  • Python基本數據類型
    • 一、數字類型
      • 1.整數類型
      • 2.浮點數類型
      • 3.復數類型
    • 二、布爾類型
    • 三、字符串類型
    • 四、數據類型轉化
    • 五、總結

Python基本數據類型

# 常見數據類型
""" 整型:int 98 浮點型:float 3.292992 布爾型:False 0; True 1 字符串:str 'hello' '你好' "world" """

一、數字類型

Python中提供3種數字類型:整數類型、浮點數類型和復數類型。

1.整數類型

Python中的整數沒有取值范圍的限制,理論上來講只要內存能夠存儲,Python可以使用任意大小的整數。

整數類型有4種進制表示方式:十進制、二進制、八進制、十六進制。默認情況下,采用十進制,如果需要表示其它進制方式需要增加引導符號。

二進制是一套計數方法,每個位置上的數有 2 種可能(0 - 1);二進制是計算機的執行語言,但是早在計算機出現前就存在這套計數方法,最早可追溯到古埃及。在日常生活中,我們使用的是十進制,每個位置上的數有 10 種可能(0 - 9)。

 1.8位(bit) = 1 字節(byte)
1024字節(byte)= 1 千字節(KB)
024千字節(KB)= 1 兆 (MB)
1024MB = 1GB

整數類型的4種進制表示

# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei 
# @email : [email protected]
# @Time : 2022/8/3 23:28
""" 十進制 默認的進制 二進制 0b開頭 八進制 0o開頭 十六進制 0x開頭 """
print('二進制,0b開頭', 0b1010010)
print('八進制,0o開頭', 0o7432647)
print('十六進制,0x開頭', 0xA36540984)

不同進制的整數之間可以直接運算或比較,程序無論采用哪種進制表達數據,計算機內部都以相同的格式存儲數值,進制之間的運算結果默認以十進制方式顯示。

2.浮點數類型

浮點數表示帶有小數的數值,在Python語言中的浮點數類型必須帶有小數部分,小數部分可以是0。比如說98是整數,98.0就是浮點數。

浮點數有2種表示方法:十進制表示形式和科學計數法表示形式。浮點數沒有其它進制表示形式。

科學計數法使用字母e或者E作為冪的符號,以10為基數。舉例<a>e<b>表示a*10**b

比如說:1.01e3 表示1.01*103,就是1010.0-1.01e-3表示-1.01*10-3,就是-0.00101

# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei 
# @email : [email protected]
# @Time : 2022/8/3 23:28
# 浮點型 float()
a = 3.114152
print(a, type(a))
# 計算機采用二進制存儲,浮點數存儲不精確
n1 = 1.1
n2 = 2.2
print(n1+n2) # 3.300000000003
# 浮點數計算 導入decimal模塊 decimal 十進制
from decimal import Decimal # 直接導入decimal模塊的Decimal方法
print(Decimal('1.1')+Decimal('2.2'))
import decimal # 導入decimal模塊
print(decimal.Decimal(1.1)+decimal.Decimal(2.2)) # .Decimal 調用decimal模塊的Decimal方法

浮點數的取值范圍和小數精度受不同計算機系統的限制。浮點數的取值范圍[-10308,10308],浮點數之間的區分精度約為2.22*10-16。對於絕大部分運算來說,浮點數類型的數值范圍和小數精度足夠“可靠”。一般認為浮點數類型沒有范圍限制。

>>> 1.01 + 2.02
3.0300000000000002
>>> 123455.346788*0978.456
120795624.79679933
>>> 98765.37854/3456.54677
28.573424608977593

相同數值的整數和浮點數哪那個運算精度更高呢?整數1010和浮點1010.0它們的值是相等的,但是在進行冪運算時結果卻不同。

>>> pow(1010,32)
1374940678531097054162291350571104044956417832049380936096496320100000000000000000000000000000000
>>> pow(1010.0,32)
1.3749406785310972e+96
>>>

Python語言的浮點數運算存在一個“不確定尾數”問題,即兩個浮點數運算時,有可能會增加一些“不確定”的尾數。

>>> 0.1 + 0.2
0.30000000000000004

這不是計算機運行錯誤,而是正常情況,因為在計算機內部,使用二進制表示浮點數,受計算機表示浮點數使用的存儲寬度限制,這個二進制數不完全等於0.1而是最接進0.1的二進制數。因此在計算機內部了進行計算時是將最接近0.1和最接近0.2的兩個數進行加運算,因此產生的數接近0.3,但未必是最接近的,反映到十進制上就產生了這個尾數。這個尾數是多少,計算機內部會根據二進制運算確定產生

不確定尾數問題會對浮點數運算結果的判斷造成一定困擾。由於0.1+0.2的運算結果中存在不確定尾數,所以與0.3判斷是否相等時結果為False

>>> 0.1 + 0.2 == 0.3
False

在Python中有個內置函數叫round(),用於進行四捨五入的運算,所以可以使用round()這個函數限制運算結果保留位數,去掉不確定尾數。

 >>> round(0.1 + 0.2, 3)
0.3
>>> round(0.1 + 0.2, 3) == 0.3
True

3.復數類型

復數類型表示數學中的復數。復數使用a+bj的形式表示,稱為實部和虛部。其中j稱為“虛部單位”,它被定義為j=√(-1)

復數舉例:11.3+4j -5.6+7j 1.23e-4+5.67e+89j

在Python中,復數采用(a,b)表示a+bja表示實部,b表示虛部,虛部通過後綴“J”或“j”來表示。當b等於1時,1不能省略,采用 1j表示復數,而j則表示Python程序中的一個變量。

復數類型中實部和虛部都是浮點類型,對於復數z,可以用z.real和z.imag分別獲取實數部分和虛數部分。

print((1.23e4 + 5.67e4j).real)
print((1.23e4 + 5.67e4j).imag)
print(1.23e4 + 5.67e4j.imag)
output:
12300.0
56700.0
69000.0

二、布爾類型

布爾類型 用來表示真或假

  • True 表示真
  • False表示假
  • 布爾值可以轉化為整數
    • True:1
    • False:0
# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei 
# @email : [email protected]
# @Time : 2022/8/3 23:28
f1 = True
f2 = False
print(f1, type(f1))
print(f2, type(f2))
# True <class 'bool'>
# False <class 'bool'>

三、字符串類型

字符串又被稱為不可變的字符序列

可以使用單引號:' '雙引號:" "三引號:''' ''' 或:""" """來定義,單引號和雙引號定義的字符串必須在一行,三引號定義的字符串可以分布在連續的多行

# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei 
# @email : [email protected]
# @Time : 2022/8/3 23:28
print('我用python')
print("我用python")
print('''我用python''')
print(type('我用python'))
print(type("我用python"))
print(type('''我用python'''))
output:
''' 我用python 我用python 我用python <class 'str'> <class 'str'> <class 'str'> '''

四、數據類型轉化

數據類型轉換:將不同類型的數據拼接在一起

函數名作用注意事項舉例str()將其它類型轉換為字符串也可用引號轉換str(123)'123'int()將其它類型轉轉換為整型文字類和小數類字符串,無法轉換為整數; 浮點數轉為整數:抹零取整int('123')float()將其它類型轉換為浮點數整數轉為浮點數,末尾為.0float(9)
# -*- coding: utf-8 -*-
# @File : demo.py
# @author: Flyme awei 
# @email : [email protected]
# @Time : 2022/8/3 23:28
""" str() 將其它類型轉換為字符串類型 """
print(str(123))
print(type(str(123)))
""" int() 其它類型轉換為整型 1.文字類 和 小數類字符串 無法轉換為整型 2.浮點數轉為整數抹零取整 """
print(int(3.22244))
""" float() 將其它類型轉換為浮點數 1.文字無法轉換 2.整數轉換為浮點數.末尾為 .0 """
print(type(5))
print(float(5), type(float(5)))

五、總結

常見數據類型:

  • 整數類型 int
  • 浮點類型 float
  • 布爾類型 True/false
  • 字符串類型 str

數據類型轉換:

  • str() 將其它類型轉換為字符串類型
  • int() 其它類型轉換為整型
  • float() 將其它類型轉換為浮點數


  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式師世界 All Rights Reserved