repl.it 除了可以讓你線上寫 code 之外,也可以自學。先申請一個帳號,登入後在右上角會出現功能列:learn/teach, student, my repls
點入 learn/teach 後下面就會出現很多線上課程,像是 Python, Javascript 等等,我目前是在試 Auto-Graded Course with Solutions 這個課,主要是教你怎麼寫程式,如果你之前有學過 C++ 之類的可能會比較容易上手。
(點圖可以放大)
如果直接連上上面那個網址,就會出現下面這個 coding 的頁面,最左欄是檔案夾,你可以登入後把你寫的東西存入。中間那欄是寫 code 的地方,寫好後點上面的 "run",就會在最右邊那欄跑出來。
例如你在中間欄打入:
a = int(input()) b = int(input()) print(a + b) |
input() 這個功能是接受使用者輸入的東西,下面會解釋。
int() 的功能跟 R 的一樣,是指 integer,把輸入的東西變成數字的整數。str() 則是可以把數字變成 string。
print() 就是顯示出 () 裡面的結果
之前關於 Python 的那篇有簡單介紹一下,有興趣的可以先看那篇。(注意,這兩篇教的都是 Python 3.xx 以上的版本,Python 2.xx 的語法會有點不同。例如在 Python 2.xx 的版本裡,input() 的預設是 integer,但是在 Python 3.xx 裡則是 string,所以在上面的例子裡,a 和 b 需要用 int(input()) 把輸入的東西變成 integer,而在 Python 2.xx 的版本裡的話則不用,直接用 input() 讀出來的就是數字。)
上面寫好的 code 在跑了之後就會呈現在右欄,也就是你輸入的第一個數字會是 a,第二個數字會是 b,然後它會算出 a + b。所以當我輸入 3 和 5 後,它會算出 8,變成下面這樣:
3 5 8 |
上面的 3 和 5 是我輸入的數字,8 是它算出來的。
在 R 裡面設定一個 variable 是用 <-,例如上面的例子,在 R 裡面可以寫成這樣: a <- 3 b <- 5 print(a + b) |
之前那篇有提過,Python 讀取的資料型態分為三種:string (字), integer (整數), float (有小數點的)。在數字外加 str() 就會把它變成 string。另外,在 print() 的功能裡,在字的外面加上 " " 或是 ' ' 的話,就會把它變成 string。用 int() 功能就會把獨到的東西變成 integer。
上面的程式簡單介紹了 integer,接下來介紹一下 string 會在哪裡用到。如果你想要在使用者輸入自己的名字後,出現歡迎詞 "Hello, xxx!",那要怎麼寫呢?我們來拆解一下句子。
Hello, xxx! 這個句子可以拆成三部分:
"Hello, " 是 string。
"xxx" 是使用者輸入的名字,也就是 input()。
"!" 是 string。
要如何把這三個東西結合在一起變成一個句子顯示出來呢?有兩個方法,一個是用 +,另一個是用 , 。
在 Python 裡面,+ 除了有數學的功能,在 print() 裡面還有結合顯示的功能。
所以這個句子要讓它呈現,需要這樣寫:
print("Hello, " + input() + "!") |
Hello, 和 ! 因為是 string,所以要用 " " 括起來。注意,"Hello, " 的後面有個空格,它也是 string 的一部份,所以要放進去,如果沒有放進去,逗號的後面就會直接連名字,變成:
Hello,xxx! |
如果是用 , 的話,就是在每組字後面加 , ,而且每組之間會出現空白, 也就是說上面用 + 時需要自己加空格的部分,用 , 的話就不需要。例如上面的句子用 , 寫的話,就是這樣:
print("Hello,", input(), "!") |
不過,因為每組字中間會出現空格,所以你輸入名字後,出現的會是:
Hello, xxx ! |
你也可以把使用者輸入的名字指定為一個 variable,例如 name,指令寫成這樣:name = input()
於是,中間欄的程式碼可以這樣寫:
name = input() print("Hello, " + name + "!") print("Hello,", name, "!") |
跑了程式之後,當你在右邊輸入名字,它就會出現:
Peter Hello, Peter! Hello, Peter ! |
Peter 是你輸入的名字,"Hello, Peter!" 和 "Hello, Peter !" 是程式讀取後顯示出來的 greetings,看出用 + 和用 , 的不同了嗎?
另外,+ 和 , 除了空格這個部分不一樣外,還有一個就是 + 不同種類的不能相加在一起,也就是說 interger 和 string 不能相加在一起顯示,需要把它們變成同類。用 , 的話則沒有這個限制。
例如我想要讓使用者輸入自己的名字和年齡後,出現這樣的句子:xxx is ??? years old
我們可以把句子拆成這樣:
"xxx" 是使用者輸入的名字,所以是 input()。
"is" 是 string
"???" 是使用者輸入的年齡,所以是 input()。
"years old" 是 string
跟上面一樣,可以把名字指定為 name,年齡指定為 age。
name = input() age = input() |
然後用 + 來寫的話就是:(注意要自己空格和把數字改為 string)
print(name + " is " + str(age) + " years old") |
用 , 來寫的話則是:
print(name, "is", age, "years old") |
除了讓使用者輸入,Python 跟 R 一樣也可以指定 variable,例如我們可以指定 year 為 1990,birthmonth 為 Feb。
year = 1990 birthmonth = "Feb" print(birthmonth, year) |
Feb 是 string 所以要加 " "。上面的程式碼跑出來就會在右欄顯示出:
Feb 1990 |
把上面的程式碼混在一起,比較完整的打在中間那欄:
name = input() age = input() birthmonth = "Feb" year = 1990 print(name, "was born in", birthmonth, year) print(name, "is", age, "years old") print(name + " was born in " + birthmonth + str(year)) print(name + " is " + str(age) + " years old") |
把程式碼跑完後,在右欄輸入名字和年齡:Peter, 28
就會出現:
Peter 28 Peter is 28 years old Peter was born in Feb 1990 Peter is 28 years old Peter was born in Feb1990 |
看出用 + 和用 , 的不同呢嗎?
最後,+ 用在數字是把兩個數字加在一起,但是用在 string 是把兩個字連在一起。咦,這不是上面講過了嗎?下面用數字做例子,解釋一下為什麼要再次提出來讓大家注意。
例如我想要顯示:The sum of a and b is (a + b)
把句子拆開來看就是:(記得要把句子中的空格算進 string 裡面)
"The sum of " 是 string
a 是 input(),是數字。
" and " 是 string
b 是 input(),是數字。
" is " 是 string
a + b 是算出來的結果,是 integer。
因為句子是 string,所以要用 + 的話,需要把裡面數字的部分在 print() 裡面設為 string,於是就會變成這樣:
print("The sum of " + str(a) + " and " + str(b) + " is " + str(a + b)) |
如果用 , 的話就不需要,可以寫成這樣:
print('The sum of', a, 'and', b, 'is', a+b) |
前面說過,Python 3.xx 裡的 input() 預設是 string,所以要把 a 和 b 設為 integer。
a = int(input())
b = int(input())
另外加 c 和 d 沒有設 int() 的做比較:
c = input()
d = input()
跟 R 一樣,可以查 variable 的格式是什麼。在 R 裡面是用 class() 的功能,在 Python 裡是用 type() 。查詢 a, b, c, d 的格式:
print(type(a), type(b), type(c), type(d)) |
算算看 a + b 和 c + d 不同在哪:
print(a + b) print(c + d) |
用 + 和 , 的功能顯示:The sum of a and b is ....
print("The sum of " + str(a) + " and " + str(b) + " is " + str(a + b)) print('The sum of', a, 'and', b, 'is', a+b) |
把上面的程式碼整合,打在中間欄完整的 code 是:
a = int(input()) b = int(input()) c = input() d = input() print(type(a), type(b), type(c), type(d)) print(a + b) print(c + d) print("The sum of " + str(a) + " and " + str(b) + " is " + str(a + b)) print('The sum of', a, 'and', b, 'is', a+b) print('The sum of', c, 'and', d, 'is', c+d) |
跑程式碼後,在右邊輸入 a, b, c, d 四個數字,例如 3, 4, 5, 6,就會出現:
3 4 5 6 <class int=""> <class int=""> <class str=""> <class str=""> 7 56 The sum of 3 and 4 is 7 The sum of 3 and 4 is 7 The sum of 5 and 6 is 56 |
3, 4, 5, 6 是你輸入的數字,後面幾行是程式算出來的。可以看到 3 和 4 是 integer,5 和 6 是 string,所以 3 + 4 算出來是 7,但是 5 + 6 算出來是 56,因為是兩個 string 連在一起,而不是兩個數字加在一起。
以上,這篇的 Python 介紹就先到這吧。
沒有留言:
張貼留言
歡迎發表意見