Python教學入門小技巧,掌握這”19個語法”是關鍵!

Python教學入門小技巧,掌握這"19個語法"是關鍵!
Python教學入門小技巧,掌握這”19個語法”是關鍵!

Python教學就要教你19個超實用的語法哦!

 

很多人聽說Python程式簡單易學,前景好薪酬高,所以就想快點入門Python程式,有方法嗎?有套路嗎?當然有,不過要快速入門Python程式,我覺得這19個語法是第一站!

Python的特點

解釋型語言,無需編譯即可運行

提供了交互式命令行

基於對象的程式思想

跨平台和良好的兼容性,在WindowsMacLinux上都可運行

簡單好用而且功能強大

01中文編碼

很多同學在打開數據時會遇上亂碼問題,其原因是字符集的編碼問題。 LinuxMac默認的編碼集是UTF8,而Windows則是ASCII。如果數據編碼的字符集,和你使用Python進行處理時所用的字符集不同,則會出現亂碼問題。

另外,我個人的習慣是在Python代碼的頭部加入以下內容,其中第二行聲明了使用UTF8字符集。

#!/usr/bin/env python# coding:utf8

02變量

Python中的變量可以看作是一個個容器,裡面存放著我們需要使用到的值。

Python對變量名的要求和其他語言一樣:可以包括英文、數字以及下劃線,但不能以數字開頭,區分大小寫。當然我推薦,變量名用純英文就很好,並且取一些有意義的名稱,便於自己理解每個變量的作用。

說實話,Python教學算是一門弱類型的語言,在使用變量時無需聲明其類型。 Python中的變量包括以下幾類:數值、字符串、列表、元組、字典。

03數值

數值包括整型和浮點型,分別對應整數和浮點數,後者精度更高。

#整型a = 1#浮點型b = 2.1print a, b

04字符串

字符串也就是我們經常接觸到的文本,可以往裡面放任意長度的內容,用單引號或雙引號括起來。應當注意,中文以及中文符號只能出現在字符串內,如果在下面第三行中使用了中文輸入法的逗號,Python將報錯。

c = Hello d =你好print c, d

使用+可以拼接兩個字符串。

print c + d

使用len()可以得到字符串的長度。

print len( Hello World )

使用切片可以訪問字符串中的某個字符或某個片段。

#位置下標從0開始c = Hello World #打印結果為H,下標為0表示第一個字符print c[0]

#打印結果為d,下標為負數表示從後往前數#所以– 1表示倒數第一個字符print c[-1]

#使用:返回一個片段,冒號前後分別為開始下標和結束下標#包括開始下標,但不包括結束下標

#因此c[1:5 ]表示,返回下標從14的片段,即第二個到第五個字符print c[1:5]

#冒號前後的下標同樣可以使用負數

#或者不提供,表示從最左端開始或一直到最右端print c[1:-1], c[:5], c[3:]

05列表

列表好比一條隊伍,裡面依次存放著多個變量。列表和字符串類似,但字符串中的每個元素都是字符,而列表中的每個元素可以是任意類型的變量。

#使用[]定義一個空列表,使用append()向列表尾部添加一個元素

#如果要添加到首部,就用prepend()好了a = []a.append(1)a.append(2.1)a .append( Hello )print a

使用len()可以獲得列表的長度。

print len(a)

列表元素的按下標訪問和賦值等操作,和字符串都是類似的。

print a[1], a[-1]a[1] = 100print a

使用del刪除列表中的某個元素。

del a[0]print a

06元組

元組和列表類似,唯一的不同是元組中的元素在初始化之後不能再更改,因此可以理解成一個只讀的變量。

#使用()定義一個元組a = (1, 2.1, Hello )#嘗試修改元組中的元素會報錯a[0] = 100

07字典

字典是一種極為重要的變量類型,使用一個key來訪問相應的value,即一種鍵值對的數據形式。

#使用{}定義一個字典a = {}#使用key來賦值valuea[ k1 ] = 1a[ k2 ] = 2.1a[ k3 ] = Hello

所以能夠總結出字典和列表的不同。列表中的元素是有序對等的,所以是用下標來賦值和訪問,而字典中的元素是無序的,所以是用key來操作相應value

#也可以在定義字典和列表的同時進行賦值li = [1, 2.1, Hello ]di = { k1 : 1, k2 : 2.1, k3 : Hello }

使用has_key()判斷字典中是否有某個key

print di.has_key( k4 )

如果訪問不存在的keyPython將會報錯。在賦值的時候,如果key已經存在,則會用新的value覆蓋已有的value

08註釋

被註釋的代碼是不會運行,可以看作是寫給自己和其他程序猿閱讀的一些筆記和說明,藉此提高代碼可讀性。

#這裡是單行註釋這裡是很多行註釋

Sublime中,選中需要註釋的內容,按Ctrl+/即可完成註釋。

09保留字符

Python中,其實有一些字符串具有某些特定功能,如import class等。我們在選擇變量名時,應注意避開這些保留字符。

#以下變量賦值將報錯import = 1

10行和縮進

Python中,代碼塊的邊界不是通過大括號等符號進行顯式劃分,而是通過行的縮進實現的。連續相同縮進水平的代碼處於同一個代碼塊,在使用for while if try等語法時需要注意每行代碼的縮進。

11運算符

運算符的作用是根據已有的變量生成新的變量,主要有以下幾種:

算術運算符:+*/%,即加、減、乘、除、取餘

比較運算符:==!=><>=<=,即等於、不等於、大於、小於、大於等於、小於等於

賦值運算符:=+=-=*=/ =%=,即賦值、加賦值、減賦值、乘賦值、除賦值、取餘賦值

邏輯運算符:andornot,即與、或、非

a = 1b = 2print a + bprint a == b#等價於a = a + 3a += 3print ac = Trued = Falseprint c and d

12條件在寫代碼的時候,往往需要根據某些條件進行判斷,並根據判斷結果執行不同的分支代碼。

a = 1#單個條件if a == 1: print 11111#處理條件不成立的分支if 

a == 2: print 22222else: print 33333#多個條件,加多少個都可以if 

a == 1: print 11111elif a == 2: print 22222else: print 33333

需要注意的是,但凡出現了ifelif ,就需要加上相應的條件判斷,並且注意代碼的縮進。在Sublime中輸入if會出現相應的提示,可以方便地補全代碼,在換行時光標也會自動跳到合適的縮進處。

13循環

如果需要打印從1100100個數,肯定不會傻傻地寫100print代碼,而是會用循環來處理類似的重複性工作。

14 while循環

while循環的思想是,只要某一條件成立,就不斷執行循環體裡的代碼,直到條件不再成立。

flag = 1while flag < 10: print flag    

#一定要記得在循環體裡修改條件變量    

#否則可能導致死循環flag += 1

15 for循環

for循環的循環次數一般是事先預知的,將一個標誌變量從某個起始值迭代到某個終止值後即結束。

# x0開始,一直到9結束for x in xrange(0, 10): print x

可以用for循環方便地遍歷列表和字典。

li = [1, 2.1, Hello ]dict = { k1 : 1, k2 : 2.1, k3 : Hello }

#遍歷列表,這裡的item只是一個臨時變量,取別的名稱也行for item in li: print item

#遍歷字典的全部key,這裡的key也只是一個臨時變量,名稱不重要for key in dict.keys(): print key

#遍歷字典的全部value,這裡的value也只是一個臨時變量,名稱不重要for value in dict.values(): print value#同時遍歷keyvaluefor key, value in dict.items(): print key, value

16循環控制

循環控制主要包括三種: pass continue break

pass表示什麼也不做,只是佔一行代碼的位置;continue表示立即退出本輪循環,繼續執行後續輪循環;break表示立即推出循環,後續循環也不再執行。

for x in xrange(0, 10): if x == 5: pass else: print xfor x in xrange(0, 10): if x == 5: continue print xfor x in xrange(0, 10): if x == 5: break print x

17時間

在處理數據時,很多地方都會涉及到時間,例如數據產生的時間。先介紹一下時間戳的概念,時間戳指的是從197011000秒開始,到某一時刻所經歷的秒數,可以是整數或者小數,後者的精度更高。

為什麼需要時間戳這樣的一個概念?因為對於同一個時刻,不同人的描述可能不同,畢竟文本的形式千變萬化,而時間戳使得時間的表達得到了統一,每個時刻只能用唯一的整數或浮點數來表示,同時也便於計算時間差這樣的處理。

#來看一下當前時刻的時間戳吧import timet = time.time()print t, type(t)

關於時間戳,最常用的處理便是時間戳和時間文本之間的轉換,例如將20161011000秒轉為時間戳。

import time#時間文本轉時間戳,精確到秒a = 2016-10-01 10:00:00 a = int(time.mktime(time.strptime(a, %Y-%m-%d %H:% M:%S )))print a#時間戳轉時間文本b = int(time.time())b = time.strftime( %Y-%m-%d %H:%M:%S , time.localtime (b))print b

其中, %Y %m等都是時間字段,前者表示四位的年份,後者表示兩位的月份。

文件

文件操作包括向文件中寫內容,以及從文件中讀內容,使用open()打開一個文件。

#寫文件#重新寫模式,打開文件時會將文件內容清空fw = open( data.txt , w )#追加寫模式,打開文件後保留原始內容,繼續寫入for x in xrange(0, 10) : #將整數轉成文本再寫入fw.write(str(x)) #也可以每次寫入之後換行,

為轉義字符,表示換行# fw.write(str(x) +  

 )fw.close ()#讀文件fr = open( data.txt , r )#一行一行地讀,line只是個臨時變量,取別的名稱也行for line in fr: print line #如果每行後面有換行,可以將換行符去掉,使內容更緊湊# strip()可以去掉字符串兩端的空白字符# print line.strip()fr.close()

18異常Python代碼中可能會出現一些可以預知的問題。

例如字典訪問的key不存在。如果不加處理,發生問題的時候Python便會報錯並退出,可能之前跑了很久又要重頭再來。因此,我們需要對可能出現的異常進行捕捉和處理。異常的結構由try except else finally四部分組成。

try: #嘗試執行這些代碼print 1 / 0except Exception, e: #如果出現異常就進行處理# e為出現的異常類型print eelse: # try裡的代碼沒有出錯#可以執行後續工作了print沒有出錯finally: #無論是否出錯,都會執行的代碼print一定會執行

19函數

函數的作用是代碼模塊化,將可以重用的代碼封裝成一個函數,這樣在需要使用的時候就只需調用寫好的函數即可,而不用再重新寫一遍代碼。

函數的使用包括兩個部分,函數的定義和函數的調用。除此之外,函數可以有一個或多個參數,參數之間以逗號分開,為函數的功能提供更多的靈活性。

#定義函數def hello(name1, name2): print Hello + name1 + + name2#調用函數hello( Python ,  JavaScript )

感謝您的閱讀,以上就是為您分享的如何快入門Python教學程式的第一站——19個語法,你學會了嗎?更多Python相關的內容盡在達內Python培訓機構官網,敬請關注!

免責聲明:內容和圖片源自網絡,版權歸原作者所有,如有侵犯您的原創版權請告知,我們將盡快刪除相關內容。

 

 

 

推薦文章:
SEM 關鍵字廣告課程讓高三生提早就定位 開始接案賺錢!


擺脫設備工程師血汗職涯, 零基礎的我成功轉職 Python 資料工程師


AI 甩尾技術勝 Ken Block!方程式冠軍車手嘆:要失業了


44歲媽咪順利轉職網頁設計師, 家庭事業都得意


汽車的人工智慧革命開始!AI 如何引發各家汽車廠牌的技術革新?


學完Python然後呢?其實這”四大領域”需要你!!


中國自主開發語言”木蘭”被爆抄襲Python?!


人工智慧產業大革命!!跟上潮流都要會Python?!(上)

控制結構搞不定?Python大師幫幫你(11)-計算機實作

控制結構搞不定?Python大師幫幫你(11)-計算機實作
控制結構搞不定?Python大師幫幫你(11)-計算機實作

你認識Python所有的控制結構嗎?還不會的話,就跟著我們一起來認識吧!(十一)

 

本文是 Python 項目實做:一個簡單的計算器。本實作應用了 Python 的基本函數與概念:while 迴圈if 條件判斷式elif 寫法type conversion類型轉換

每個部分說明了 Python 程式的不同部分。

第一部分是計算機的起始畫面,最主要是讓用戶一直不斷輸入,直到用戶輸入「exit」為止,因此使用了while 迴圈

while True:
   print("選項:")
   print("輸入 '+' 讓兩個數值互加")
   print("輸入 '-' 讓兩個數值互減")
   print("輸入 '*' 讓兩個數值互乘")
   print("輸入 '/' 讓兩個數值互除")
   print("輸入 'exit' 來結束程式")
   user_input = input(": ")

   if user_input == "exit":
      break
   elif user_input == "+":
      ...
   elif user_input == "-":
      ...
   elif user_input == "*":
      ...
   elif user_input == "/":
      ...
   else:
      print("不知道你在輸入什麼")

上述程式還沒寫完,只完成了起始畫面與結構。接下來我們針對每個小部分來寫 Python 程式碼:

加法的部分:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))

Python教學中,當用戶輸入「+」後,程式就會提示輸入兩個數字。以上我們使用 float()函數,來將用戶輸入的數字強制轉變成浮點數。但是若用戶輸入的不是數字,程式就會 GG。

接下來,我們寫的程式碼,最主要是用來執行用戶輸入的兩個數字,完成加總並且將結果輸出。Python 程式碼如以下所示:

elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 + num2)
    print("答案是 " + result)

以此類推,減法的部分為:

elif user_input == "-":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 - num2)
    print("答案是 " + result)

以此類推,乘法的部分為:

elif user_input == "*":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 * num2)
    print("答案是 " + result)

以此類推,除法的部分為:

elif user_input == "/":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 / num2)
    print("答案是 " + result)

程式寫好,執行成果如下:

 

 

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(10)-for迴圈

控制結構搞不定?Python大師幫幫你(10)-for迴圈
控制結構搞不定?Python大師幫幫你(10)-for迴圈

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(十)

看這一篇之前,建議先看過這一篇「Python控制結構5.while 迴圈」複習一下 while 迴圈。

Python教學中,如果我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都會各執行一次。

for 迴圈 vs. while 迴圈

之前我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。

while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。本次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。

以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:

count=0 
while count <= 5: 
    print(count)
    count = count + 1    

上述範例結果為:

0
1
2
3
4
5

上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:

for count in range(0,6,1):
  print(count)

上述例子結果為:

0
1
2
3
4
5

有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?

因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用 Range數列來訂定起始值、結束條件與調整方法,是不是很精簡又方便的?Python 的 range 函數的詳細用法請見這一篇。

下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:

the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
for bandname in the_BIG4:
    print(bandname+" is a thrash metal band.")

上述例子結果為:

Megadeth is a thrash metal band.
Metallica is a thrash metal band.
Anthrax is a thrash metal band.
Slayer is a thrash metal band.

這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 結果如下所示:

the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
counter = 0
max_index = len(the_BIG4)-1

while counter <= max_index:
   bandname = the_BIG4[counter]
   print(bandname + " is a thrash metal band.")
   counter = counter + 1

比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以有機會遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!

 

 

 

 

 

推薦文章:

 

 

控制結構搞不定?Python大師幫幫你(9)-數列生成

控制結構搞不定?Python大師幫幫你(9)-數列生成
控制結構搞不定?Python大師幫幫你(9)-數列生成

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(九)

Python 中的「range」函數可以用來生成數字序列,如果沒有指定,數字序列就會由「0」開始。下例指定數字序列生成到 20 個,如下例所示:

numbers = list(range(20))
print(numbers)

上述範例結果為:

[0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19]

Python 的「range」函數可以用來生成由零開始的數字序列,但是我們仍然可以指定起始值如下:

numbers = list(range(7, 14))
print(numbers)

print(range(20) == range(0, 20))

上述例子結果為:

[7, 8, 9, 10, 11, 12, 13]

True

一般在Python教學中,我們除了可以輸入兩個參數,指定序列的起始值外,其實還可以指定第三個參數(必須為整數),藉此定義每個數字中間間隔為多少。如下所示:

numbers = list(range(7, 14, 2))
print(numbers)

上述例子結果如下所示:

[7, 9, 11, 13]

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(8)-函數

控制結構搞不定?Python大師幫幫你(8)-函數
控制結構搞不定?Python大師幫幫你(8)-函數

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(八)

 

Python 的 List 串列【基本的List串列說明,可以參考本篇:Python控制結構6.List串列】中,我們不僅可以隨意替換、索引 List 中的物件【請參考:Python控制結構7.List串列與其他運算子的應用】我們可以利用「append」來增加串列中的物件。如下例所示:

GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(GearList)

上述範例結果為:

['BCD', '調節器', '蛙鞋', '潛水面罩']

我們可以使用「len」來計算 List 串列中有多少物件:

GearList = ["BCD", "調節器", "蛙鞋"]
print(len(GearList))

上述例子結果為「3」。

「len」可與「append」合用,Python 語法範例如下:

GearList = ["BCD", "調節器", "蛙鞋"]
GearList.append("潛水面罩")
print(len(GearList))

上述例子結果為「4」。

剛剛提到,在 Python 中我們可以使用「append」來增加串列中的物件。但是「append」都是把物件增加在串列的最後面。如果希望物件增加到串列的中間,就得用「insert」:

GearList = ["BCD", "調節器", "蛙鞋"]
index=1
GearList.insert(index,"潛水面罩")
print(GearList)

結果為:

['BCD', '潛水面罩', '調節器', '蛙鞋']

以上範例,我們在 List 串列那一行的後方,加入了「index=1」,指定索引號碼為「1」。所以,”潛水面罩”這物件就被安插在索引序號為「1」的位置。

Python教學中 的 List 串列用法可說是多樣化。我們甚至可以使用「index」來查看指定物件的索引序號如下:

GearList = ["BCD", "調節器", "蛙鞋"]
index=2
GearList.insert(index,"潛水面罩")
print(GearList.index("BCD"))
print(GearList.index("蛙鞋"))
print(GearList.index("調節器"))
print(GearList.index("潛水面罩"))

結果為:

0
3
1
2

你知道嗎? List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行哦!【請參考:Python控制結構10.for迴圈

 

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(7)-串列與運算子應用

控制結構搞不定?Python大師幫幫你(7)-串列與運算子應用
控制結構搞不定?Python大師幫幫你(7)-串列與運算子應用

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(七)

List 串列-重新定義物件

在「Python控制結構6.List串列」中,我們了解了基本的 List串列索引的概念。一般在 Python教學 中,同一 List 串列內的任一物件(元素),不是固定的,物件是可以隨時替換的,如下:

 

GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
GearList[5] = "Dry Suit"
print(GearList)

上述範例結果為:

['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', 'Dry Suit']

是否注意到最後一個物件(索引編號:5)從 “潛水衣” 變成了 “Dry Suit”?

List 串列-print時增加、複製物件

Python 中,也可以使用運算子「+」、「*」,來使 List 串列被輸出時,可以增加、複製物件。如下面例子所示:

GearList = ["BCD", "調節器", "蛙鞋", "潛水面罩", "氣瓶", "潛水衣"]
print(GearList+["潛水電腦"])
print(GearList*2)

結果如下(以一行指令、一行輸出結果的方式表示):

>>> print(GearList+["潛水電腦"])
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', '潛水電腦']

>>> print(GearList*2)
['BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣', 'BCD', '調節器', '蛙鞋', '潛水面罩', '氣瓶', '潛水衣']

以上範例的結果,第一個程式碼在輸出時增加了”潛水電腦”;第二個輸出的結果為原有程式碼的兩倍。

檢查 List 串列表中的物件

我們可以在 print 時,運用「in」運算子來檢查指定的物件(元素)是否在串列中。若有,則回傳為 True;反之為 False。寫法為如下方範例所示:

Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print("榴蓮" in Fruits)
print("草莓" in Fruits)
print("牛肉" in Fruits)

結果為:

True
True
False

以上Python範例,還可以搭配「not」運算子【not 運算子請參考:Python控制結構3.布林邏輯:and,or,not】來檢查指定的物件(元素)是否「沒有」在串列中。若沒有,則回傳為 True;有的話則為 False。

Fruits = ["芭樂", "榴蓮", "柳丁", "草莓"]
print(not "榴蓮" in Fruits)
print("榴蓮" not in Fruits)
print(not "草莓" in Fruits)
print("牛肉" not in Fruits)

結果為:

False
False
False
True

除了上述介紹的 List 串列索引功能之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數】。

List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(6)-串列

控制結構搞不定?Python大師幫幫你(6)-串列
控制結構搞不定?Python大師幫幫你(6)-串列

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(六)

List 串列

List 串列 是 Python 中表示資料的方法(資料結構),意思是有順序地將一系列的物件集合在一起,具有索引特性。

 

List 串列的語法,是用「[]」包覆一系列的物件,每個物件(元素)均使用逗號「,」區隔,如以下例子所示:

GearList = ["Scuba BCD", "Scuba Diving Regulator", "Diving Fins", "Diving Mask", "Scuba Tank", "Wet Suit"]
print(GearList[0])
print(GearList[1])
print(GearList[2])
print(GearList[3])
print(GearList[4])
print(GearList[5])

上述範例結果為:

Scuba BCD
Scuba Diving Regulator
Diving Fins
Diving Mask
Scuba Tank
Wet Suit

注意:List 串列的語法中,第一個物件(元素)的索引號為 0,而不是 1。

我們還可以創建沒有物件的 List 串列,如下所示:

empty_list = []
print(empty_list)

結果如下:

[]

List 串列中所包含的元素種類眾多,有字串(string)、整數與浮點數、變數等,甚至在包含另一個 List 串列(也是以「[]」包覆)。一個 Lise 串列可以囊括不同種類的物件,如下所示:

變數 = 3
一堆雜物 = ["string", 0, [1, 2, 變數], 4.56]
print(一堆雜物[1])
print(一堆雜物[2])
print(一堆雜物[2][2])

以上範例結果如下所示:

0
[1, 2, 變數]
3

上述的 「print(一堆雜物[2][2])」意思為輸出列表中索引「2」的物件列表中的索引「2」物件,該物件為「變數」,而變數等於三,故 print(一堆雜物[2][2]) 的結果為「3」。

字串 (strings) 類型也可以逐字被索引

Python 字串類型的物件,也可以像 List 串列一樣,逐字被索引。我們可以輸入 print(str[n]) 指令,讓他抓出字串元素的第 n+1 個字。【關於字串,請參考:Python基本概念第四課-Strings字串

 

在字串中,第一個字母的索引號也是 0,而不是 1。

str = "潛水用具包含 BCD、水肺等."
print(str[0])
print(str[1])
print(str[6])
print(str[9])
print(str[10])
print(str[14])

結果如下(以一行指令、一行輸出結果的方式表示):

>>> print(str[0])
潛
>>> print(str[1])
水
>>> print(str[6])
 
>>> print(str[9])
D
>>> print(str[10])
、
>>> print(str[14])
.

由此可見,不管是全形、半形、中文、英文、空格、標點符號等等,全部在 Python 程式裡面都可以被索引出來哦!

Python教學中,學會了 List 串列,可以應用的地方非常廣。無論是本章介紹的基本索引功能,也有進階的索引用法【請參考:Python控制結構7.List串列與其他運算子的應用】,除此之外,你也可以活用各種函數來增加索引中的物件或是計算索引中的物件數量【請參考:Python控制結構8.List-append,insert,index,len函數

List串列尚可搭配 for 迴圈,讓 List串列中的所有物件都可以被 Python 程式執行!【請參考:Python控制結構10.for迴圈

 

 

 

 

 

推薦文章:

 

 

控制結構搞不定?Python大師幫幫你(5)-while迴圈

控制結構搞不定?Python大師幫幫你(5)-while迴圈
控制結構搞不定?Python大師幫幫你(5)-while迴圈

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(五)

Python-while 迴圈

Python教學中的 if 條件判斷式【請參考:Python控制結構2.if else條件判斷(1)】,假設評估為 True【請參考:Python控制結構1.布林值Boolean-True or False?】 的話,就會執行一次;反之則不執行。

Python 的 while 迴圈跟 if 條件判斷式相似,但是不同的是,它不只執行一次。只要條件成立,它就會不斷地重複執行。就算是有其中一段代碼被評估為 False,下一段代碼仍然會被執行。

while 迴圈構成,包含了 。

以下示範的 while 迴圈中有一個變數「i」,初始值為「1」;更新值(又稱為調整值)為「i+1」;讓迴圈結束的條件為「i <=5」。

以下示範是讓 i 的從初始值開始,程式每執行一次,i 就等於上一回合的數值再「+1」一次,直到 i 等於 5 為止停止,寫法如下:

i = 1 #初始值
 while i <=5:       #讓迴圈結束的條件
    print(i)
    i = i + 1       #更新值 (調整)

則結果為:

1
2
3
4
5
>>>

while迴圈的「infinite loop(無限循環)」

Python 的 while 迴圈中,有一種被稱作「infinite loop(無限循環)」,當條件(為True)成立時,程式就會永無止盡地重複執行。

「infinite loop(無限循環)」的範例如下:

while 7==7:
  print("這是無限循環迴圈")

結果,「這是無限循環迴圈」這行字就會不斷的重複顯示。

如果你真的受不了,你可以按鍵盤快速鍵「Ctrl-C」來阻止它繼續重複顯示。

以下也是無限循環迴圈的另一個例子,看看它的結果如何。

x=1
>>> while x>0:
         print(x)
         x+2

結果馬上會跳出一堆數字,且不斷的在跳出中。後出來的數字,都是前一個數字 +2 的結果。真的受不了,就按鍵盤快速鍵「Ctrl-C 」跳出吧!

跳出while迴圈:break

要結束 while 迴圈循環,就得使用 break 敘述。在迴圈循環時,一遇到 break 敘述,就會讓迴圈立即停止循環。範例如下:

i = 1 #初始值
while 1==1:
  print(i)
  i = i + 1  #更新值 (調整) 
  if i >= 5: #讓迴圈結束的條件
    print("Breaking")
    break
>>>

上述的代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 為「5」時,就輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果為:

1
2
3
4
Breaking

繼續while迴圈:continue

Python 的 while 迴圈中,有一個與 break 敘述相對的,就是 continue —— 跳回到迴圈的頂部繼續循環,而不是停止循環。

i = 1 #初始值
while True:
  print(i)   
  i = i + 1  #更新值 (調整) 
  if i == 5: 
    print("Skipping 5")
    continue
  if i == 7: #讓迴圈結束的條件
    print("Breaking")
    break

上述的 Python 代碼,意思若「1 等於 1」的敘述為真,則 i 就從 1 開始輸出,之後程式跑到「i = i + 1」,i 就以 i+1 的形式繼續循環輸出,直到 i 等於「5」時,就輸出「Skipping 5」並且跳回到迴圈的頂部「print(i)」繼續從「5」循環,直到 i 等於「7」時輸出「Breaking」並結束循環。因此這段 Python 程式的執行結果如下所示:

1
2
3
4
Skipping 5
5
6
Breaking

 

 

 

 

 

 

推薦文章:

 

 

 

控制結構搞不定?Python大師幫幫你(4)-運算子優先順序

控制結構搞不定?Python大師幫幫你(4)-運算子優先順序
控制結構搞不定?Python大師幫幫你(4)-運算子優先順序

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(四)

運算子優先順序(operator precedence)在包含 Python 以及其他的程式語言都是很重要的概念。它是屬於數學運算順序(如先乘除後加減)概念的延伸,其中也包含其的他運算子,如布林邏輯中的運算子等等。

下方例子顯示出 「==」比起其他的運算子,順序更為優先:

>>> False == False or True
True
>>> False == (False or True)
False
>>> (False == False) or True
True

下方表中列出了 Python教學常見的運算子的優先順序,優先順序由高至低如下:

** 指數 (最高優先順序),範例:2**3 = 8
~,+,- 按位翻轉、正號和負號 (最後兩個的方法名稱為「[email protected]」和「[email protected]」)
*,/,%,// 乘、除、餘數 地板除法(只取整數的除法)
+,- 加法、減法
>>,<< 右移、左移運算子
& 位元運算子的「與」
^ | 位元運算子的「XOR」、「OR」
in, not in, is, is not, >, <, >=, <=, !=, == 各式比較運算子(關係運算子)
not 布林運算子「not
and 布林運算子「and
and 布林運算子「or
= %= /= //= -= = *= **= 各式賦值運算子

Python 的運算子的優先順序,可藉由以下的例子練習。猜猜看以下 Python 原始碼的結果會如何呢?

x = 4
y = 2
if not 1 + 1 == y or x == 4 and 7 == 8:
  print("Yes")
elif x > y:
  print("No")

結果顯示如下:

>>>
No
>>>

 

 

 

推薦文章:

 

控制結構搞不定?Python大師幫幫你(3)-布林邏輯

控制結構搞不定?Python大師幫幫你(3)-布林邏輯
控制結構搞不定?Python大師幫幫你(3)-布林邏輯

還在為Python所有的控制結構傷腦筋嗎?不用怕,跟著我們的腳步一起認識它們吧!(三)

一般而言,當 Pythonif 條件判斷式(複習if…else條件判斷式請看這篇)變得更複雜,如果有超過一種狀況時,就會使用 Boolean Logic 布林邏輯式來解決。

Python教學中的 Boolean 運算子包含三種:and(和)、or(或)、not(不是)。

and 運算子包含兩個條件參數,當兩個條件都成立時,才會被評估為「True」。只要其中有一個不成立,則為「False」。【參考:Python控制結構1.布林值Boolean-True or False?

>>> bool( 1 == 1 and 2 == 2 )
True
>>> bool( 1 == 1 and 2 != 2 )
False
>>> bool( 1 < 1 and 2 >= 2 )
False
>>> bool( 1 < 1 and 2 != 2 )
False

下方 Python 程式例子為只要符合「年滿18歲」及「低消超過180元」才會輸出「welcome」的例子哦。

age=21
money=500
if age >= 18 and money >= 180:
 print("welcome")

結果顯示如下:

>>>
welcome
>>>

Python 的 or 運算子包含兩個參數,只要其中有一個條件成立,就會被評估為「True」。兩個條件都不成立才會被判定為「False」

>>> bool( 1 == 1 or 2 == 2 )
True
>>> bool( 1 != 1 or 2 == 2 )
True
>>> bool( 1 != 1 or 2 != 2)
False

下方例子為只要符合「年滿65歲」或是「你付超過3000元」兩條件任一種,就會輸出「You’ll get a Wacken Open Air 2020 ticket」的例子

age=77
money=0
if age >= 65 or money >= 3000:
 print("You'll get a Wacken Open Air 2020 ticket")

結果顯示如下:

>>>
You'll get a Megadeth concert ticket
>>>

not 運算子只有包含「一個」條件參數,條件成立(就是合乎邏輯)就會顯示為「False」。條件不成立才會被判定為「True」

>>> bool( not 1 == 1 )
False
>>> bool( not 1 != 1 )
True

下方例子為只要不符合「年滿18歲」就會顯示「未滿18歲不得進入」的例子

age=14
if not (age>=18):
 print("未滿18歲不得進入")

結果顯示如下:

>>>
未滿18歲不得進入
>>>

 

 

 

 

 

 

推薦文章: