1.2【Python】第二章 變量和簡單數(shù)據(jù)類型

人工智能入門與實(shí)戰(zhàn)第一季:python基礎(chǔ)語法

安裝PyCharm

為了更加方便我們編程,從本章開始我們將使用PyCharm開發(fā)環(huán)境,上面我們也提到了IDLE開發(fā)環(huán)境,借此機(jī)會你也可以對比一下PyCharm與IDLE誰更好用?

以下安裝以mac為例:(windows類似)
下載地址:https://www.jetbrains.com/pycharm/download/#section=mac

左側(cè)專業(yè)版收費(fèi),右側(cè)是社區(qū)開源版本,可以滿足基本開發(fā),當(dāng)然你也可以從網(wǎng)上找專業(yè)免費(fèi)版,沒錯,就是通常說的破解版。

安裝很簡單,下載之后直接安裝,無需多余配置。

PyCharm初體驗(yàn)

使用PyCharm寫你的第一個程序,你可以創(chuàng)建新項(xiàng)目,當(dāng)然也可以直接使用PyCharm打開并運(yùn)行我們前面寫的代碼,比如love_china.py,首先打開PyCharm:

我們看到PyCharm這個面板左側(cè)是歷史打開的項(xiàng)目或文件,右側(cè)是操作區(qū),我們點(diǎn)擊Open,找到你之前存放的love_china.py文件,雙擊打開。

這時會出現(xiàn)如下提示“找不到Python解釋器”,所以此時還無法運(yùn)行程序:

我們點(diǎn)擊(上圖)提示內(nèi)容后面的“Configure Python interpreter”即配置Python解釋器(也可以從工具欄PyCharm-Preferences打開),會打開參數(shù)設(shè)置界面(下圖),選擇我們已經(jīng)安裝的Python解釋器,點(diǎn)擊ok即可。

好了,現(xiàn)在可以運(yùn)行l(wèi)ove_china.py這個程序了,工具欄選擇“Run-Run”即可運(yùn)行,也可以在當(dāng)前文件編輯界面“右鍵-Run”也可以運(yùn)行。

如果要自己創(chuàng)建python文件,可以工具欄選擇File-New-Python File

好了,PyCharm的安裝和基本使用先寫到這里,后續(xù)在學(xué)習(xí)的過程中會和你一起慢慢熟悉更多的功能。

注釋

什么是注釋?
注釋是指在程序中添加的備注或者說明,解釋器不會把它當(dāng)做代碼來運(yùn)行,只是起到說明的作用,我們以后使用別人提供的代碼時都會看到大量的注釋,以便你能更好的理解他們的代碼邏輯。代碼中適當(dāng)?shù)奶砑幼⑨屖莻€好習(xí)慣。

1.單行注釋:#
單行注釋快捷鍵:mac系統(tǒng)使用command+/、windows系統(tǒng)使用Ctrl+/
單行注釋實(shí)現(xiàn)批量注釋:批量選中要注釋的代碼,mac系統(tǒng)使用使用command+/、windows系統(tǒng)使用Ctrl+/

2.多行注釋:'''或"""

代碼示例:

#這里是單行注釋
#再來一個單行注釋
#print("我已經(jīng)被注釋掉了,不會執(zhí)行了")

'''
我是多行注釋
我是多行注釋
'''

"""
我也是多行注釋
print("我已經(jīng)被注釋掉了,不會執(zhí)行了")
"""

#以下將執(zhí)行一個輸入操作
name = input("請輸入你的名字:")
print(name)  #打印輸入的名字

行與縮進(jìn)

不少編程語言都是使用大括號 {}來表示代碼塊的,而python則是使用縮進(jìn),一般采用4個空格,可以使用tab制表符,同一個代碼塊的語句必須包含相同的縮進(jìn)空格數(shù)。

代碼示例:

x = 5
y = 6

if x == y:
     print('x和y相等')
else:
     print("x和y不相等")

更多的代碼書寫風(fēng)格官方文檔里有詳細(xì)說明:
https://www.python.org/dev/peps/pep-0008/

注釋與縮進(jìn)對應(yīng)的源碼:se1_ch2_note.py

變量

在計算機(jī)的世界里,一切皆數(shù)據(jù),那么在計算機(jī)的內(nèi)存中如何存取數(shù)據(jù)呢,答案是變量,變量就如同你家的門牌號,通過門牌號可以找到你的家,同樣通過變量可以找到內(nèi)存中的某個數(shù)據(jù),當(dāng)然前提是這個變量存儲了該數(shù)據(jù)的內(nèi)存地址。

變量賦值

python中變量無需聲明類型,每個變量在使用前都必須賦值,變量賦值以后該變量才會被創(chuàng)建。

賦值表達(dá)式:變量名 = 表達(dá)式
表示把右邊表達(dá)式的值賦值給左邊的變量,準(zhǔn)確的說是左邊的變量存儲了右邊數(shù)據(jù)的內(nèi)存地址,表達(dá)式可以是簡單的數(shù)值、字符串,也可以是復(fù)雜的運(yùn)算表達(dá)式。

代碼示例:

a = 1
b = c = 2   #等同于b=2; c=2
d,e = 3,4   #等同于d=3; e=4
print(a,b,c,d,e)

name = 'judy'
print(name)

#使用type()函數(shù),查看變量的類型
print(type(a))
print(type(name))

輸出結(jié)果:
1 2 2 3 4
judy
<class 'int'>
<class 'str'>

標(biāo)識符

什么是標(biāo)識符:python中標(biāo)識符包括變量名、函數(shù)名、類名、模塊名、包名

標(biāo)識符命名規(guī)則:
1、第一個字符必須是字母或下劃線"_"
2、其他字符由字母、數(shù)字、下劃線組成
3、標(biāo)識符區(qū)分大小寫
4、不可以使用保留字符,例如if、while、False、and、not、return、...
查看更多保留字:

import keyword
print(keyword.kwlist)

在python中,在遵守標(biāo)識符命名規(guī)則前提下,開發(fā)人員通常這樣來命名:
1.模塊名、包名:字母一般小寫,多個單詞之間使用下劃線連接,例如前面的例子:hello_world.py,比如python的數(shù)學(xué)庫:math.py
2.函數(shù)名:字母一般小寫,多個單詞之間使用下劃線連接,例如系統(tǒng)輸入輸出函數(shù):print()、input()
3.變量名:字母一般小寫,多個單詞之間使用下劃線連接,例如:name、str_length

當(dāng)然除了以上的命名規(guī)則之外,以上命名我們需要盡量做到見名知意,好的命名和好的代碼結(jié)構(gòu)是作為一名開發(fā)人員的基礎(chǔ)素養(yǎng),會給閱讀你的代碼人留下非常好的印象。

變量和標(biāo)識符對應(yīng)的源碼:se1_ch2_variables.py

數(shù)字類型

python中有三種數(shù)字類型:整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。
1、整型(int): 整數(shù),不帶小數(shù)點(diǎn),例如1,100,Python3 整型沒有限制大小,也可以當(dāng)做長整型使用,所以Python3中沒有l(wèi)ong類型
2、浮點(diǎn)型(float):小數(shù),例如9.99,浮點(diǎn)型也可以使用科學(xué)計數(shù)法表示,例如999e-2
3、復(fù)數(shù)(complex):復(fù)數(shù)由實(shí)數(shù)部分和虛數(shù)部分構(gòu)成,可以用a + bj,或者complex(a,b)表示, 復(fù)數(shù)的實(shí)部a和虛部b都是浮點(diǎn)型。(了解)

算術(shù)運(yùn)算符

運(yùn)算符 描述 舉例 結(jié)果
+ 5+6 11
- 2-1 1
* 3*6 18
/ 浮點(diǎn)除法 5/2 2.5
// 整數(shù)除法 5//2 2
% 取余/模 5%2 1
** 2**3 8

注意一下正、負(fù)數(shù)的取整的區(qū)別,代碼示例:

print(-9 // 2)
print(9 // 2)

輸入結(jié)果:
-5
4

數(shù)學(xué)函數(shù)

函數(shù) 描述 舉例 結(jié)果
abs(x) x 的絕對值 abs(-4) 4
int(x) 將 x 轉(zhuǎn)換為整數(shù) int(3.6) 3
float(x) 將 x 轉(zhuǎn)換為浮點(diǎn)數(shù) float("123") 123.0
divmod(x,y) 返回一對商和余數(shù) divmod(5,3) (1, 2)
pow(x, y) x 的 y 次冪 pow(2,3) 8
round(x[, n]) 四舍五入,n表示保留小數(shù)位數(shù) round(5.9) 6
math.floor(x) 返回數(shù)字的下舍整數(shù) math.floor(5.9) 5
math.ceil(x) 返回數(shù)字的上入整數(shù) math.ceil(5.1) 6

以上是一些常用的數(shù)學(xué)函數(shù),列出來為了讓你可以有個直觀的感受和了解,我們使用時到官網(wǎng)查找即可,官網(wǎng)標(biāo)準(zhǔn)庫地址如下:
https://docs.python.org/zh-cn/3/library/index.html#library-index

文檔中包含了數(shù)學(xué)函數(shù)、隨機(jī)函數(shù)、冪函數(shù)、對數(shù)函數(shù)、三角函數(shù)等各種函數(shù)的說明。

代碼示例:

print(abs(-4))
print(int(3.6))
print(float("123"))
print(divmod(5,3))
print(pow(2,3))
print(round(5.9))

#記得先導(dǎo)入math模塊:import math,上面的方法為啥不用導(dǎo)入對應(yīng)的模塊?原因很簡單:以上方法屬于python解釋器的內(nèi)置函數(shù)(Built-in Functions)
print(math.floor(5.9))
print(math.ceil(5.1))

輸出結(jié)果:
4
3
123.0
(1, 2)
8
6
5
6

復(fù)合賦值運(yùn)算符

復(fù)合賦值運(yùn)算符是對正常運(yùn)算符賦值的一種簡化,下面以加、減、乘、除舉例,其他類似:

運(yùn)算符 舉例 等價于
+= s += 3 s = s + 3
-= s -= 3 s = s - 3
*= s *= 3 s = s * 3
/= s /= 3 s = s / 3

代碼示例:

#例如s=1,s加1之后的值再存儲到s中
s = 1
s += 1  #等價于 s = s + 1
print(s)

輸出結(jié)果:
2

布爾值

布爾類型只有兩個值: True 和 False,多用在條件語句中,表示條件的真與假

比較運(yùn)算符

所有比較運(yùn)算符返回非0表示真,返回0表示假,這分別與布爾值True和False等價
以下假設(shè)a = 5, b = 8

運(yùn)算符 描述 舉例 結(jié)果
== 等于 - 比較對象是否相等 a == b False
!= 不等于 - 比較兩個對象是否不相等 a != b True
> 大于 - 返回x是否大于y a > b False
< 小于 - 返回x是否小于y a < b True
>= 大于等于 - 返回x是否大于等于y a >= b False
<= 小于等于 - 返回x是否小于等于y a <= b True

代碼示例1:

#你中500w了嗎?
is_500w = True
print(type(is_500w), is_500w)
if is_500w :
    print("好開心")
else:
    print("再接再厲")

輸出結(jié)果:
<class 'bool'> True
好開心

代碼示例2:

x = 5
y = 6

print(x==y)

if x == y:
    print('x和y相等')
else:
    print("x和y不相等")

if x < y:
    print("x小于y")
else:
    print("x大于等于y")

輸出結(jié)果:
False
x和y不相等
x小于y

所有比較運(yùn)算符返回非0表示真,返回0表示假,這分別與布爾值True和False等價,怎么理解?舉例如下,觀察打印結(jié)果:
代碼示例:

if 5:
    print('5非0,表示True')

if True:
    print('True')

if 0:
    pass    #反正這個分支也不會執(zhí)行,就用pass略過
else:
    print("0為假,表示False")

if False:
    pass
else:
    print("False")

輸出結(jié)果:
5非0,表示True
True
0為假,表示False
False

邏輯運(yùn)算符

以下假設(shè)變量 a 為 5, b為 6:

運(yùn)算符 邏輯表達(dá)式 描述 舉例
and x and y 布爾"與" : 如果 x 為 False,x and y 返回 False,否則它返回 y 的計算值。 (a and b) 返回 6
or x or y 布爾"或" : 如果 x 是 True,它返回 x 的值,否則它返回 y 的計算值。 (a or b) 返回 5
not not x 布爾"非" : 如果 x 為 True,返回 False 。如果 x 為 False,它返回 True。 not 5 返回False

以下示例描述了邏輯運(yùn)算的基本邏輯,試著修改case1和case2的值,看一下輸出結(jié)果有什么不一樣吧?
示例代碼:

case1 = 0    #把我改成非0的值試試
case2 = 3    #把我改成0試試
if (case1 and case2):
    print('case1 和 case2 都為True')
else:
    print('case1 和 case2 至少有一個不為True')

if (case1 or case2):
    print('case1 和 case2 至少有一個為True')
else:
    print('case1 和 case2 都不為True')

if (not case1):
    print('case1為False')
else:
    print('case1為True')

邏輯運(yùn)算符有啥用?用處太大了,現(xiàn)實(shí)世界使用邏輯運(yùn)算符的場景太多了,比如要想進(jìn)入BAT,條件必須是211或985,且研究生學(xué)歷,那么這個條件語句可以這樣寫:

(case1 == "211" or case1 == "985") and case2 == "研究生"

數(shù)字類型、各種運(yùn)算符對應(yīng)的源碼:se1_ch2_numeric.py

本章作業(yè)

1、解一道數(shù)學(xué)題,給定半徑r=5,計算圓的周長

2、某小學(xué)考試評優(yōu)三個等級,80分(含)以上:優(yōu)秀、60-79分:一般、60以下:不及格,小明數(shù)學(xué)考試得了59分,通過比較運(yùn)算打印出小明的評優(yōu)結(jié)果

本章作業(yè)對應(yīng)的源碼:se1_ch2_home_work.py

本章總結(jié)

從本章開始已經(jīng)進(jìn)入python語言的正式學(xué)習(xí)中了,當(dāng)然還是最基礎(chǔ)的階段,本章主要講了變量、數(shù)字類型和布爾類型的幾種數(shù)據(jù)類型,還有各種常見的運(yùn)算符。

當(dāng)然python中的數(shù)據(jù)類型還遠(yuǎn)遠(yuǎn)不止數(shù)字類型和布爾類型,還有字符串、各種序列、字典,我們下一章再陸續(xù)推出。

“豬弟爸爸”碎碎念

今天說一個比較容易犯的錯誤,就連我自己在今天的代碼編寫中也出現(xiàn)過,就是中英文輸入法,是的,我在前面提到過,比如代碼中的括號、引號、分號,都必須是英文輸入法,否則會報錯。

但是對于初學(xué)者而言如果出現(xiàn)上述錯誤可能會浪費(fèi)掉你的很多時間去排查,所以,我們要避免這個問題。

還有需要提醒的是記得學(xué)會使用官方文檔,因?yàn)檫@才是一手資料,而且python官方文檔支持中文,這在其他編程語言中是很少見的,說明當(dāng)今中國開發(fā)者已經(jīng)成為一群不可忽視的力量了,當(dāng)然如果你的英文很好可以直接切到英文模式。

今天講的內(nèi)容在官方網(wǎng)站都可以找到對應(yīng)的文檔:
https://docs.python.org/zh-cn/3/reference/index.html(Python語言參考)
https://docs.python.org/zh-cn/3/library/index.html(Python 標(biāo)準(zhǔn)庫)

我是豬弟爸爸:zhudipapa,有問題給我留言,我們下節(jié)見!

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容