python画大学教室_【python入門教室】(1) 帶你一步步進入python的世界

嗨,大家好,我是心原一馬,

內心原來一心喜歡打程式碼,

久違的又要來發系列教學文啦,

這次的系列文為【python入門教室】,

希望做為【Python 超入門】的延續,

更進階的探索python語法

與【Python 超入門】系列文不同的是,

【Python 超入門】的對象是給完全程式零基礎的讀者看的,

【python入門教室】則是想寫比【Python 超入門】更進階一點的題材,

給有一些程式基礎的人看的,

如果你讀過【Python 超入門】便可繼續閱讀本系列學習

其實自己去年參加鐵人賽寫系列文時,

就是寫Python的語法教學為主題,

但小馬自己事後來看覺得有點篇幅過大,

順序編排可能不夠好,

索性重新編排再重構為【python入門教室】系列文,

希望能寫出更循序漸進的好教學

小馬的教學文歡迎有心想學的讀者互動,

如果對教學有看不懂的地方,

或寫練習題卡關,

都可以在留言區留言,

小馬會一一回覆的

那麼便進入教學吧

開發環境: Anaconda的spyder,python版本3.7

如果懶的安裝的話也可使用「線上程式編譯器- repl.it」,

直接在線上打python程式碼 (目前用repl.it的python版本則是3.8)

教學說明

spyder的右下角有個Ipython視窗(或稱shell視窗),

也就是使用者互動介面,

在上面輸入一行程式,就會跑出一行結果。

譬如在上面打簡單的基礎四則運算做範例:

有時候,一些簡單的程式指令可以直接在使用者互動介面測試,

這時,小馬即會用三個大於符號「>>>」表示你可以直接在使用者互動介面輸入程式,如:

>>> 2+3

5

>>> 6*8

48

>>> '8'+'9'

'89'

基礎知識

【Python 超入門】這篇有為python基礎語法做蠻詳盡的統整,

如果你看一看覺得很簡單那大概需要的基礎知識就沒問題

Q1: Python 如何宣告一個變數?

許多程式語言(如: c/c++)變數必須指出變數的形態,例如int x= 0,

宣告x這個變數時同時告訴程式x是一個「整數」(int)型別

在python中不必告訴程式變數的型態是什麼,

程式將自動判斷類型,

如果寫x = 0,x就是一個「整數」(int),

寫x = 3.1,x就是一個「浮點數」(float),

寫x = [1,2,3],x就是一個「列表」(list)

如果想知道一個變數是什麼型態,

可以用內建函數type()查看

譬如說你打了一行程式x = 3.0,

你不確定它應該是「整數」還是「浮點數」,

輸入type(x)即知道它是float

>>> x = 3.0

>>> type(x)

Q2: Python 有哪些常用的內建變數型態?

python有「整數」(int)、「浮點數」(float)、字串(str)、列表(list,類似其它語言說的陣列),

「布林值」(bool)、「元組」(tuple)、「集合」(set)、「字典」(dict)

在【Python 超入門】已介紹過整數、浮點數、字串、列表、布林值五種型態,

後續會將「元組」(tuple)、「集合」(set)、「字典」(dict)教完

補充那些【Python 超入門】沒講完的語法

由於【Python 超入門】系列文講的非常的淺,

有些較複雜的語法便先行略過,

再這邊把它補上

一、其實python的list可以從後面取元素

python的列表其實就是我們口語習慣說的陣列,

宣告方式中一個中括號把元素包起來:

L = [1,2,3]

陣列的index是從0開始,

譬如說L[0]=1,L[1]=2,L[2]=3。

>>> L[0]

1

>>> L[1]

2

那如果我們今天的需求比較特別,

我們要取得列表的「倒數第一個元素」,

那怎麼辦?

有一個看起來比較不那麼優雅的寫法,

觀察發現,當陣列有n個元素時,

L[n-1]就代表最後一個元素的位置,

內建函數len()可以取得一個列表的長度,

所以L[len(L)-1]即是倒數第一個元素

但有更漂亮的寫法,

python支援你直接寫負數的index,

例如說L[-1]就是L的倒數第一個元素,

L[-2]就是L的倒數第二個元素

二、range有三個參數: range(init, end, step)

在【Python 超入門】時,我們教過這樣的語法:

for i in range(1, 101):

print(i)

結果就會是

1

2

3

100

range(a,b)表示從a~b的整數區間, 包含a但不含b

但range亦可寫第三個參數,

意思是數字間隔大小,

譬如說range(1, 10, 3)指的就是「1,4,7」(不包含10)

如果range只有寫一個參數,如range(10),

其實是省略了第一個參數(默認為0),

range(10)與range(0, 10)同義,指的便是在0~9範圍的整數

如果range只有寫一個參數,如range(1, 10),

則是省略了第三個參數(默認為1),

range(1, 10)與range(1, 10,1)是同義的

基礎知識先講到這邊,

來做課後練習吧

課後練習

這邊小馬主要會挑幾題CodeWar上的題目供大家練習,由淺入深

畢竟程式語言是需要練習的,

光看語法教學不知道自己會了沒

使用CodeWar需註冊帳號,但應該不會太難 (不會的可參考這篇教學)

蠻推薦如果你真的是零基礎自學的話可以在這邊找簡單的題目練習,

應該可以找到一些打程式的手感

CodeWar的特色是只需要完成題目指定的函數,

不必自己從頭打使用者的輸入和輸出(也就是不必寫到input()和print()兩個函數)

有些人會不太習慣這種模式,如果你也卡關了,

歡迎留言諮詢

超簡易範例-兩數加法

在CodeWar做題的形式像是這樣:

(不過實際CodeWar網站是英文的,若英文不佳請自行加強)

題目要求: 希望實作一個函數,可以把兩個數字加總,譬如輸入3跟5,你的函數要回傳8

題目原型:

def add(a, b):

# your code here

解答: 函數直接回傳a+b即可

def add(a, b):

return a+b

習題

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值