James測試中

只是一介大學生,喜好著攝影、AI相關罷了,文章不定時更新,偶爾發一下技術性文章。阿,我也有Like Social喔 -- James_phto快來追蹤我,專門發廢文、跟零散照片。加我正在測試中

Python基礎語法篇#1

都進來了,何不坐下來開始學呢! 這次內容為註解、變數、基礎運算、if-elif-else、input、運算子,基礎功要打穩後面才方便阿!
註解--寫給自己看和別人看的

註解雖然會出現在程式碼裡面,但是並不會被執行,是個很適合為程式新增說明的手段
也以防萬一金魚腦不記得在寫甚麼。
在Python中,寫在#後面的文字,都會變成註解。

很重要!很重要!很重要!

變數---絕大多數typeError的問題根源

變數?意思指的是幫資料取個名字,然後再塞資料儲存進去,有點像是資料夾的概念
在程式中,每個變數會有自己的型別。那型別是什麼呢?
簡單來說,型別決定了這個變數可用來儲存什麼樣格式的資料,並且定義了相對應的操作。

簡單舉例,Python中常見的基本型別有:int (整數)float (浮點數--小數)str (字串)

從上述你大概可以知道,假設儲存年紀,整數會是不錯的選擇
BMI? 浮點數看來不錯
商品名稱? 字串是最佳首選

在Python中,宣告變數並不用事先給定型別,他會依照你給他的初始值來決定變數的型別。
接下來看看範例吧~

變數雖然能儲存資料,但資料有很多種類型、所以就會有資料型態(Type)。

補充的點:

  1. 我們可用=來給定變數初始值
  2. 我們可用type這個函式以及print來得知變數的型別
  3. 如果想要確認某變數是否為特定型別的時候,可用isinstance這個函式
基礎運算--數學運算的概念

就加減乘除但有多一點東西...,我也說不了甚麼...,直接看範例吧~

運算的禁忌!!!

事實上在程式語言的基本,我們是不能把不同類型的東西拿來做運算的
譬如你寫下圖中程式碼
解決方案很簡單,將其中之一的型態轉換成與另一同一型態
語法: int(), str(), float() ,需注意的是"a is"並不能轉成int或float(換言之就是字元)

看到沒,所以要多多注意喔!

貼心小提醒:注意看上面兩張圖片,一個我用","做區隔,另一個則用"+",這是不同的打法

進階運算--平方根、絕對值等等

函數--可拆成三個部分,比喻一下

  1. 技能名稱:像是 abs() ,就是絕對值,需使用時打上abs()即發動技能(翻開覆蓋的陷阱卡)
  2. 參數(技能所需之資料--類似於魔力):像絕對值這種技能是不可能單獨執行的,因為沒傳入東西不知道對誰做絕對值,因此需用()來丟入需要資料
  3. 回傳值 (回傳答案): 像 abs 做完就會有一個答案,但是像 print 這種技能是沒回傳答案的 (就像印表機,一直印一直印,你不會停下來等答案,因為很麻煩)

補充:

  1. abs(x) 絕對值
  2. ceil(x) 比 x 大的最小整數
  3. floor(x) 比 x 小的最大整數
  4. pow(x, y) x 的 y 次方
  5. round(x [,n]) 四捨五入,如果有帶入第二個參數,則會四捨五入到那個位數
  6. sqrt(x) x的平方根
邏輯運算子
  1. x < y X是否【小於】Y
  2. x <= y X是否【小於等於】Y
  3. x > y X是否【大於】Y
  4. x >= y X是否【大於等於】Y
  5. x == y X是否【等於】Y
  6. x != y X是否【不等於】Y
布林運算子
  1. true   真的
  2. false  假的
  3. and   且
  4. or     或
  5. not   非
If-elif-else 流程控制

別跟我說你看不懂,日常上有用到很多if-else式,
比如說 if 我今天要考試,那我要重新複習筆記,沒有 -- elif 但有作業,我要先寫完作業,還是沒有-- else 那我要去睡覺了
就有點像是這樣,if 後如果有還有那就一直用 elif 直到最後一個才要用 else
白話文 -- 達成條件要做A,未達成要做B。
這時候我們就可以用if...else來做到這件事情。

簡單用法
如果多選一是有包含關係的話,記得比較嚴苛的條件要放上面,要先經過第一次過濾

上述的例子中,有幾件事需要特別注意:

  1. 一個if...else區塊,只要其中一個條件成立,程式就會離開這個區塊。(像是多選題)
  2. 條件不需要放()之中
  3. 每個條件後面記得要有:
  4. 條件成立要做的事情,要以縮排的方式放在條件句底下 -- 很重要
  5. else if在Python寫作elif

縮排 (indentation) 是 Python 區分程式區塊 (block) 的方式,所謂程式區塊是程式中具有特定功能之處,程式區塊依據條件真或假的結果個別執行。所謂縮排也就是在程式碼開頭的地方多出一些空格數,大多會用 2 到 6 個空格之間,通常縮排的空格數為 4 個。
所以要縮排按(Tab)或按空格,擇一即可,不要tab跟空格混用,可能會報錯。

後期會很常用到喔! 要熟練

input -- 程式與外界使用者溝通的方法

python 3.x 的版本是用input,python2.x 則是raw_input
input的功能是讓使用者所有輸入的資料會被當成字串儲存起來,需要時再作轉型。

預測幾秒後座標會在哪
#請空格輸入,如1 2後按enter
x1,y1 = map(int,input().split())
x2,y2 = map(int,input().split())
time = eval(input())
x3 = (x2-x1)*time+x1
y3 = (y2-y1)*time+y1
print("(",x1,",",y1,")")
print("(",x2,",",y2,")")
print("predict the coordinates is (%d,%d) in the %d second"
      %(x3,y3,time))

map(fun,seq)方法簡單的說就是用fun這個功能函數去依次作用於序列seq中的每個元素,然後返回一個可迭代對象。(我知道你還是看不懂)所以把它拆成 input().split()看,這句的意思是可以用空格來輸入多個值進去

應該看懂得了吧,eval(input())講白話點就是將輸入值轉換成合適的型態,以防有時打數字1結果type是str的狀況。上圖最後一行程式碼,遇到的問題,可以用map(int,input().split())強制轉成int,但一樣"a is"這類的都不行,"1"可以。

結束~恭喜看到這邊的你,滿滿的程式碼看得很煩躁,但要撐住,後面會更多、更雜。

寫這種文很耗精力,希望你有認真看完,謝謝你

CC BY-NC-ND 2.0

Like my work?
Don't forget to support or like, so I know you are with me..

想學程式,卻又不知道該如何下手?

2

Want to read more ?

Login with one click and join the most diverse creator community.