一区二区三区在线-一区二区三区亚洲视频-一区二区三区亚洲-一区二区三区午夜-一区二区三区四区在线视频-一区二区三区四区在线免费观看

腳本之家,腳本語言編程技術及教程分享平臺!
分類導航

Python|VBS|Ruby|Lua|perl|VBA|Golang|PowerShell|Erlang|autoit|Dos|bat|

服務器之家 - 腳本之家 - Python - Python基礎知識變量和數據類型

Python基礎知識變量和數據類型

2022-02-17 14:29薯片spider Python

這篇文章主要介紹了Python變量和數據類型,是Python學習當中的基礎知識,需要的朋友可以參考下,希望能夠給你帶來幫助

1.Python變量和數據類型

1.1Python基礎數據類型

整數

二進制數只使用數字0、1表示,在Python中,二進制整數使用前綴0b表示,比如:0b01100b1100

十六進制數除了0~9十個數字以外,還使用a、b、c、d、e、f,在Python中,十六進制使用前綴0x,比如:0x12ef0xde2431af

浮點數

二進制數只使用數字0、1表示,在Python中,二進制整數使用前綴0b表示,比如:0b01100b1100

十六進制數除了0~9十個數字以外,還使用a、b、c、d、e、f,在Python中,十六進制使用前綴0x,比如:0x12ef0xde2431af

在Python中,把10用e替代,比如:1.23x10^9就是1.23e9,或者12.3e80.000012可以寫成1.2e-5

?
1
2
3
4
5
6
7
8
>>> 0.1+0.2
0.30000000000000004
>>>
>>> 0.1+0.2 == 0.3
False
>>> round(0.1+0.2,1) == 0.3
True
>>>

點數間運算存在不確定尾數,不是Bug

在計算機中所有數字都是由2進制表示

嚴格來說 53位二進制表示數字部分

由于二進制和十進制不存在嚴格的對等方式

所以0.1用二進制表示是一個無限小數

計算機只能截取其中的53位 無限接近0.1

計算機只會顯示16位

round(x,d):對x進行四舍五入 d是小數截取位數

字符串

在Python中,字符串是以'‘或""括起來的任意文本,比如'abc',“xyz"等等。請注意,''或”"本身只是一種表示方式,不是字符串的一部分,因此,字符串'abc'只有a,b,c這3個字符。

比如之前練習過的第一個Python程序:print('Hello World'),其中的Hello World就是字符串。

布爾值

在Python中,可以直接用True、False表示布爾值(請注意大小寫,不需要使用字符串符號括起來),也可以通過布爾運算計算出來。

布爾值可以用**and、or和not運算**(注意and,or,not都是Python語言本身的關鍵字)。

and運算是與運算,只有所有都為 True,and運算結果才是 True。

or運算是或運算,只要其中有一個為 True,or 運算結果就是 True。

not運算是非運算,它是一個單目運算符,把 True 變成 False,False 變成 True。

空值

空值是Python里一個特殊的值,用None表示。None是一個特殊的空值。

此外,Python還提供了列表、字典等多種數據類型,還允許創建自定義數據類型

1.2Python定義變量的方法

合法的變量名

1.變量名由大小寫英文字母、數字和下劃線_組成

2.變量不能用數字開頭

3.變量盡量不要和Python關鍵字重合(比如前面學習過的:and、or、not,否則可能導致Python原有關鍵字發揮不出作用)

以下這些變量的定義都是合法的。

?
1
num, count, _none, min_value

他們都滿足上面的三個條件。

以下這些變量的定義都是不合法的。

?
1
1num, 666, 1_cd, and

定義變量

定義變量的方式很簡單,通過變量名 = 數據,即可定義一個變量。

舉個例子:

?
1
a = 1

在這個例子里面,a就是變量,它的值是一個整數1。

?
1
hello = 'Hello'

在這個例子里面,hello就是變量,它的值是一個字符串'Hello'。

在Python里面,一個變量可以先后存儲多種不同類型的數據。

?
1
2
3
4
a = 1 # 這個時候a存儲的是整數類型
print(a)
a = 'ABC' # 這個時候a存儲的是字符串類型
print(a)

這是Python這類語言特有的特性,我們稱之為動態語言,與之對應的是靜態語言,Python、Javascript等等都是動態語言,Java、C、C++等等屬于靜態語言。

1.3Python的整數與浮點數

四則運算

整數、浮點數可以直接進行四則運算。

?
1
2
3
4
5
6
7
8
9
10
11
12
13
14
# 加法
num1 = 10
num2 = 0.5
result = num1 + num2
print(result) # ==> 10.5
# 減法
result = num1 - num2
print(result) # ==> 9.5
# 乘法
result = num1 * num2
print(result) # ==> 5.0
# 除法
result = num1 / num2
print(result) # ==>20.0

從上面可以發現一個規律,整數和浮點數運算后 ,得到的結果不管小數點后是否有值,結果都變成浮點數了,這是合理的,浮點數可以表達整數的結果,但是整數不能表達浮點數的結果。

注意:在Python2使用除法可能和Python3得到不一樣的結果

?
1
2
3
4
5
6
7
8
9
10
# python2
num1 = 10
num2 = 3
result = num1 / num2
print(result) # ==> 3
# python3
num1 = 10
num2 = 3
result = num1 / num2
print(result) # ==> 3.3333333333333335

可以看到在python2,得到的是一個整數的結果,這是因為除數和被除數都是整數時,得到的結果也默認保存為整數了,這是非常不科學的,因此在python3,改進了這一點。

取模運算

Python數字支持取模運算,使用百分號%表示取模。

?
1
2
3
print(3 % 2) # ==> 1
print(33 % 10) # ==> 3
print(99 % 30) # ==> 9

恰當使用取模運算,可以判斷一個數是否為偶數,當一個數對2取模結果為0時,則這個數為偶數,否則為奇數。

?
1
2
3
print(3 % 2) # ==> 1 因此3為奇數
print(33 % 2) # ==> 1 因此33為奇數
print(100 % 2) # ==> 0 因此100為偶數

地板除

Python除了普通除法以外,還有一個特殊的除法被稱為地板除,對于地板除,得到的結果會忽略純小數的部分,得到整數的部分,地板除使用//進行。

?
1
2
3
10//4 # ==> 2
10//2.5 # ==> 4.0
10//3 # ==> 3

小數點位數

使用Python計算小數的時候,經常需要保留小數點后若干位,可以使用round()函數來處理,這里先了解round的調用方式,使用兩個參數,第一個是需要保留小數點位數的數值,第二個是保留的位數。

?
1
2
3
4
num = 10 / 3
print(num) # ==> 3.3333333333333335
# 使用round保留兩位小數
round(num, 2) # ==> 3.33

1.4Python的布爾類型

與運算

只有兩個布爾值都為 True 時,計算結果才為 True。

或運算

只要有一個布爾值為 True,計算結果就是 True。

非運算

把True變為False,或者把False變為True。

Python把0、空字符串和None看成False,其他數值和非空字符串都看成True,需要注意的是,not計算的優先級是高于and和or的。

短路計算

1.在計算a and b時,如果 a 是 False,則根據與運算法則,整個結果必定為 False,因此返回 a;如果 a 是 True,則整個計算結果必定取決與 b,因此返回 b。

2.在計算a or b時,如果 a 是 True,則根據或運算法則,整個計算結果必定為 True,因此返回 a;如果 a 是 False,則整個計算結果必定取決于 b,因此返回 b。

1.5Python的字符串

符串既包含'又包含"怎么辦?

需要對字符串中的某些特殊字符進行“轉義”,Python字符串用\進行轉義。

要表示字符串Bob said "I'm OK"

由于'和"會引起歧義,因此,我們在它前面插入一個\表示這是一個普通字符,不代表字符串的起始,因此,這個字符串又可以表示為

?
1
'Bob said \"I\'m OK\".'

注意:轉義字符 \不計入字符串的內容中。

常用的轉義字符還有:

\n表示換行

\t 表示一個制表符

\\表示 \ 字符本身

1.6Python中raw字符串與多行字符串

  • 為了避免對每一個字符轉義很麻煩的情況,我們可以在字符串前面加個前綴 r,表示這是一個raw字符串,里面的字符就不需要轉義了。
?
1
2
d=r'\(~_~)/ \(~_~)/'
print(d)
  • 如果要表示多行字符串,可以用'''...'''表示:
?
1
2
3
'''Line 1
Line 2
Line 3'''
  • 上面這個字符串的表示方法和下面的是完全一樣的:

‘Line 1\nLine 2\nLine 3'

  • 還可以在多行字符串前面添加r,把這個多行字符串也變成一個raw字符串:
?
1
2
3
r'''Python is created by "Guido".
It is free and easy to learn.
Let's start learn Python in imooc!'''

1.7 Python的字符串format

需要使用format來處理字符串,輸出不固定的內容。

字符串format由兩個部分組成,字符串模板和模板數據內容組成,通過大括號{},就可以把模板數據內容嵌到字符串模板對應的位置。

?
1
2
3
4
5
6
# 字符串模板
template = 'Hello {}'
# 模板數據內容
world = 'World'
result = template.format(world)
print(result) # ==> Hello World

如果模板中{}比較多,則容易錯亂,那么在format的時候也可以指定模板數據內容的順序。

?
1
2
3
4
5
6
7
8
# 指定順序
template = 'Hello {0}, Hello {1}, Hello {2}, Hello {3}.'
result = template.format('World', 'China', 'Beijing', 'imooc')
print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc.
# 調整順序
template = 'Hello {3}, Hello {2}, Hello {1}, Hello {0}.'
result = template.format('World', 'China', 'Beijing', 'imooc')
print(result) # ==> Hello imooc, Hello Beijing, Hello China, Hello World.

除了使用順序,還可以指定對應的名字,使得在format過程更加清晰。

?
1
2
3
4
5
6
7
8
9
# 指定{}的名字w,c,b,i
template = 'Hello {w}, Hello {c}, Hello {b}, Hello {i}.'
world = 'World'
china = 'China'
beijing = 'Beijing'
imooc = 'imooc'
# 指定名字對應的模板數據內容
result = template.format(w = world, c = china, b = beijing, i = imooc)
print(result) # ==> Hello World, Hello China, Hello Beijing, Hello imooc.

1.8Python的字符串編碼

  • Unicode把所有語言都統一到一套編碼里,這樣就不會再有亂碼問題了。
  • Unicode通常用兩個字節表示一個字符,原有的英文編碼從單字節變成雙字節,只需要把高字節全部填為0就可以。

在python3中,中文字符串和英文字符串無異。

1.9Python的字符串切片

字符串由一個個字符組成,每一個字符都有一個唯一的位置。比如字符串'ABC',第一個字符是A,第二個字符是B,第三個字符是C。

因此我們可以使用位置的方式取出字符串中特定位置的字符,按照位置取字符串的方式使用中括號[]訪問,這個時候可以把字符串看作是一個列表(一種新的數據類型,在后面會繼續學習),不過需要注意的是,在程序的世界中,計數是從0開始的,使用0來表示第一個。

?
1
2
3
4
5
6
7
s = 'ABC'
a = s[0] # 第一個
b = s[1] # 第二個
c = s[2] # 第三個
print(a) # ==> A
print(b) # ==> B
print(c) # ==> C

有時候,我們會想獲取字符串的一部分(子串),這個時候我們采取切片的方式獲取,切片需要在中括號[]中填入兩個數字,中間用冒號分開,表示子串的開始位置和結束位置,并且這是半閉半開區間,不包括最后的位置。

?
1
2
ab = s[0:2] # 取字符串s中的第一個字符到第三個字符,不包括第三個字符
print(ab) # ==> AB

我們定義一個更長的字符串,了解切片更多的細節。

 

?
1
2
3
4
5
s = 'ABCDEFGHIJK'
abcd = s[0:4] # 取字符串s中的第一個字符到第五個字符,不包括第五個字符
print(abcd) # ==> ABCD
cdef = s[2:6] # 取字符串s中的第三個字符到第七個字符,不包括第七個字符
print(cdef) # ==> CDEF

總結

本篇文章就到這里了,希望能夠給你帶來幫助,也希望您能夠多多關注服務器之家的更多內容!

原文鏈接:https://blog.csdn.net/fjhkrje/article/details/120942468

延伸 · 閱讀

精彩推薦
主站蜘蛛池模板: 亚洲欧美韩国日产综合在线 | 国产精品视频2020 | 无遮挡h肉动漫高清在线 | 欧美成人乱弄视频 | 99久久精品免费看国产四区 | 小早川怜子息梦精在线播放 | 日本丰满大乳乳奶 | 呜嗯啊野战h呻吟男男双性 污小说在线阅读 | 91精品国产人成网站 | 亚洲天堂网2018 | 91丝袜足控免费网站xx | 人人揉人人爽五月天视频 | 青青青国产在线观看 | 男女视频在线观看 | 美国69xxxx59| 国产免费又粗又猛又爽视频国产 | 垫底辣妹免费观看完整版 | 日处女b | 五月婷婷在线观看 | 无码AV毛片色欲欧洲美洲 | 全彩调教侵犯h本子全彩妖气he | 欧美三级一区二区 | 欧美伊人影院 | 色综合天天综合网站中国 | 久久黄色小视频 | 98成人| 草大逼| 色综合图区 | sss在线观看免费视频 | 日本红色高清免费观看 | 国产成人久久精品一区二区三区 | 猥琐对着美女飞机喷到脸上 | 女女性恋爱免费 | 特级毛片全部免费播放器 | 欧美成人免费草草影院视频 | 国产精品对白刺激久久久 | 男女男在线精品网站免费观看 | 国产欧美视频高清va在线观看 | 国产福利在线观看永久视频 | 91噜噜噜噜色 | 日韩不卡一区二区三区 |