語法
- 注釋
注釋就是代碼源文件中,用來進(jìn)行解釋說明的文字,不會(huì)對代碼的功能產(chǎn)生任何影響
- 編程語言中涉及到的所有的符號,都是指的英文輸入狀態(tài)下的符號。
- 標(biāo)識符
標(biāo)識符是用來程序中命名用的。 (比如:變量名、類名、函數(shù)名)
a.標(biāo)識符是由字母、數(shù)字和下劃線組成,并且數(shù)字不能開頭(硬性)—————— python3中,標(biāo)識符里面可以有中文(但是不推薦使用)
b.不能是關(guān)鍵字(保留字)(硬性)
c.大小寫敏感(區(qū)分大小寫,aaa和Aaa、AAA、AAa是不一樣的)
d.要見名知義(規(guī)范)
e.不推薦使用python中的內(nèi)置函數(shù)、類名去作為標(biāo)識符(規(guī)范) - 關(guān)鍵字
系統(tǒng)保留的有特殊功能或者特殊意義的一些單詞。這些單詞不能用來給變量\函數(shù)\類等命名。
import keyword
print(keyword.kwlist)
結(jié)果:
'False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class',
'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for',
'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not',
'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield'
- 行與縮進(jìn)
縮進(jìn):每一行代碼的位置,與行開頭位置之間的空格。
在python中,縮進(jìn)的寫法有嚴(yán)格的規(guī)范。同一級的代碼,必須在同一個(gè)縮進(jìn)下面。
如果在不該有空格產(chǎn)生的位置出現(xiàn)了對于的空格。程序會(huì)報(bào)錯(cuò)(Indentation Error)
如果在需要縮進(jìn)的時(shí)候沒有縮進(jìn)也會(huì)報(bào)錯(cuò)。
- 關(guān)于行的規(guī)范:
函數(shù)和類的聲明的前后必須要有兩個(gè)換行。
一般一個(gè)功能實(shí)現(xiàn)完,實(shí)現(xiàn)下一個(gè)功能的時(shí)候最好也換行。
- 多行語句
一條語句在多行顯示。
a.在需要換行的地方加反斜杠(\),然后再換行。
b.字典、列表、集合和元組等容器類型數(shù)據(jù)的字面量,在多行顯示的時(shí)候可以直接換行。
- python中,一條語句結(jié)束,可以不寫分號;但是如果一行中要寫多條語句,那么每條語句之間必須使用分號隔開。
print('按時(shí)打算打算打算打算的發(fā)送到\
跟周星馳的地位阿薩德阿斯達(dá)斯大\
所大所大所付付付付尋尋尋尋尋尋尋尋尋尋尋尋尋尋尋')
print ([1,2,2,3,
4,4,4,4,
5,5,5,5
])
結(jié)果:
按時(shí)打算打算打算打算的發(fā)送到跟周星馳的地位阿薩德阿斯達(dá)斯大所大所大所付付付付尋尋尋尋尋尋尋尋尋尋尋尋尋尋尋
[1, 2, 2, 3, 4, 4, 4, 4, 5, 5, 5, 5]
- 字面量
數(shù)據(jù)類型對應(yīng)的具體的值,例如:
10,100,-12 >>>整數(shù)
12.85,3.1415926,-0.13 >>> 小數(shù)
12e2,9e-2 >>> 數(shù)字
'hello world','123','abc',"abcd" >>>字符串
True,False >>>布爾值
[1,2,'sd','adsdsad'] >>>列表
{'a':1,'b':'123'} >>>字典 - python中的基本數(shù)據(jù)類型
數(shù)字(整型、浮點(diǎn)型、布爾、復(fù)數(shù))、字符串(str)、列表(list)、字典(dict)。
集合(set)、元組(tuple)、none >>>代表沒有和空
整型:int (在python2.x有l(wèi)ong) >>>值是所有的整數(shù)
浮點(diǎn)型:float >>>包含所有的小數(shù)
布爾:bool >>>值只有True和False
復(fù)數(shù): complex >>>值包含所有的復(fù)數(shù)
- 可以type函數(shù)查看數(shù)據(jù)的類型:type(數(shù)據(jù))
print(type(9e-2))
print(type('654'))
結(jié)果:
<class 'float'>
<class 'str'>
提示
- 常用快捷方式
control+/ ———— 單行注釋
"""
這是多行注釋
"""
control+s ———— 保存
control+b ———— 編譯
control+n ———— 新建文件
control+c ———— 復(fù)制
control+v ———— 粘貼
control+a ———— 全選
control+x ———— 剪切
control+z ———— 撤銷
control+y / control + shift+ z ———— 反撤銷
按住control??梢酝瑫r(shí)在多個(gè)位置設(shè)置光標(biāo)
control+f ———— 彈出搜索框 - print函數(shù)是python內(nèi)置函數(shù),作用是在控制臺打印print后面()里面的任何內(nèi)容()里面的單引號,是字符串的標(biāo)志,而不是內(nèi)容。
在python2.X中 print 'hello world'。
在python3.X中 print后面需要括號。 - A.B.C版本號。A>>> 重大修改(不向下兼容) B>>> 添加新的功能 C >>> 修復(fù)BUG。
變量
- 什么是變量
在程序中可以通過變量來存儲數(shù)據(jù)(容器)。 - 怎么聲明變量
嚴(yán)格來說,python中的變量是不需要聲明的,直接通過符號(=)給變量賦值,就是在聲明變量。
因?yàn)閜ython是動(dòng)態(tài)語言,在聲明變量的時(shí)候,不需要指定變量的類型。并且同一個(gè)變量可以賦不同類型的值
- 格式:變量名 = 值
- 變量名:標(biāo)識符,PEP8的命名方式(所有的字母都小寫,多個(gè)單詞之間用下劃線隔開,例如:user_name)
- 駝峰式命名:第一個(gè)單詞首字母小寫,后邊每個(gè)單詞的首字母都大寫(例如:userName)
# 聲明了一個(gè)變量age,并且賦值為18
age = 18
# 使用變量的時(shí)候,就相當(dāng)于使用變量中存的值
print(age)
結(jié)果:
18
此處還運(yùn)用到上訴的type函數(shù)查看數(shù)據(jù)類型
student_age = 23
print(student_age)
# 1.如果重新給一個(gè)變量賦值,那么新賦的值會(huì)覆蓋原來的值
# 2.同一個(gè)變量可以賦不同類型的值
student_age = '555'
print(student_age,'\n',type(student_age))
結(jié)果:
23
555
<class 'str'>
補(bǔ)充
一個(gè)數(shù)據(jù)有type(類型)、id(數(shù)據(jù)存儲在計(jì)算機(jī)中的地址)和value(值)三個(gè)屬性。
變量存儲數(shù)據(jù)的時(shí)候,有兩種情況。
第一種情況:存 value >>> 數(shù)字類型、字符串。
第二種情況:存 id >>> 字典、列表、集合、元組。
number = 10
print(id(number))
#輸出的是存入的地址
結(jié)果:
1401541824
運(yùn)算符
- 數(shù)字運(yùn)算符
- 求和:+
注意:求和操作,+兩邊必須是數(shù)字類型
True ---> 1 False ---> 0 - 求差:-
- 求乘積:*
- 求商:/
- 求上個(gè)數(shù)相除的余數(shù):%
- 冪運(yùn)算:**
- 整除://
- 比較運(yùn)算符
(1)>
x > y:判斷x是否大于y,如果是結(jié)果是True,否則是False
(2)<
x < y:判斷x是否小于y,如果是結(jié)果是True,否則是False
(3)==
x == y: 如果x和y相等,結(jié)果就是True,否則是False
(4)<=、>=
x <= y: 如果x小于等于y,結(jié)果就是True,否則是False;反之。
(5)!=
x != y : 如果x和y不相等,結(jié)果是True,否則是False
(6)在python中,可以像數(shù)學(xué)中一樣,連續(xù)判斷 - 邏輯運(yùn)算符
(1)與(and)
布爾1 and 布爾2 :兩個(gè)都為True結(jié)果才是True,只要有一個(gè)是False,結(jié)果就是False。
需要兩個(gè)或者多個(gè)條件同時(shí)滿足,就使用邏輯與(and)
(2)或(or)
布爾1 or 布爾2 :只要有一個(gè)是True結(jié)果就是True,兩個(gè)都為False結(jié)果才是False。
需要兩個(gè)或者多個(gè)條件中滿足一個(gè)就可以,就使用邏輯或(or)
(3)非(not)
not 布爾1 :如果是True,結(jié)果就是False,如果是False,結(jié)果就是True。
- 邏輯運(yùn)算符的運(yùn)算數(shù)據(jù)是布爾值,結(jié)果也是布爾值
# 寫一個(gè)條件,判斷一個(gè)人的年齡是否滿足青年的條件(年齡大于18且小于28)
age = 20
print((age >18 and age<28) and (not age <= 0))
結(jié)果:
True
- 幅值運(yùn)算符
賦值運(yùn)算符:=, += -= ,*=,/=,%=, **=, //=
- 作用:將賦值符號右邊的表達(dá)式的值賦給左邊的變量
表達(dá)式:有結(jié)果的語句,例如: 10, 'abc',10+20 ,30>10.5等
賦值符號的左邊必須是變量 - 賦值符號,是先算右邊的結(jié)果,然后再把結(jié)果賦給左邊的變量
number = 100
number += 10 #相等于:number = number+10
print(number)
number *= 2 # number = number * 2
print(number)
結(jié)果:
110
220
- 運(yùn)算符的優(yōu)先級
- 優(yōu)先級從低到高:賦值運(yùn)算符<邏輯運(yùn)算符<比較運(yùn)算符<算術(shù)運(yùn)算符
- 算術(shù)運(yùn)算符中:先冪運(yùn)算再乘除取余取整再加減。
- 如果你不確定運(yùn)算順序,可以通過添加括號來改變運(yùn)算順序。有括號就先算括號里面的。
進(jìn)制轉(zhuǎn)換
十進(jìn)制
基數(shù):0,1,2,3,4,5,6,7,8,9
特點(diǎn):逢10進(jìn)1二進(jìn)制
基數(shù):0,1
特點(diǎn):逢2進(jìn)1八進(jìn)制
基數(shù):0,1,2,3,4,5,6,7
特點(diǎn):逢8進(jìn)1十六進(jìn)制
基數(shù):0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f
特點(diǎn):逢16進(jìn)1
- 進(jìn)制間的轉(zhuǎn)換:
十進(jìn)制轉(zhuǎn)換成其他進(jìn)制:整除取余法。
八進(jìn)制轉(zhuǎn)二進(jìn)制:一位八進(jìn)制轉(zhuǎn)換成三位二進(jìn)制。
十六進(jìn)制轉(zhuǎn)二進(jìn)制:一位十六進(jìn)制轉(zhuǎn)換成四位二進(jìn)制。 - python中的二進(jìn)制、八進(jìn)制和十六進(jìn)制的轉(zhuǎn)換
a.二進(jìn)制
基數(shù)是0,1,并且數(shù)字前加前綴0b表示二進(jìn)制
bin(整數(shù)) >>> 將其他進(jìn)制的整數(shù)轉(zhuǎn)換成二進(jìn)制數(shù)
print(0b101111)
結(jié)果:
47
b.八進(jìn)制
基數(shù)是0-7,并且數(shù)字前加前綴0o表示八進(jìn)制
oct(整數(shù)) >>> 將其他進(jìn)制的整數(shù)轉(zhuǎn)換成八進(jìn)制數(shù)
print(0o37)
結(jié)果:
31
c.十六進(jìn)制
基數(shù)0-9,a-f(A-F),并且數(shù)字前加前綴0x表示十六進(jìn)制
hex(整數(shù)) >>> 將其他進(jìn)制的整數(shù)轉(zhuǎn)換成十六進(jìn)制數(shù)
print(0x4e)
結(jié)果:
78
練習(xí)
1.下列四組數(shù),依次為二進(jìn)制、八進(jìn)制和十六進(jìn)制,符合要求的是(d)。
a. 12, 77, 10
b. 12, 80, 10
c. 11, 78, 19
d. 11, 77, 19
2.二進(jìn)制數(shù)加法運(yùn)算的基本特點(diǎn)是“逢二進(jìn)一”,即0+0=0,0+1=1,1+0=1,1+1=0并進(jìn)位。運(yùn)用這一基本法則和十進(jìn)制運(yùn)算的類似規(guī)律,得出二進(jìn)制數(shù)加法運(yùn)算1001+101的結(jié)果為( c ) 。
a. 1001
b. 1010
c. 1110
d. 1101
3.八進(jìn)制754中的數(shù)碼7對應(yīng)的位權(quán)是( c ) 。
a. 10^2 b. 16^1 c. 8^2 d. 2^2
4.十進(jìn)制數(shù)53轉(zhuǎn)換成二進(jìn)制數(shù)是( b ) 。
a. 100101
b. 110101
c.100100
d.110100
5.(偏難)已知,十進(jìn)制中的8在X進(jìn)制中表示為11,即(10)8=(X)11。請問這個(gè)X進(jìn)制具體為( b )進(jìn)制。
a. 6
b. 7
c. 8
d. 9
6.(偏難)二進(jìn)制的1000001相當(dāng)十進(jìn)制的④,二進(jìn)制的100.001可以表示為④ 。
A: ① 62 ② 63 ③ 64 ④ 65
B: ① 2^3 +2^–3 ② 2^2 +2^–2 ③ 2^3 +2^–2 ④ 2^2 +2^–3
下面定義變量正確的是( d ) 。
a. a = b = c = 10
b. a,c = 10
c. in = 20
d. num = 10; t = 20n = 6784,以下能夠獲取到7 的方法有(c)。
a. n / 1000 % 100
b. n % 1000 / 100
c. n // 100 % 10
d. n // 10 % 100 // 10
9.以下表達(dá)式 10 / 4 + 23 // 4 * 2 - 30的計(jì)算結(jié)果是:-17.5。
答案:
1.d 2.c 3.c 4.b 5.b 6.④ ④ 7.d 8.c 9.-17.5