閱讀本文大概需要:8分鐘
一命咐、Python交互界面
????????在Python剛安裝完的時候谬运,有提供了一個Shell交互工具溅呢,在開始菜單里面可以找到。
打開后的界面是這樣的炼蛤。
????????這個界面可以在菜單欄中直接打開妖爷,也可以打開系統(tǒng)的命令提示符(開始 - 所有程序 - 附件 - 命令提示符)中輸入python進入該界面。
在這個界面里理朋,可以直接輸入代碼執(zhí)行絮识,比如
???????我們可以看到,它可以直接進行計算嗽上,也可以把數(shù)值賦值給a和b次舌,再用a和b進行計算。而在進行比較的時候很明顯a是小于b的兽愤,所有a>b的情況下會返回一個False彼念,b>a則會返回一個True,這個就是布爾類型了浅萧。
????????在進行條件判斷時候逐沙,當一個條件返回True的時候,就算執(zhí)行該條件下的代碼洼畅,當返回False的時候吩案,就會跳過該代碼。比如:
????????因為a=100土思,b=200务热,a>b是不成立的,根據(jù)之前講的條件判斷邏輯,所以跳過了第一個print,執(zhí)行了第二個print同蜻。
????????在接下去的學習中,大部分內(nèi)容都可以直接在這個交互界面中練習冲甘。
二、List和Tuple
1途样、list
????????List這是python內(nèi)置的數(shù)據(jù)類型——列表江醇。它是一種有序的集合。舉個例子何暇,列出幾大球類名稱,并賦值給balls陶夜。它的格式是這樣子的
balls= ['足球','籃球','羽毛球','排球']
? ? ? ?這里的變量balls就是一個集合,它包含了足球裆站、籃球条辟、羽毛球黔夭、排球這幾個元素。在交互界面輸入balls就會打印出它的元素來羽嫡,如圖:
????????我們也可以直接根據(jù)參數(shù)的位置來打印參數(shù)(計算機中本姥,是從零開始計數(shù)的,所以第一個位置都是0杭棵,第二個位置是1)如圖:
也可以倒數(shù)著來
在Python中l(wèi)ist是可變的有序集合婚惫,可以通過Python內(nèi)置的函數(shù)做如下一些操作
在list后面添加元素(使用append函數(shù));
刪除指定位置的元素(使用pop函數(shù))魂爪;
替換指定位置的元素(直接指定list某個位置的元素進行替換)先舷;
添加元素到指定位置(insert函數(shù))。
可參照下圖:
????????list很靈活滓侍,它的元素可以是多種類型(整型密浑、字符串、布爾類型等等)的粗井,甚至是另一個list。例如:
靈活的list
L=['b',123,True,['小明','小花']]
2街图、tuple
????????tuple也是有序的集合浇衬,基本和list相似,不同的是tuple是不可變的餐济,一開始給定什么元素就是什么元素耘擂,無法像list那樣進行操作。list是用[]括起來的絮姆,而tuple是用()括起來的醉冤。如
tuple
#tuple是用()的
balls=('足球','籃球')
#注:如果要定義只有一個元素的tuple篙悯,需要使用number2的寫法蚁阳。因為(1)在Python中就是1的意思,所有這里的number不是一個tuple鸽照,而是一個整數(shù)變量螺捐。
number
=(1)
number2=(1,)
#有一種定義可變的Tuple的方法,就是把Tuple的元素定義為list矮燎。這樣只是list這個元素不能變定血,list自己的元素是可以變的。如:
t
=('a','b',['c','d'])
t[2][0]='f'#前面說過诞外,元素位置是從0開始的澜沟,所以這里的list位置是2,list中第一個元素位置是0
t
[2][1]='g'
三峡谊、dict和set
1茫虽、dict
????????dict是dictionary的簡稱刊苍,字典的意思。是Python內(nèi)置的席噩,如果你了解過其他語言的話班缰,它在其他語言中被稱為map。是以(key-value)的形式保存數(shù)據(jù)的 悼枢,查詢的速度很快埠忘。
代碼示例
#考試結(jié)束后,公布成績馒索,通過同學的名字查找對應(yīng)的成績莹妒,如果用list的話就需要兩個list
names = ['小明', '小花', '大偉']
scores = [95, 75, 85]
#用dict的話是這樣的,注意大括號
result = {'小明': 95, '小花': 75, '大偉': 85}
#查詢小明成績
result['小明']
????????在dict中绰上,一個key只對應(yīng)一個value旨怠,也就是說小明對應(yīng)的就是95分。如果把95改為85蜈块,那么小明對應(yīng)的就是85分鉴腻。這這和現(xiàn)實情況是一樣的。
新增一個key-value的話也很簡單
#這樣就會存入一個key是小虎百揭,value是110的元素了爽哎。
result['小虎']=110
????????如果key不存在的話,是查不到的器一。在程序中直接查詢一個不存在的key會導致程序出錯课锌。在python中有兩種方法來判斷一個key是否存在于一個dict中。
#有英語基礎(chǔ)的話應(yīng)該很好理解這個代碼的含義祈秕,如果小明有在result中的話渺贤,程序會返回一個True,否則返回一個False
'小明'
inresult
# 用get的話请毛,如果沒有設(shè)置一個返回參數(shù)志鞍,那么key不存在時,就會返回None方仿,如果設(shè)置了返回參數(shù)述雾,如-1,則會不存在時會返回-1.
result
.get('小明')
result.get('小明',-1)
刪除一個dict中的元素和list有點類似
#刪除成功的話兼丰,會返回小明對應(yīng)的value
result.pop('小明')
dict不是有序的玻孟,它存放元素的順序和放入元素的順序無關(guān)。
????????跟list比起來它插入速度和查詢速度很快鳍征,不會隨著元素的增加而變慢黍翎,而list會隨著元素的增加而越來越慢。再一個就是dict相對會比較占用資源艳丛。
可以理解為匣掸,dict是用空間換取了時間趟紊。雖然占用更多內(nèi)存資源,但是速度更快碰酝,節(jié)省了時間霎匈。
2、set
????????set和dict相似送爸,區(qū)別在于它只有key铛嘱,沒有value。所以袭厂,它的key是不能有重復的墨吓。(在dict中輸入同一個key,其實也是覆蓋原有key的value)纹磺,創(chuàng)建一個set帖烘,需要提供一個list為輸入集合,如
s = set([1,22,333])
?????????雖然傳入的是一個list的元素橄杨,但是實際上它的長度是三個元素秘症。如果傳入的list有重復的元素,它會自動過濾掉重復的元素式矫。
添加元素的話是用add函數(shù)历极,它支持添加重復元素,不過不起效果衷佃。
#添加4到s里
s.add(4)
刪除元素是用remove函數(shù)。
s.remove(4)
????????set的元素也是無序的且沒有重復蹄葱。如果有兩個set氏义,我們也可以對它做交集、并集的操作進行元素過濾图云。如
s1 = set([1,2,3,4])
s2 = set([3,4,5,6])
#&和數(shù)學中的交集含義相似
s1 & s2
# | 和數(shù)學中并集含義相似
s1 | s2
至于執(zhí)行結(jié)果什么樣惯悠,在交互界面打印一下就知道了。
四竣况、循環(huán)
1克婶、for和while
????????在上面中,我們知道丹泉,如果直接輸入balls會打印出balls中所有的元素情萤。那么,如果我們想一個一個打印出來呢摹恨?那就得用到循環(huán)了筋岛。循環(huán)有兩種寫法:
#用for來寫循環(huán)
balls=['a','b','c','d']
for ball in balls:
????print(ball)
#用while來寫循環(huán),計算1+2+3+4晒哄;n++是指n=n+1
n=0
sum=0
whilen<5:
????sum=sum+n
????n++
print(sum)
2睁宰、break和continue
????????在循環(huán)中添加break的話肪获,是指直接結(jié)束循環(huán);而添加continue的話是指跳過本次循環(huán)進入下一次循環(huán)柒傻。
continue用法
n=0whilen<10:
????????n=n+1
????????ifn%2==0:# 如果n是偶數(shù)孝赫,執(zhí)行continue語句
????????????continue# continue語句會直接繼續(xù)下一輪循環(huán),后續(xù)的print()語句不會執(zhí)行
????print(n)
break用法
n=1while? n<=100:
????????ifn>10:# 當n = 11時红符,條件滿足青柄,執(zhí)行break語句
????????????break# break語句會結(jié)束當前循環(huán)
????????print(n)
????????n=n+1
print('END')
長按下面按鈕,關(guān)注本公眾號违孝,一起交流學習吧刹前!