06.28 Python基礎(下)

閱讀本文大概需要:8分鐘


一、Python交互界面

在Python剛安裝完的時候,有提供了一個Shell交互工具,在開始菜單裡面可以找到。

Python基礎(下)

打開後的界面是這樣的。

Python基礎(下)

這個界面可以在菜單欄中直接打開,也可以打開系統的命令提示符(開始 - 所有程序 - 附件 - 命令提示符)中輸入python進入該界面。

Python基礎(下)

在這個界面裡,可以直接輸入代碼執行,比如

Python基礎(下)

我們可以看到,它可以直接進行計算,也可以把數值賦值給a和b,再用a和b進行計算。而在進行比較的時候很明顯a是小於b的,所有a>b的情況下會返回一個False,b>a則會返回一個True,這個就是布爾類型了。

在進行條件判斷時候,當一個條件返回True的時候,就算執行該條件下的代碼,當返回False的時候,就會跳過該代碼。比如:

Python基礎(下)

因為a=100,b=200,a>b是不成立的,根據之前講的條件判斷邏輯,所以跳過了第一個print,執行了第二個print。

在接下去的學習中,大部分內容都可以直接在這個交互界面中練習。

二、List和Tuple

1、list

List這是python內置的數據類型——列表。它是一種有序的集合。舉個例子,列出幾大球類名稱,並賦值給balls。它的格式是這樣子的

list

balls = ['足球','籃球','羽毛球','排球']

這裡的變量balls就是一個集合,它包含了足球、籃球、羽毛球、排球這幾個元素。在交互界面輸入balls就會打印出它的元素來,如圖:

Python基礎(下)

我們也可以直接根據參數的位置來打印參數(計算機中,是從零開始計數的,所以第一個位置都是0,第二個位置是1)如圖:

Python基礎(下)

也可以倒數著來

Python基礎(下)

在Python中list是可變的有序集合,可以通過Python內置的函數做如下一些操作

  • 在list後面添加元素(使用append函數);
  • 刪除指定位置的元素(使用pop函數);
  • 替換指定位置的元素(直接指定list某個位置的元素進行替換);
  • 添加元素到指定位置(insert函數)。
  • 可參照下圖:
Python基礎(下)


list很靈活,它的元素可以是多種類型(整型、字符串、布爾類型等等)的,甚至是另一個list。例如:

L=['b',123,True,['小明','小花']]

2、tuple

tuple也是有序的集合,基本和list相似,不同的是tuple是不可變的,一開始給定什麼元素就是什麼元素,無法像list那樣進行操作。list是用[]括起來的,而tuple是用()括起來的。如

#tuple是用()的
balls=('足球','籃球')
#注:如果要定義只有一個元素的tuple,需要使用number2的寫法。因為(1)在Python中就是1的意思,所有這裡的number不是一個tuple,而是一個整數變量。
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內置的,如果你瞭解過其他語言的話,它在其他語言中被稱為map。是以(key-value)的形式保存數據的 ,查詢的速度很快。

代碼示例

#考試結束後,公佈成績,通過同學的名字查找對應的成績,如果用list的話就需要兩個list

names = ['小明', '小花', '大偉']

scores = [95, 75, 85]

#用dict的話是這樣的,注意大括號

result = {'小明': 95, '小花': 75, '大偉': 85}

#查詢小明成績

result['小明']

在dict中,一個key只對應一個value,也就是說小明對應的就是95分。如果把95改為85,那麼小明對應的就是 85分。這這和現實情況是一樣的。

新增一個key-value的話也很簡單

#這樣就會存入一個key是小虎,value是110的元素了。
result['小虎']=110

如果key不存在的話,是查不到的。在程序中直接查詢一個不存在的key會導致程序出錯。在python中有兩種方法來判斷一個key是否存在於一個dict中。

判斷dict中是否存在某個key

#有英語基礎的話應該很好理解這個代碼的含義,如果小明有在result中的話,程序會返回一個True,否則返回一個False
'小明' in result
# 用get的話,如果沒有設置一個返回參數,那麼key不存在時,就會返回None,如果設置了返回參數,如-1,則會不存在時會返回-1.
result.get('小明')
result.get('小明',-1)

刪除一個dict中的元素和list有點類似

#刪除成功的話,會返回小明對應的value
result.pop('小明')

dict不是有序的,它存放元素的順序和放入元素的順序無關。

跟list比起來它插入速度和查詢速度很快,不會隨著元素的增加而變慢,而list會隨著元素的增加而越來越慢。再一個就是dict相對會比較佔用資源。

可以理解為,dict是用空間換取了時間。雖然佔用更多內存資源,但是速度更快,節省了時間。

2、set

set和dict相似,區別在於它只有key,沒有value。所以,它的key是不能有重複的。(在dict中輸入同一個key,其實也是覆蓋原有key的value),創建一個set,需要提供一個list為輸入集合,如

s = set([1,22,333])

雖然傳入的是一個list的元素,但是實際上它的長度是三個元素。如果傳入的list有重複的元素,它會自動過濾掉重複的元素。

添加元素的話是用add函數,它支持添加重複元素,不過不起效果。

#添加4到s裡

s.add(4)

刪除元素是用remove函數。

s.remove(4)

set的元素也是無序的且沒有重複。如果有兩個set,我們也可以對它做交集、並集的操作進行元素過濾。如

s1 = set([1,2,3,4])

s2 = set([3,4,5,6])

#&和數學中的交集含義相似

s1 & s2

# | 和數學中並集含義相似

s1 | s2

至於執行結果什麼樣,在交互界面打印一下就知道了。

四、循環

1、for和while

在上面中,我們知道,如果直接輸入balls會打印出balls中所有的元素。那麼,如果我們想一個一個打印出來呢?那就得用到循環了。循環有兩種寫法:

循環語句

#用for來寫循環
balls=['a','b','c','d']
for ball in balls:
print(ball)
#用while來寫循環,計算1+2+3+4;n++是指n=n+1
n = 0
sum = 0
while n<5:
sum = sum + n
n++
print(sum)

2、break和continue

在循環中添加break的話,是指直接結束循環;而添加continue的話是指跳過本次循環進入下一次循環。

continue用法

n = 0
while n < 10:
n = n + 1
if n % 2 == 0: # 如果n是偶數,執行continue語句
continue # continue語句會直接繼續下一輪循環,後續的print()語句不會執行
print(n)

break用法

n = 1
while n <= 100:
if n > 10: # 當n = 11時,條件滿足,執行break語句

break # break語句會結束當前循環
print(n)
n = n + 1
print('END')


分享到:


相關文章: