Python的基本數(shù)據(jù)類型有哪些及怎么使用

本文小編為大家詳細(xì)介紹“Python的基本數(shù)據(jù)類型有哪些及怎么使用”,內(nèi)容詳細(xì),步驟清晰,細(xì)節(jié)處理妥當(dāng),希望這篇“Python的基本數(shù)據(jù)類型有哪些及怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學(xué)習(xí)新知識(shí)吧。

公司主營業(yè)務(wù):做網(wǎng)站、成都網(wǎng)站制作、移動(dòng)網(wǎng)站開發(fā)等業(yè)務(wù)。幫助企業(yè)客戶真正實(shí)現(xiàn)互聯(lián)網(wǎng)宣傳,提高企業(yè)的競爭能力。創(chuàng)新互聯(lián)建站是一支青春激揚(yáng)、勤奮敬業(yè)、活力青春激揚(yáng)、勤奮敬業(yè)、活力澎湃、和諧高效的團(tuán)隊(duì)。公司秉承以“開放、自由、嚴(yán)謹(jǐn)、自律”為核心的企業(yè)文化,感謝他們對我們的高要求,感謝他們從不同領(lǐng)域給我們帶來的挑戰(zhàn),讓我們激情的團(tuán)隊(duì)有機(jī)會(huì)用頭腦與智慧不斷的給客戶帶來驚喜。創(chuàng)新互聯(lián)建站推出漠河免費(fèi)做網(wǎng)站回饋大家。

第一部分 數(shù)字類型

1.1 數(shù)字類型的組成

1.1.1 整數(shù)——不同進(jìn)制的轉(zhuǎn)換
  • 默認(rèn)輸入十進(jìn)制

  • 二進(jìn)制0b、八進(jìn)制0o、十六進(jìn)制0x

16 == 0b10000 == 0o20 == 0x10
True
  • 十進(jìn)制與其他進(jìn)制的轉(zhuǎn)換

a = bin(16)   # 轉(zhuǎn)二進(jìn)制
b = oct(16)   # 轉(zhuǎn)八進(jìn)制
c = hex(16)   # 轉(zhuǎn)十六進(jìn)制
print(a, b, c)
0b10000 0o20 0x10

注意:上述轉(zhuǎn)換后結(jié)果為字符串類型,因此如果進(jìn)行相等比較的話,輸出的是False結(jié)果

a == b == c
False
type(a)
str
  • 其他進(jìn)制轉(zhuǎn)十進(jìn)制

d = int(a, 2)      # 二進(jìn)制轉(zhuǎn)十進(jìn)制
e = int(b, 8)      # 八進(jìn)制轉(zhuǎn)十進(jìn)制
f = int(c, 16)     # 十六進(jìn)制轉(zhuǎn)十進(jìn)制
print(d, e, f)
16 16 16
1.1.2 浮點(diǎn)數(shù)——不確定性
  • 不確定小數(shù)問題

(0.1+0.2) == 0.3
False
0.1+0.2
0.30000000000000004

計(jì)算機(jī)采用二進(jìn)制小數(shù)來表示浮點(diǎn)數(shù)的小數(shù)部分

  • 原因:部分小數(shù)不能用二進(jìn)制小數(shù)完全表示

二進(jìn)制                  十進(jìn)制

0.00011001100110011001   0.09999942779541016 0.0011001100110011      0.1999969482421875 0.01001100110011001     0.29999542236328125 0.01100110011001101     0.40000152587890625 0.1     ===       ===         0.5

  • 通常情況下不會(huì)影響計(jì)算精度

0.1 + 0.7
0.7999999999999999
  • 四舍五入獲得精確解

  • 可以采用四舍五入的方式解決:round(parameter, 保留小數(shù)位數(shù))

a = 3*0.1
print(a)
0.30000000000000004
b = round(a, 1)
print(b)
b == 0.3
0.3



True
1.1.3 復(fù)數(shù)——a+bj
  • 大寫J或小寫j均可

3+4j
2+5J
(2+5j)
  • 虛部系數(shù)為1時(shí),需要顯式寫出

2+1j

1.2 數(shù)字運(yùn)算操作符(a 操作符 b)

  • 加減乘除運(yùn)算    +   -   /   *

(1+3-4*2)/5
-0.8
  • 取反 -

x = 1
-x
-1
  • 乘方運(yùn)算**

2**3
8
  • 整數(shù)商//和模運(yùn)算%

13//5    # 整數(shù)商    x/y 向下取整數(shù)
2
13 % 5   # 模運(yùn)算    余數(shù) 13=2*5+3

幾點(diǎn)說明

  • 整數(shù)與浮點(diǎn)數(shù)運(yùn)算結(jié)果是浮點(diǎn)數(shù)

  • 除法運(yùn)算的結(jié)果是浮點(diǎn)數(shù)

1+1.5
2.5
2/5
0.4
8/4
2.0

1.3 數(shù)字運(yùn)算操作函數(shù)function(x, ...)

  • 求絕對值 abs()

abs(-5)
5
abs(3+4j)  # 對復(fù)數(shù)a+bj 執(zhí)行的是求模運(yùn)算(a^2+b^2)^0.5
5.0
  • 冪次方 pow(x,n)

  • 冪次方取模 pow(x,n,m)

pow(2, 5)  # pow(x,n) x的n次方  等價(jià)于x**n
32
pow(2, 5, 3) # 2^5 % 3  更快速
2
  • 四舍五入 round(x,n)

a = 1.618
print(round(a))      # 默認(rèn)四舍五入為整數(shù)
2
print(round(a, 2))   # 參數(shù)2表示四舍五入后保留2位小數(shù)
1.62
print(round(a, 5))   # 位數(shù)不足,無需補(bǔ)齊
1.618
  • 整數(shù)商和模運(yùn)算 divmod(x,y)

等價(jià)于返回二元元組(x//y,x % y)

divmod(13, 5)   # 較(x//y,x % y)更快,只執(zhí)行了一次x/y
(2, 3)
  • 序列最大/最小值 max( )   min( )

max(3, 2, 3, 6, 9, 4, 5)
9
a = [3, 2, 3, 6, 9, 4, 5]
print("max:", max(a))
print("min:", min(a))
max: 9
min: 2
  • 求和sum(x)

注意:sum里面需要填入一個(gè)序列數(shù)據(jù)

sum((1, 2, 3, 4, 5))
15
  • 借助科學(xué)計(jì)算庫 math\scipy\numpy

import math   # 導(dǎo)入庫
print(math.exp(1))   # 指數(shù)運(yùn)算 e^x
print(math.log2(2))  # 對數(shù)運(yùn)算
print(math.sqrt(4))  # 開平方運(yùn)算  等價(jià)于4^0.5
2.718281828459045
1.0
2.0
import numpy as np
a = [1, 2, 3, 4, 5]
print(np.mean(a))    # 求均值
print(np.median(a))  # 求中位數(shù)
print(np.std(a))     # 求標(biāo)準(zhǔn)差
3.0
3.0
1.4142135623730951

第二部分 字符串類型

2.1 字符串的表達(dá)

  • 用""或''括起來的任意字符

print("Python")
print('Python')
Python
Python
  • 字符串中有雙引號(hào)或單引號(hào)的情況

雙中有單

print("I'm 18 years old")
I'm 18 years old

單中有雙

print('"Python" is good')
"Python" is good

雙中有雙,單中有單——轉(zhuǎn)義符   \

# print(""Python" is good")
print("\"Python\" is good")  # \ 字符
"Python" is good

轉(zhuǎn)義符可以用來換行繼續(xù)輸入

s = "py\
thon"                    
print(s)
python

2.2 字符串的性質(zhì)

2.2.1 字符串的索引
s = "My name is Peppa Pig"

變量名[位置編號(hào)]

  • 正向索引——從零開始遞增

  • 位置編號(hào)不能超過字符串的長度

  • 空格也是一個(gè)位置

print(s[0])   
print(s[2])
print(s[5])
M
 
m
s = "My name is Peppa Pig"
  • 反向索引——從-1開始遞減

print(s[-1])
print(s[-3])
print(s[-5])
g
P
a

索引只能獲得一個(gè)字符,如何獲得多個(gè)字符?

2.2.2 字符串的切片

變量名[開始位置:結(jié)束位置:切片間隔]

  • 切片間隔如不設(shè)置默認(rèn)為1,可省略

  • 切片范圍不包含結(jié)束位置(前閉后開)

s = "Python"
print(s[0:3:1])
Pyt
print(s[0:3])
Pyt
print(s[0:3:2])
Pt
  • 起始位置是0 可以省略

  • 結(jié)束位置省略,代表可以取到最后一個(gè)字符

  • 可以使用反向索引

s = "Python"
print(s[0:6])
Python
print(s[:6])
Python
print(s[:])
Python
print(s[-6:])
Python

反向切片

  • 起始位置是-1也可以省略

  • 結(jié)束位置省略,代表可以取到第一個(gè)字符

  • 關(guān)鍵點(diǎn)在于-1,代表前一個(gè)位置比后一個(gè)位置大-1

s = "123456789"
print(s[-1:-10:-1])
987654321
print(s[:-10:-1])
987654321
print(s[::-1])
987654321

2.3 字符串操作符

2.3.1 字符串的拼接
  • 字符串1+字符串2

a = "I love "
b = "my wife "
a+b
'I love my wife '
2.3.2 字符串的成倍復(fù)制
  • 字符串 * n   n * 字符串

c = a+b
print(c*3)
print(3*c)
I love my wife I love my wife I love my wife 
I love my wife I love my wife I love my wife
2.2.3 成員運(yùn)算
  • 子集in全集   任何一個(gè)連續(xù)的切片都是原字符串的子集

folk_singers = "Peter, Paul and Mary"    
"Peter" in folk_singers
True
"PPM" in folk_singers
False
  • 遍歷字符串字符   for 字符 in 字符串

for s in "Python":
    print(s)
P
y
t
h
o
n

2.4 字符串處理函數(shù)

2.4.1 字符串的長度
  • 所含字符的個(gè)數(shù)

s = "python"
len(s)
6
2.4.2 字符編碼

將中文字庫,英文字母、數(shù)字、特殊字符等轉(zhuǎn)化成計(jì)算機(jī)可識(shí)別的二進(jìn)制數(shù)

  • 每個(gè)單一字符對應(yīng)一個(gè)唯一的互不重復(fù)的二進(jìn)制編碼

  • Python 中使用的是Unicode編碼

將字符轉(zhuǎn)化為Unicode碼——ord(字符)

print(ord("1"))
print(ord("a"))
print(ord("*"))
print(ord("中"))
print(ord("國"))
49
97
42
20013
22269

將Unicode碼轉(zhuǎn)化為字符——chr(Unicode碼)

print(chr(1010))
print(chr(10000))
print(chr(12345))
print(chr(23456))
?
?
?
寵

2.5 字符串的處理方法

2.5.1 字符串的分割——字符串.split(分割字符)
  • 返回一個(gè)列表

  • 原字符串不變

上述特性適合以下所有字符串處理方法

languages = "Python C C++ Java PHP R"
languages_list = languages.split(" ")#括號(hào)里的參數(shù)就是我們希望對目標(biāo)字符串進(jìn)行分割的標(biāo)記
print(languages_list)
print(languages)
['Python', 'C', 'C++', 'Java', 'PHP', 'R']
Python C C++ Java PHP R
2.5.2  字符串的聚合——“聚合字符”.join(可迭代數(shù)據(jù)類型)
  • 可迭代類型 如:字符串、列表

s = "12345"
s_join = ",".join(s) #把可迭代的對象每一個(gè)都取出來,相鄰兩個(gè)之間加上聚合字符
s_join
'1,2,3,4,5'
  • 序列類型的元素必須是字符類型

# s = [1, 2, 3, 4, 5] 無法使用聚合
s = ["1", "2", "3", "4", "5"]
"*".join(s)
'1*2*3*4*5'
3.5.3 刪除兩端特定字符——字符串.strip(刪除字符)
  • strip從兩側(cè)開始搜索,遇到指定字符執(zhí)行刪除,遇到非指定字符,搜索停止

  • 類似的還有左刪除lstrip和右刪除rstrip

s = "      I have many blanks     "
print(s.strip(" "))                        #從兩端進(jìn)行搜索,遇到指定字符后刪除空格,然后停止
print(s.lstrip(" "))
print(s.rstrip(" "))
print(s)
I have many blanks
I have many blanks     
      I have many blanks
      I have many blanks
3.5.4 字符串的替換——字符串.replace("被替換","替換成")
s = "Python is coming"
s1 = s.replace("Python","Py")
print(s1)
Py is coming
3.5.5 字符串統(tǒng)計(jì)——字符串.count("待統(tǒng)計(jì)字符串")
s = "Python is an excellent language"
print("an:", s.count("an"))
print("e:", s.count("e"))
an: 2
e: 4
3.3.6 字符串字母大小寫
  • 字符串.upper() 字母全部大寫

s = "Python"
s.upper()
'PYTHON'
  • 字符串.lower() 字母全部小寫

print(s.lower())
print(s)
python
Python
  • 字符串.title()首字母大寫

s.title()
'Python'

第三部分 布爾類型TRUEorFalse

3.1 邏輯運(yùn)算的結(jié)果

a = 10
print(a > 8)
print(a == 12)
print(a < 5)
True
False
False
  • any() 數(shù)據(jù)有一個(gè)是非零就為True

  • all() 數(shù)據(jù)有一個(gè)是零就為False (元素都是非零的)

print(any([False,1,0,None]))   # 0 False None 都是無
print(all([False,1,0,None]))
True
False

3.2 指示條件

n = 2800
while True:
    m = eval("請輸入一個(gè)正整數(shù):"))
    if m == n:
        print("正確")
        break
    elif m > n:
        print("太大了")
    else:
        print("太小了")
請輸入一個(gè)正整數(shù):280
太小了
請輸入一個(gè)正整數(shù):2800
正確

3.3 作為numpy數(shù)組的掩碼

import numpy as np
x = np.array([[1, 3, 2, 5, 7]])   # 定義 numpy數(shù)組
print(x > 3)
x[x > 3]
[[False False False  True  True]]

array([5, 7])

第四部分 類型判別及類型轉(zhuǎn)換

4.1 類型判別

  • type(變量)

age = 20
name = "Ada"
print(type(age))
print(type(name))
<class 'int'>
<class 'str'>
  • isinstance(變量,預(yù)判類型)&ensp;承認(rèn)繼承

  • 變量類型是預(yù)判類型的子類型,則為真,否則為假

print(isinstance(age, int))        # 承認(rèn)繼承 這里的int就相當(dāng)于是一個(gè)類
True
print(isinstance(age, object))
print(isinstance(name, object))    # object 是所有類的老祖宗
True
True
  • 字符串檢查方法

字符串.isdigit()字符是否只有數(shù)字組成

age = "20"
name = "Ada"
age.isdigit()
True
name.isdigit()
False

字符串.isalpha()字符是否只有字母組成

name.isalpha()
True
age.isalpha()
False

字符串.isalnum()字符是否只有數(shù)字和字母組成

"Ada20".isalnum()    # 比如可用于判斷用戶名是否合法
True

4.2 類型轉(zhuǎn)換

  • 數(shù)字類型轉(zhuǎn)字符串&ensp; str(數(shù)字類型)

age = 20
print("My age is "+str(age))
My age is 20
  • 僅有數(shù)字組成的字符串轉(zhuǎn)數(shù)字&ensp; int()&ensp; float()&ensp; eval(232, 232, 232); background: rgb(249, 249, 249);">

    s1 = "20"
    s2 = "10.1"
int(s1)     # 僅整型
# int(s2) 會(huì)錯(cuò)誤
20
float(s1)
20.0
float(s2)
10.1
eval(232, 232, 232); background: rgb(249, 249, 249);">20
eval(232, 232, 232); background: rgb(249, 249, 249);">10.1

讀到這里,這篇“Python的基本數(shù)據(jù)類型有哪些及怎么使用”文章已經(jīng)介紹完畢,想要掌握這篇文章的知識(shí)點(diǎn)還需要大家自己動(dòng)手實(shí)踐使用過才能領(lǐng)會(huì),如果想了解更多相關(guān)內(nèi)容的文章,歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。

分享名稱:Python的基本數(shù)據(jù)類型有哪些及怎么使用
URL分享:http://bm7419.com/article0/igddio.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT、全網(wǎng)營銷推廣網(wǎng)站策劃、網(wǎng)站制作、面包屑導(dǎo)航、靜態(tài)網(wǎng)站

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

h5響應(yīng)式網(wǎng)站建設(shè)