知識點(diǎn)及例題
1.變量名命名規(guī)則
1)首字母必須是字母或者下劃線;
2)其余字符可以是字母、下劃線或者是數(shù)字稠茂;
3)區(qū)分大小寫。
例:pi情妖、PI睬关、_cat
2.基本運(yùn)算符的用法和運(yùn)算結(jié)果
1)算術(shù)運(yùn)算符:包括加、減毡证、乘电爹、除和求余數(shù)等。是最基礎(chǔ)的運(yùn)算料睛。
運(yùn)算符 | 功能 | 舉例 |
---|---|---|
** | 乘方 | 3**2結(jié)果是9 |
+ | 正號(一般省略不寫丐箩,單目運(yùn)算符) | +5即5 |
- | 負(fù)號(單目運(yùn)算符) | -5 |
* | 乘法 | 3*2結(jié)果是6 |
/ | 除法(真正的除法) | 3/2和3.0/2.0結(jié)果都是1.5 |
// | 整除(地板除) | 5//2結(jié)果是2摇邦,結(jié)果類型是整形;5.9//2結(jié)果是2.0屎勘,結(jié)果類型是浮點(diǎn)型 |
% | 取余 | 5%2結(jié)果是1 |
+ | 加法 | 3+2結(jié)果是5 |
- | 減法 | 4-3結(jié)果是1 |
優(yōu)先級:**> +-(正施籍、負(fù)號)> *、/概漱、//丑慎、%> +、-(加犀概、減號)。(可以在外面加上圓括號提升優(yōu)先級)
2)位運(yùn)算符:只適用于整數(shù)夜惭。就是按整數(shù)的二進(jìn)制位進(jìn)行運(yùn)算姻灶。
運(yùn)算符 | 功能 | 舉例 |
---|---|---|
~ | 取反(按位取反) | ~1結(jié)果為-2 |
<< | 左移 | 16<<2結(jié)果是64 |
>> | 右移 | 16>>2結(jié)果是4 |
& | 與 | 64&15結(jié)果是0 |
(豎線) | 或 | 64(豎線)15結(jié)果是79 |
^ | 異或 | 64^14結(jié)果是78 |
3)關(guān)系運(yùn)算符:包括大于、小于和等于等诈茧。用于比較兩個對象的大小产喉。
運(yùn)算符 | 功能 | 舉例 |
---|---|---|
< | 小于 | 5<3結(jié)果是False |
> | 大于 | 5>3結(jié)果是True |
<= | 小于等于 | 2.4<=8.7結(jié)果是True |
>= | 大于等于 | 2.4>=8.7結(jié)果是False |
== | 等于 | 2==2結(jié)果是True |
!= | 不等于 | 2!=3結(jié)果是True |
關(guān)系運(yùn)算符的運(yùn)算順序是從左往右,結(jié)果是布爾型值True或False敢会≡颍可以對數(shù)值進(jìn)行比較,也可以對字符串進(jìn)行比較鸥昏。數(shù)值比較時按值的大小進(jìn)行比較塞俱,字符串的比較則是按ASCII碼值的大小進(jìn)行比較,特別是字符數(shù)超過1時,要按照關(guān)系運(yùn)算符左右兩邊的字符串從第1個字符開始依次對對應(yīng)位置的字符進(jìn)行比較吏垮。
特別地障涯,Python中可以用“3<4<7”表示數(shù)學(xué)中的聯(lián)系不等式。
4)邏輯運(yùn)算符:用于條件比較復(fù)雜的情況膳汪。
運(yùn)算符 | 功能 | 舉例 |
---|---|---|
not | 非 | True結(jié)果是False |
and | 與 | True and False結(jié)果是False |
or | 或 | True or False結(jié)果是True |
結(jié)果都是布爾型值True或False唯蝶。
優(yōu)先級:not>and>or。
提示:邏輯運(yùn)算有一個稱之為短路邏輯的特性:邏輯運(yùn)算符的第2個操作數(shù)有時會被“短路”,實(shí)際這是為了避免無用地執(zhí)行代碼遗嗽。
優(yōu)先級:算術(shù)運(yùn)算符>位運(yùn)算符>關(guān)系運(yùn)算符>邏輯運(yùn)算符粘我,但按位取反運(yùn)算符“~”的優(yōu)先級位于算術(shù)運(yùn)算符的正負(fù)號“+、-”和乘方“**”之間痹换。
3.控制結(jié)構(gòu)有幾種征字?break和continue的用法
1)順序結(jié)構(gòu):是最簡單的算法結(jié)構(gòu),算法中列出的操作步驟是順序執(zhí)行的娇豫,操作的排列順序與執(zhí)行順序一致柔纵,每個操作能且僅能被執(zhí)行一次。
2)選擇結(jié)構(gòu):是根據(jù)條件判斷的結(jié)果控制不同分支執(zhí)行的算法結(jié)構(gòu)锤躁,也稱為條件結(jié)構(gòu)搁料。
①if語句
if 表達(dá)式:
語句序列
執(zhí)行時先計算表達(dá)式的值或详,若結(jié)果為True,則執(zhí)行內(nèi)嵌語句序列郭计;否則霸琴,不執(zhí)行任何語句。這種形式稱為單分支結(jié)構(gòu)昭伸。
②else子句
if 表達(dá)式:
語句序列1
else:
語句序列2
執(zhí)行時先計算表達(dá)式的值梧乘,若結(jié)果為True,則執(zhí)行語句序列1庐杨;否則选调,執(zhí)行語句序列2。這種形式稱為兩路分支結(jié)構(gòu)灵份。
提示:if-else兩路分支結(jié)構(gòu)中仁堪,else必須與if對齊,并且它們所在語句的后面必須帶上冒號填渠。
在Python中也可以用專門的條件表達(dá)式(也稱三元運(yùn)算符)來實(shí)現(xiàn)弦聂。
x if c else y
執(zhí)行過程為先計算表達(dá)式c(條件),若條件為真氛什,則返回x(正確)莺葫;否則,返回y(錯誤)枪眉。
注意:條件表達(dá)式在Python的所有運(yùn)算符中優(yōu)先級最低捺檬。
③elif子句
if 表達(dá)式1:
語句序列1
elif 表達(dá)式2:
語句序列2
elif 表達(dá)式2:
語句序列2
······
elif 表達(dá)式N-1:
語句序列N-1
else:
語句序列N
elif是“else if”的縮寫。執(zhí)行時先計算表達(dá)式1的值贸铜,若結(jié)果為True欺冀,則執(zhí)行語句序列1;否則萨脑,計算表達(dá)式2隐轩,若結(jié)果為True,則執(zhí)行語句序列2渤早,以此類推职车,若表達(dá)式1至表達(dá)式N-1的計算結(jié)果都為False,則執(zhí)行else部分的語句序列N鹊杖。這種形式稱為多分支結(jié)構(gòu)悴灵。
④嵌套的if語句
if 表達(dá)式1:
if 表達(dá)式2:
語句序列1
else:
語句序列2
else:
if 表達(dá)式3:
語句序列3
else:
語句序列4
注意:嵌套的if結(jié)構(gòu)要特別注意else與if的匹配,Python中基于縮進(jìn)匹配if和else骂蓖。
3)循環(huán)結(jié)構(gòu):是滿足一個指定的條件积瞒,每次使用不同的數(shù)據(jù)對算法中的計算或處理步驟完全相同的部分重復(fù)計算若干次的算法結(jié)構(gòu),也成為重復(fù)結(jié)構(gòu)登下。
①while語句
while 表達(dá)式:
語句序列
執(zhí)行時計算(條件)表達(dá)式的值茫孔,當(dāng)給定的條件成立叮喳,即表達(dá)式的結(jié)果為True時,執(zhí)行語句序列(循環(huán)體)缰贝,繼續(xù)判斷表達(dá)式的值是否為True馍悟,若是,則繼續(xù)執(zhí)行循環(huán)體剩晴,如此周而復(fù)始锣咒,直到表達(dá)式的值為False或發(fā)生異常時停止循環(huán)的執(zhí)行。
注意點(diǎn):
Ⅰwhile語句是先判斷再執(zhí)行赞弥,所以循環(huán)體有可能一次也不執(zhí)行毅整。
Ⅱ循環(huán)體中需要包含能改變循環(huán)變量值的語句,否則绽左,若表達(dá)式的結(jié)果始終是True悼嫉,則會造成死循環(huán)。
Ⅲ要注意語句序列的對齊, while語句只執(zhí)行其后一條或一組同一層次的語句妇菱。
②for語句
for 變量 in 可迭代對象:
語句序列
執(zhí)行時變量取可迭代對象中的一個值承粤,執(zhí)行語句序列暴区,再取下一個值1闯团,繼續(xù)執(zhí)行語句序列。
③嵌套循環(huán)
一個循環(huán)語句的循環(huán)體也可以是另一個循環(huán)語句仙粱,內(nèi)層循環(huán)語句的循環(huán)體還可以是一個循環(huán)語句房交。這種一個循環(huán)結(jié)構(gòu)的循環(huán)體內(nèi)包含另一個或多個循環(huán)結(jié)構(gòu)被稱為嵌套循環(huán),也稱為多重循環(huán)伐割,其嵌套層數(shù)視問題復(fù)雜程度而定候味。while語句和 for語句可以嵌套自身語句結(jié)構(gòu),也可以相互嵌套隔心,可以呈現(xiàn)各種復(fù)雜的形式白群。
④break,continue語句
Ⅰbreak語句終止當(dāng)前循環(huán)硬霍,轉(zhuǎn)而執(zhí)行循環(huán)之后的語句帜慢。
Ⅱcontinue用在while循環(huán)和for循環(huán)中,用來跳過循環(huán)體內(nèi)的continue后面的語句唯卖,并開始新的一輪循環(huán)粱玲。
⑤循環(huán)結(jié)構(gòu)中的else子句
else子句還可以在while語句和for語句中使用,使用時else子句放在while和for語句的下面拜轨,如果循環(huán)是從正常出口(即while后的表達(dá)式為False時或for語句后面的迭代正常結(jié)束時)結(jié)束退出的抽减,則執(zhí)行else子句;若非正常迭代結(jié)束退出(如因為執(zhí)行了break語句而提前退出循環(huán))橄碾,則不執(zhí)行else子句卵沉。
⑥特殊循環(huán)——列表結(jié)束
Python中有一種特殊的循壞颠锉,即通過for語句結(jié)合if語句,利用其他列表動態(tài)生成新列表偎箫,這種特殊的輕量級循環(huán)稱為列表解析木柬。
[表達(dá)式 for 表達(dá)式1 in 序列1
for 表達(dá)式2 in 序列2
···
for 表達(dá)式N in 序列N
if 條件
]
列表解析中的多個for語句相當(dāng)于for結(jié)構(gòu)中的嵌套使用。
4.支持的數(shù)據(jù)結(jié)構(gòu)有哪些種類淹办,其使用特征分別是什么(映射眉枕?列表···)?注意類型的可變可不變
1)基本類型
①整型(int)
注:在Python 3.x中怜森,整型不再嚴(yán)格區(qū)分int和long(長整型)速挑。
②布爾型(bool):布爾型是整型的子類,只有True和False兩個值(注意大小寫區(qū)別)副硅。
③浮點(diǎn)型(float):浮點(diǎn)型類似于數(shù)學(xué)中的實(shí)數(shù)姥宝。
④復(fù)數(shù)型(complex):復(fù)數(shù)表示成“實(shí)數(shù)+虛數(shù)”的形式,其中虛數(shù)部分用“j”表示(j是虛數(shù)恐疲,j*j=-1)腊满,虛數(shù)部分必須有“j”。特別地培己,虛數(shù)部分“0j”前面的“0”不能省略碳蛋。
提示:復(fù)數(shù)可以分離實(shí)數(shù)部分和虛數(shù)部分,imag屬性返回虛數(shù)部分省咨,real屬性返回實(shí)數(shù)部分肃弟。復(fù)數(shù)的共軛可以用conjugate()方法返回。
2)序列類型
①字符串:字符串是用引號引起來的字符集合零蓉。在Python中可以使用單引號笤受、雙引號、三引號(三個單引號)表示字符串敌蜂。
序列通過索引來訪問元素箩兽,索引值從0開始。
除了利用索引值訪問單個字符外章喉,還可以利用切片操作進(jìn)行多個字符的訪問汗贫。
②列表
其為可變?nèi)萜鳌?br>
③元組
其和列表有很多相似的地方。但最大的區(qū)別在于元組是不可變的囊陡,也就是說芳绩,元組中的元素值是不能改變的,因此有很多適用于列表的函數(shù)/方法都不能用于元組撞反。
④range對象:Python中使用range()函數(shù)生成一個不可變的整數(shù)序列妥色。常常用在for循環(huán)中。
3)字典
字典是Python中唯一的一種映射類型遏片。字典也是容器嘹害,它能存儲多個元素撮竿,每一個元素都由一個鍵和一個值構(gòu)成的鍵值對組成。字典使用不可變的對象作為鍵笔呀,常見的是用字符串作為鍵去索引一個值幢踏,值的數(shù)據(jù)類型比較多樣化,可以是任意類型的Python對象许师。
字典用大括號“{}”表識房蝉。
但與序列類型使用數(shù)值索引訪問元素不同。字典通過鍵來訪問值微渠。
*注意:由于Python是一種強(qiáng)類型的語言搭幻,所以在運(yùn)算中變量類型不能自動轉(zhuǎn)換,因此表達(dá)式“1+'2'”運(yùn)算時會產(chǎn)生TypeError異常逞盆。
5.Python關(guān)鍵詞用法
關(guān)鍵詞 | ||||
---|---|---|---|---|
False | None | True | and | as |
assert | break | class | continue | def |
del | elif | else | except | finally |
for | from | global | except | if |
import | in | is | lambda | nonlocal |
not | or | pass | raise | return |
try | while | with | yield |
6.for range的用法
循環(huán)語句——for 和range的用法:https://blog.csdn.net/weixin_42213622/article/details/84331884
7.常用轉(zhuǎn)義字符的功能檀蹋,如\n,\t
以反斜杠“\”開頭緊跟轉(zhuǎn)義字符云芦。
字符 | 說明 |
---|---|
\0 | 空字符 |
\t | 橫向制表符 |
\n | 換行 |
\r | 回車 |
" | 雙引號 |
' | 單引號 |
\ | 反斜杠 |
\(在行尾時) | 續(xù)行符 |
\ooo | 值為八進(jìn)制數(shù)ooo的字符 |
\xhh | 值為十六進(jìn)制數(shù)hh的字符 |
8.文件的使用
1)文件的打開和關(guān)閉
①文件的打開
②文件的關(guān)閉**
2)文件的基本操作
①文件的讀寫
②文件的定位
③文件的其它操作
9.程序中縮進(jìn)的作用
關(guān)于 python 的縮進(jìn):https://blog.csdn.net/wosind/article/details/100012180
10.type()的用法
type() 函數(shù)如果你只有第一個參數(shù)則返回對象的類型俯逾,三個參數(shù)返回新的類型對象。
type(object)
type(name, bases, dict)
name -- 類的名稱舅逸。
bases -- 基類的元組桌肴。
dict -- 字典,類內(nèi)定義的命名空間變量堡赔。
11.輸入和輸出的用法
1)input()函數(shù)
x = input(['輸入提示'])
由于input()函數(shù)的返回值類型是str识脆,因此有時需要使用int()和float()等函數(shù)將獲得的輸入數(shù)據(jù)轉(zhuǎn)換成需要的類型设联。
x = int(input(['輸入提示']))
x = float(input(['輸入提示']))
在input函數(shù)的使用中還可以利用eval()函數(shù)將輸入的字符串當(dāng)成有效的Python表達(dá)式求值善已。
2)print()函數(shù)
print(對象1,對象2,···,對象n,sep=' ',end='\n')
輸出時用參數(shù)sep表示輸出對象之間的分隔符,默認(rèn)為空格离例,參數(shù)end的默認(rèn)值為'\n'换团,表示print()函數(shù)輸出完成后自動換行。
為了增強(qiáng)輸出的可讀性宫蛆,print()函數(shù)也提供了與C語言中的printf()函數(shù)類似的格式化輸出形式:
print('格式字符串' % (對象1,對象2,···,對象n))
格式字符串由一個“%”和格式運(yùn)算符及一些修飾符組合而成艘包。但在Python 3.x中它已基本被str.format()替代。
"格式化模板".format(對象1,對象2,···,對象n)
其中耀盗,格式化模板使用大括號“{}”作為特殊字符想虎。
12.len()用于不同類型的運(yùn)算結(jié)果
python中l(wèi)en()的用法:https://blog.csdn.net/u013176681/article/details/51000657
13.id()的用法
id()函數(shù)返回對象的唯一標(biāo)識符,標(biāo)識符是一個整數(shù)叛拷。
Python中id()函數(shù)用于獲取對象的內(nèi)存地址舌厨。
id([object])
object -- 對象
14.in的用法
Python中in的用法小結(jié):https://blog.csdn.net/qq_32649581/article/details/89874056
15.split()的用法
split()通過指定分隔符對字符串進(jìn)行切片,如果參數(shù) num 有指定值忿薇,則分隔 num+1 個子字符串裙椭。
str.split(str="", num=string.count(str))
str -- 分隔符躏哩,默認(rèn)為所有的空字符,包括空格揉燃、換行(\n)扫尺、制表符(\t)等。
num -- 分割次數(shù)炊汤。默認(rèn)為 -1, 即分隔所有正驻。
16.切片用法
徹底搞懂Python切片操作:http://www.reibang.com/p/15715d6f4dad
17.dict(zip(··))的用法
Python: 字典dict: zip():https://www.cnblogs.com/baxianhua/p/8072824.html
18.sum()用于set的結(jié)果
19.sum(range(…))的用法及結(jié)果
例:sum(range(…))的值為45。
20.list(range(6))的結(jié)果
[0抢腐,1拨拓,2,3氓栈,4渣磷,5]
21.is的用法
Python中 ==,is的使用:http://www.reibang.com/p/5beaf24eafd6
22. myStr = "python" myList = list(enumerate(myStr)) print(myList[3])
23.列表的append()用法
append() 方法用于在列表末尾添加新的對象授瘦。
list.append(obj)
obj -- 添加到列表末尾的對象醋界。
24.集合的運(yùn)算及結(jié)果
例:
25.局部變量的作用域
Python的變量的作用域(全局變量和局部變量):https://blog.csdn.net/qq_38934189/article/details/106412995
26.判斷素數(shù)的算法
n = int(input("輸入一個正整數(shù)n:"))
if n < 2:
print("n不是素數(shù)")
else:
for x in range(2,n): # 生成2到n的數(shù)提完,不包括n
if n % x == 0: # 除數(shù)不包括1和n本身形纺,所以在此循環(huán)中只要能被其它數(shù)整除,就代表不是素數(shù)
print("n不是素數(shù)徒欣!")
else:
print("n是素數(shù)逐样!")
27.列出所有組合,如用1角打肝,2角和5角組成1元的所有組合等的算法
[total=i*1+j*2+k*5 for i in range(0,100)
for j in range(0,50)
for k in range(0,20)
if(10==total)
print(i,j,k,對象n,sep=' ',end='\n')
]
28.判斷閏年的算法
year = int(input(“請輸入一個年份:”))
if year%4==0 and year%400==0:
print(“閏年”)
elif year%4==0 and year%100!=0:
print(“閏年”)
else:
print(“平年”)
29.求最小公倍數(shù)的算法(函數(shù))
def lcm(x, y):
if x > y:
greater = x
else:
greater = y
while(True):
if((greater % x == 0) and (greater % y == 0)):
lcm = greater
break
greater += 1
return lcm