Python基本認識與R的比較
markdowm
==此處為文章備份用==
有興趣可至
https://hackmd.io/@LHB-0222/Python_Base
觀看全文
學習R也有三年多了 在使用的過程中也常接觸到Python 兩者語法與使用上有許多差異 這算是第一篇學習紀錄Python的文章 希望將兩者的差異進行一個比較以利後續再使用上不會有混淆的狀況
[TOC]
註解符號
與R語言一樣註解可以使用井字號 ==#== 但不同的是多了一個多行註解的方式 在上下三個單引號或是雙引號間的文字都為註解
"""
print("A")
"""
#print("B")
print("C")
:::success C :::
變數命名
在python中變數的賦值是使用等號 = 而並非R常用的小於減號 ==<-== 在變數的命名上為使用大小寫英文字母、底線 ==_== 、以及數字所組成 當然也可以用中文字但建議少用 最大的不同地方在於==小數點無法==作為變數使用
參考R編程風格指南中的範例R的變數命名為下方所列
variable.name :+1: avg.clicks :-1: avg_Clicks ,avgClicks
FunctionName :+1: CalculateAvgClicks :-1: calculateavgclicks , calculateAvgClicks
而在python中變數命名可能就像下面這樣
variablename :+1: Avg_Clicks ,AvgClicks :-1: avg.clicks
FunctionName :+1: CalculateAvgClicks :-1: calculateavgclicks , calculateAvgClicks
基本計算
四則運算
跟R平時所用的加(+)、減(-)、乘(*)和除(/)一樣
x = 2 + 4
y = x - 6
z = (y + 4 ) * x
z / x
餘數和商數
與R語言不同的在於R計算餘數所使用的符號是"%%", 整除所使用的符號是"%/%"
#計算9除以6的餘數
9 %% 6
#計算12除3的商數
12 %/% 3
:::success 3 4 ::: 而python餘數是使用單一個百分比符號 ==%== 而商數是使用兩個除號 ==//==
#計算9除以6的餘數
9 % 6
#計算12除3的商數
12 // 3
:::success 3 4 :::
次方或平方根
R語言的次方的符號是 ==**== 或 ==^==,平方根是使用函數sqrt()也可以0.5次方替代 ``` R=
計算2的平方
2 ** 2
計算2的3次方
2 ^ 3 ``` :::success 4 8 ::: 而python則只能使用兩個乘號 ==**==
# 計算2的10次方
2 ** 10
# 計算4的平方根
4 ** 0.5
:::success 2048 2 :::
指派運算子
Python 具備一種很便利的指派運算子可以讓我們的程式更簡潔 在R中是無法使用的
| 運算子 | 範例 | 說明 | |:------:|:------:|:-------:| | += | a += b | a = a+b | | -= | a -= b | a = a+b | | *= | a *= b | a = a-b | | /= | a /= b | a = a*b | | %= | a %= b | a = a/b | | //= | a //= b | a = a//b | | **= | a *= b | a = a*b |
a = 10
a = a + 10
a =+ 10
多重賦值
在R與Python中都可以進行多個變數同時賦值 例如R
a <- b <- c <- 10
a
b
c
:::success 10 10 10 :::
Python
a = b = c = 10
a
b
c
:::success 10 10 10 :::
在Python中甚至可以一次給不同變數賦予不同的值
a, b, c = 10, 20, 30
a
b
c
:::success 10 20 30 ::: 也可以利用這特性來進行變數的交換
a, b, c = c, b, a
a
b
c
:::success 30 20 10 :::
物件變數
在R語言中刪除特定變數使用的是==rm()== 在python中則是使用 ==del==
若要查詢變數R語言可以使用 ==ls()== 取得 而Python似乎可以使用globals(),locals(),vars()和dir()這類內建的函數取得變量列表但使用過後就發現會出現許多不需要的變數資料 但在Jupyter中可以使用特殊的魔術指令 ==%who== 就可以取得所有變數名稱
參考資料與書籍
> Python入門邁向高手之路王者歸來 > [name=洪錦魁 , 2017/12/21]
留言
張貼留言