好,那我們呢,現在可以來講講 input 跟 print 了。
這個東西在之前的課程中已經介紹過了。
input 就是你可以用來讓身為一個 user 你可以打字,從鍵盤打字
然後讓電腦取得你輸入的內容,基本上就是這個用途。
那麼今天呢,我們要刻意來理解這件事情,就是 user
不管打什麼,input 讀它的時候呢,都是 把它當成字串再讀進來。
所以有時候我們必須 要做 casting。
然後呢,以便我們可以做合理的 處置。
那麼這裡是例子。
我呢,第一個 program 裡面是 num1,
我呢,請使用者輸入,然後轉成整數;num2 也請使用者輸入,然後轉成整數。
然後把它們 sum 的結果 print 出來。
右邊這個 program 呢,不知道是故意的呢,還是是不小心的呢,
input 的東西直接存給 num1、 num2 了,所以這個時候的 num1、 num2 它們會是 string。
相較於左邊的 num1、 num2 是 int,就是不一樣的。
所以這個加法在 string 它是會串起來,而不是像
integer 會加起來,所以這個就會顯出明顯的差別。
那我們來試一下。
好,這個是例子一。
它請我輸入兩個整數,好啊,那不如就輸入 56 跟 12。
就會看到結果是 68,因為是兩個整數相加嘛,這個沒有問題。
但今天如果我們,就是如剛剛所說的
我們不知道是不小心也好,還是是故意地也好,我們呢,是直接把兩個字串加起來,
會發生什麼事情?56 跟 12,欸,就會變成
5612,那可以理解, 對吧,因為它現在是兩個字串,而不是兩個整數了。
所以換句話說,今天看你的程式要做什麼。
如果你確實是要做整數運算的話,那你這裡勢必就要做 casting,勢必就要做形態轉換。
不然你是沒有辦法做你需要的整數運算的。
好,那我們來看看 print。
print 呢,是看你傳什麼東西進去,就把它 print 出來。
那麼 那些東西在被 print 的時候啊,事實上程式會自動幫你把它轉成字串。
然後再印出來。
那麼呢,今天,因為字串可以被 concatenated,可以被串在一起,
所以我們要印東西的時候,我們要 print
東西 的時候,我們事實上可以把好多個資訊
都串起來,然後再一起印出來,以便達到我們想要的修飾或者是格式化的 效果。
那這些 pieces of variables or
values 有的時候呢,叫做 token,就是硬要翻的話就是代幣啦。
那就是一個一個一個東西的那個概念。
好,那我們呢,這個時候我們可能因為要區隔 token
的關係,所以我們會使用 comma operator,就是逗點。
那看看是什麼意思。
這裡是一個例子。
我今天呢,如果請使用者
輸入兩個整數,然後我確實把它們轉成整數了,所以我就要把它們加起來,直接加起來可能覺- 得很沒意思。
我可能想要告訴使用者說,欸,這加起來的值是若干,
所以我想要在前面來印出 the sum is 的這個資訊。
那這個時候呢,我們仔細看一下第三行,第三行的 print
裡面就放了兩個 token,或者是兩個 item,它們是用逗點隔開的。
前面這一個東西是一個字串,也沒問題嘛,後面這個東西本來是一個數字,
它會先被轉成字串,然後再跟前面串在一起,所以我們很快地試一下。
嘿。
那現在要請我們輸入兩個整數了,沒有問題,好,56 跟 12。
就看到 the sum is 68,那這個感覺好多了,對吧。
不然你直接看到一個 68 呢,你也不知道它在 幹什麼,那感覺就有點怪。
所以,這個 用一個逗點來把你要印的東西隔開,
並且串在一起的這個功能,在很多時候都是很方便的。
那這個時候,有一些同學如果 眼尖的話,不免就會發現:誒,老師啊,這好像有點怪怪的,我
the sum is 後面其實沒有東西, 然後就直接接這個數字了。
可是我剛剛隱約好像看到一個空格啊,是我看錯了嗎? 不,沒有看錯。
今天我在剛剛那個程式碼裡面呢,在 s 在 s
跟後面那個數字中間的確有一個空格,所以同學們如果剛剛有看到的話,非常不錯啊。
好,那這是怎麼一回事呢?是因為 Python 在我們使用逗點把兩個東西隔開的時候,
它自動地會在中間串一個空白鍵進去,那理由是什麼?以剛剛那個例子的話,你
可以理解,我們講的是這程式碼,程式語言是 這個英美人士發明的嘛,所以呢,基本上就是用
英美或是歐系的語言在看待這些事情的。
這樣子的東西和下面要接的東西,中間 理所當然地要空一格,所以它才會預設成就是只要你是用逗點隔開
兩個 item,那這兩個 item 要串在一起的時候,中間它就會自己幫你加一個空格。
那有的時候是很方便的,但有的時候很麻煩。
怎麼說呢,看這個例子。
這個例子是說 請使用者輸入一個值,是他所謂的他的 income,就是月薪或者是年薪之類的。
然後我們就說,我的收入是若干元,這個時候我想要在前面加上一個錢字號,
那我們來看看會發生什麼事。
就這麼一個簡單的 program,我想要在 income 的前面加上一個錢字號的話, 假設我賺了
1000 元,那麼加上錢字號會發生什麼事情呢?就會變成 錢字號和
1000 中間隔了一個空格嘛,那你可以理解為什麼,因為它說逗點就要插空格。
那不是啊,我們現在就是不要空格的話,該怎麼辦?
那這個有很多辦法,那我們這裡就教你一個比較簡單的。
簡單的方式呢 就是我們在串東西的時候,不要讓 Python
幫我們用逗點來串,而是我們 自己用加號來串,那這樣子的話,你就可以控制你什麼時候要空格,什麼時候不要空格了。
所以比如說這個例子吧,我就把 income 先自己轉成 str,轉成字串。
然後呢,再用加號把字串 1 跟字串 2 串起來。
那用加號的時候,當然就是有什麼 就串什麼,它不會再幫你加一些有的沒的。
那這種情況下,你就可以保證 哦,就不會有那個空格了。
好,那這裡有個重點,就是你不先 cast
的話是不行的,因為加號兩側如果都是字串它才會串起來,如果一個是字串,一個是整數的話- 就不行。
那我們來試一下。
好,首先先試試看這個正常的例子。
所以呢,假設今天打工賺了 1000 元, 開心,my
income is $1000,那這個就很 ok。
如果 今天呢,我嘗試要做一些別的事情。
例如說,我忘記這裡 應該要把它這個先轉型,然後再串起來的話,會發生什麼事情?
輸入個 1000,欸,跟你說錯了。
這個加號的左右,應該要要么都是字串被串起來,要么 都是整數或小數被加起來,你不能
左邊是字串,右邊是數字,那這樣到底是要幹什麼? 不知道。
所以 Python 在這個時候會跟你說,你這個程式錯了,你應該要先 幫其中一個東西做 casting 才行。
那在這個例子裡呢,當然就是我們要幫 str 做 casting,出來的東西……對不起,幫
income 做 casting,出來的東西才會是對的。
那麼,這個簡單的例子就是給我們講說,如果你想要把那個空白鍵刪掉的話,
大概是可以,是這樣子的做法。
好,那麼呢,我們再來看看另一個例子。
這個例子是說啊,請你輸入兩個整數。
然後呢,告訴我說它是 x y 坐標上面的 什麼值,或者說是什麼坐標點,或是什麼向量。
比如說,如果它輸入 3 跟 2, 我就想要看到
3,2,然後是 (3, 2) 這個樣子。
那這個稀里嘩啦的,講起來挺複雜,不過我們看一下程式碼就好了。
好,我們會讓使用者輸入 num1
跟 num2, 然後我們 print "the vector
is 左括弧 一個數字,逗點,一個數字,右括弧。
這個地方大家在看的時候啊會發現,這個程式碼有的時候 是灰色的,有的時候是黑色的,大家仔細看的話,會看出一點差別。
那這無非就是這個編輯器在幫你,就是說這一段灰色的是一個字串,
這一段黑色的是一個變數,灰色是字串, 這個是變數等等。
大家仔細小心地讓你的雙引號可以成對, 就不會出什麼問題。
好,那我們試一下,比如說我想要 3 跟 2,就會發現 the vector is ( 3,
2 ),然後中間出現了一些奇奇怪怪的這個空白鍵。
所以呢,我們現在來試著 remove 這些空白鍵吧。
那麼一個簡單的做法就是我們從頭到尾 都使用加號、 加號、 加號。
那這裡呢,則是使用逗點。
這個是在幹嘛,我們來看一下。
這個時候出現的是我們想要的樣子。
括號跟 3 中間沒有空格,2 跟括號中間沒有空格,但是逗點後面還是有空一格。
那這個無非就是我們在寫英文文章,英文數學符號
等等的時候的標準規格,逗號後面要空格,但其他地方是不應該要有空格的。
好,那這裡是另一種寫法。
可以看到差別基本上就是這裡是個加法,這裡是個加號,而這裡我們手動地幫它空一格。
3、 2,好,你可以看到產出來 的結果是一模一樣的。
那麼這個地方呢,大家可以想一想,
哪一種寫法比較好?這個跟這個都是對的,它可以印出我們想要的樣子,而這裡用的是逗點,
這裡用的是手動空一格了以後,加號。
那基本上 應該是沒有誰比誰好,就是純粹是個人習慣而已。
你可以習慣寫上面那一種,也可以習慣寫下面那一種。
但總之你要知道,用逗點的時候,用逗點隔開, 它會自己幫你空一格,用加號則不會。
另外用逗點隔開 的話,你其實有些東西就不用自己轉成 string, 但是用加號的話,就要。
熟悉規則的話,自然就沒有什麼好壞之別,只要 你喜歡、 你習慣、 你用地順,就可以了。