您好,登錄后才能下訂單哦!
本文小編為大家詳細介紹“Python的基本數據類型有哪些及怎么使用”,內容詳細,步驟清晰,細節處理妥當,希望這篇“Python的基本數據類型有哪些及怎么使用”文章能幫助大家解決疑惑,下面跟著小編的思路慢慢深入,一起來學習新知識吧。
默認輸入十進制
二進制0b、八進制0o、十六進制0x
16 == 0b10000 == 0o20 == 0x10
True
十進制與其他進制的轉換
a = bin(16) # 轉二進制 b = oct(16) # 轉八進制 c = hex(16) # 轉十六進制 print(a, b, c)
0b10000 0o20 0x10
注意:上述轉換后結果為字符串類型,因此如果進行相等比較的話,輸出的是False結果
a == b == c
False
type(a)
str
其他進制轉十進制
d = int(a, 2) # 二進制轉十進制 e = int(b, 8) # 八進制轉十進制 f = int(c, 16) # 十六進制轉十進制 print(d, e, f)
16 16 16
不確定小數問題
(0.1+0.2) == 0.3
False
0.1+0.2
0.30000000000000004
計算機采用二進制小數來表示浮點數的小數部分
原因:部分小數不能用二進制小數完全表示
二進制 十進制
0.00011001100110011001 0.09999942779541016 0.0011001100110011 0.1999969482421875 0.01001100110011001 0.29999542236328125 0.01100110011001101 0.40000152587890625 0.1 === === 0.5
通常情況下不會影響計算精度
0.1 + 0.7
0.7999999999999999
四舍五入獲得精確解
可以采用四舍五入的方式解決:round(parameter, 保留小數位數)
a = 3*0.1 print(a)
0.30000000000000004
b = round(a, 1) print(b) b == 0.3
0.3 True
大寫J或小寫j均可
3+4j 2+5J
(2+5j)
虛部系數為1時,需要顯式寫出
2+1j
加減乘除運算   +  -  /  *
(1+3-4*2)/5
-0.8
取反 -
x = 1 -x
-1
乘方運算**
2**3
8
整數商//和模運算%
13//5 # 整數商 x/y 向下取整數
2
13 % 5 # 模運算 余數 13=2*5+3
幾點說明
整數與浮點數運算結果是浮點數
除法運算的結果是浮點數
1+1.5
2.5
2/5
0.4
8/4
2.0
求絕對值 abs()
abs(-5)
5
abs(3+4j) # 對復數a+bj 執行的是求模運算(a^2+b^2)^0.5
5.0
冪次方 pow(x,n)
冪次方取模 pow(x,n,m)
pow(2, 5) # pow(x,n) x的n次方 等價于x**n
32
pow(2, 5, 3) # 2^5 % 3 更快速
2
四舍五入 round(x,n)
a = 1.618 print(round(a)) # 默認四舍五入為整數
2
print(round(a, 2)) # 參數2表示四舍五入后保留2位小數
1.62
print(round(a, 5)) # 位數不足,無需補齊
1.618
整數商和模運算 divmod(x,y)
等價于返回二元元組(x//y,x % y)
divmod(13, 5) # 較(x//y,x % y)更快,只執行了一次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里面需要填入一個序列數據
sum((1, 2, 3, 4, 5))
15
借助科學計算庫 math\scipy\numpy
import math # 導入庫 print(math.exp(1)) # 指數運算 e^x print(math.log2(2)) # 對數運算 print(math.sqrt(4)) # 開平方運算 等價于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)) # 求中位數 print(np.std(a)) # 求標準差
3.0 3.0 1.4142135623730951
用""或''括起來的任意字符
print("Python") print('Python')
Python Python
字符串中有雙引號或單引號的情況
雙中有單
print("I'm 18 years old")
I'm 18 years old
單中有雙
print('"Python" is good')
"Python" is good
雙中有雙,單中有單——轉義符  \
# print(""Python" is good") print("\"Python\" is good") # \ 字符
"Python" is good
轉義符可以用來換行繼續輸入
s = "py\ thon" print(s)
python
s = "My name is Peppa Pig"
變量名[位置編號]
正向索引——從零開始遞增
位置編號不能超過字符串的長度
空格也是一個位置
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
索引只能獲得一個字符,如何獲得多個字符?
變量名[開始位置:結束位置:切片間隔]
切片間隔如不設置默認為1,可省略
切片范圍不包含結束位置(前閉后開)
s = "Python" print(s[0:3:1])
Pyt
print(s[0:3])
Pyt
print(s[0:3:2])
Pt
起始位置是0 可以省略
結束位置省略,代表可以取到最后一個字符
可以使用反向索引
s = "Python" print(s[0:6])
Python
print(s[:6])
Python
print(s[:])
Python
print(s[-6:])
Python
反向切片
起始位置是-1也可以省略
結束位置省略,代表可以取到第一個字符
關鍵點在于-1,代表前一個位置比后一個位置大-1
s = "123456789" print(s[-1:-10:-1])
987654321
print(s[:-10:-1])
987654321
print(s[::-1])
987654321
字符串1+字符串2
a = "I love " b = "my wife " a+b
'I love my wife '
字符串 * 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
子集in全集  任何一個連續的切片都是原字符串的子集
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
所含字符的個數
s = "python" len(s)
6
將中文字庫,英文字母、數字、特殊字符等轉化成計算機可識別的二進制數
每個單一字符對應一個唯一的互不重復的二進制編碼
Python 中使用的是Unicode編碼
將字符轉化為Unicode碼——ord(字符)
print(ord("1")) print(ord("a")) print(ord("*")) print(ord("中")) print(ord("國"))
49 97 42 20013 22269
將Unicode碼轉化為字符——chr(Unicode碼)
print(chr(1010)) print(chr(10000)) print(chr(12345)) print(chr(23456))
? ? ? 寵
返回一個列表
原字符串不變
上述特性適合以下所有字符串處理方法
languages = "Python C C++ Java PHP R" languages_list = languages.split(" ")#括號里的參數就是我們希望對目標字符串進行分割的標記 print(languages_list) print(languages)
['Python', 'C', 'C++', 'Java', 'PHP', 'R'] Python C C++ Java PHP R
可迭代類型 如:字符串、列表
s = "12345" s_join = ",".join(s) #把可迭代的對象每一個都取出來,相鄰兩個之間加上聚合字符 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'
strip從兩側開始搜索,遇到指定字符執行刪除,遇到非指定字符,搜索停止
類似的還有左刪除lstrip和右刪除rstrip
s = " I have many blanks " print(s.strip(" ")) #從兩端進行搜索,遇到指定字符后刪除空格,然后停止 print(s.lstrip(" ")) print(s.rstrip(" ")) print(s)
I have many blanks I have many blanks I have many blanks I have many blanks
s = "Python is coming" s1 = s.replace("Python","Py") print(s1)
Py is coming
s = "Python is an excellent language" print("an:", s.count("an")) print("e:", s.count("e"))
an: 2 e: 4
字符串.upper() 字母全部大寫
s = "Python" s.upper()
'PYTHON'
字符串.lower() 字母全部小寫
print(s.lower()) print(s)
python Python
字符串.title()首字母大寫
s.title()
'Python'
a = 10 print(a > 8) print(a == 12) print(a < 5)
True False False
any() 數據有一個是非零就為True
all() 數據有一個是零就為False (元素都是非零的)
print(any([False,1,0,None])) # 0 False None 都是無 print(all([False,1,0,None]))
True False
n = 2800 while True: m = eval("請輸入一個正整數:")) if m == n: print("正確") break elif m > n: print("太大了") else: print("太小了")
請輸入一個正整數:280 太小了 請輸入一個正整數:2800 正確
import numpy as np x = np.array([[1, 3, 2, 5, 7]]) # 定義 numpy數組 print(x > 3) x[x > 3]
[[False False False True True]] array([5, 7])
type(變量)
age = 20 name = "Ada" print(type(age)) print(type(name))
<class 'int'> <class 'str'>
isinstance(變量,預判類型) 承認繼承
變量類型是預判類型的子類型,則為真,否則為假
print(isinstance(age, int)) # 承認繼承 這里的int就相當于是一個類
True
print(isinstance(age, object)) print(isinstance(name, object)) # object 是所有類的老祖宗
True True
字符串檢查方法
字符串.isdigit()字符是否只有數字組成
age = "20" name = "Ada"
age.isdigit()
True
name.isdigit()
False
字符串.isalpha()字符是否只有字母組成
name.isalpha()
True
age.isalpha()
False
字符串.isalnum()字符是否只有數字和字母組成
"Ada20".isalnum() # 比如可用于判斷用戶名是否合法
True
數字類型轉字符串  str(數字類型)
age = 20 print("My age is "+str(age))
My age is 20
僅有數字組成的字符串轉數字  int()  float()  eval(232, 232, 232); background: rgb(249, 249, 249);">
s1 = "20" s2 = "10.1"
int(s1) # 僅整型 # int(s2) 會錯誤
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的基本數據類型有哪些及怎么使用”文章已經介紹完畢,想要掌握這篇文章的知識點還需要大家自己動手實踐使用過才能領會,如果想了解更多相關內容的文章,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。