2019年10月31日 星期四

Javascript入門必學5賦值運算子

Javascript入門一定要學起來的"賦值運算子"!


Javascript入門一定要學起來的"賦值運算子"!


賦值運算子

JavaScript教學 系列中,賦值運算子的賦值運算符是「=」。第一次接觸程式碼的人,可能會以為它是「等於」,但其實不是。實際上,它意味著把右邊表達式的值,賦予給左邊的運算數。


JavaScript賦值運算子 敘述 範例
x = y x = y
+= x += y x = x + y
-= x -= y x = x - y
*= x *= y x = x * y
/= x /= y x = x / y
%= x %= y x = x % y



你可以在JavaScript 中的同一行中,使用多種運算子,如在下面例子所示:


你也可以運用多種變數,例子如下:



相關文章

Javascript入門必學3資料類型

Javascript入門必學4數學運算子

Javascript入門必學6邏輯運算子

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

SEO優化時,別忘了搞定robots meta 與 robots.txt

網路行銷基礎課程-HTML5教學1-初學馬上上手免費編輯器!!

「KISS 原則」也是網路行銷課程?帶你來看這個大小通來的秘密

2019年10月30日 星期三

Javascript入門必學4數學運算子

Javascript入門者一定要學起來的"數學運算子"!


Javascript入門者一定要學起來的"數學運算子"!


 

數學運算子

JavaScript教學 系列中,數學運算子的作用是對數字也就是文字的形式或是變數的形式,進行函式運算。
運算子 敘述 範例
+ 加號 1 + 1 = 2
- 減號 2 - 1 = 1
* 乘號 2 * 3 = 6
/ 除號 10 / 2 = 5
-- 減去 var a = 10; a--; Now a =9
% 餘數 20 % 3 = 2
++ 遞增 var a = 10; a++; Now a =10
-- 遞減 var a = 10; a--; Now a =9

在下面的例子中,加號運算子是用來決定兩個數的和,如下:


你也可以運用多種變數,如下:


承第一個例子,假如我們把「var x = 20 + 30」使用字串表示,變成「var x = "20 + 30"」的話,答案就不會是 20 + 30 的和,而是以字串形式呈現,如下:


減、乘、除運算子

四則運算中,除了上述介紹的加號運算子外,JavaScript 的減、乘、除運算子範例如下:


遞增與遞減運算子

JavaScript 的遞增運算子「++」把數值加一,至於運算元的前後,意義各異:要是置於運算元的前方,則回傳被遞增的值;要是至於運算元的後方,則回傳原值,然後才遞增運算子。這樣解釋看似模糊,請見範例如下:

把遞增運算子放在運算元「y」前方的例子:


把遞增運算子放在運算元「y」後方的例子:


同理,遞減運算子「--」則是把數值減一,於運算元的前方,則回傳被遞減的值;要是至於運算元的後方,則回傳原值,然後才遞減運算子,範例如下:
把遞減運算子放在運算元「y」前方的例子:


把遞減運算子放在運算元「y」後方的例子:



相關文章

Javascript入門必學3資料類型

Javascript入門必學5賦值運算子

Javascript入門必學6邏輯運算子

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

HTML5教學之更細節的語意編碼教學

為什麼SEO優化師都在用微數據?原因是...

如何利用robots meta和robots.txt有效達到SEO優化?

2019年10月29日 星期二

Javascript入門必學3資料類型

Javascript入門"資料類型"一定要學起來!


Javascript入門"資料類型"一定要學起來!

資料類型

JavaScript教學 系列中,「資料類型(Data Types)」是一個運行程式中的值的種類。JavaScript 變數可支援各種資料類型,例如數字(類型)、字串(類型)、陣列(類型)......等。
不同於其他程式語言,JavaScript 不會因為「不同的數值類型(如整數、數值長短、浮點等)」而賦予其不同的定義。
JavaScript 的數值,是可以帶小數點的或是整數的形式呈現的˙。

See the Pen Data Type-1 by Tedutw (@Tedutw) on CodePen.

 

浮點數

JavaScript的數字可以有小數點,如下例所示

 

字串(Strings)

JavaScript「字串(Strings)」被用以承裝、處理文字。
一個字串可以是引號中的任何文字。這對引號可以使用單引號或是雙引號,如下範例:
var name = 'Márquez';
var text = "His name is Marc Márquez";
你可以在引號中,再加入引號。如單引號中加入雙引號、雙引號中放置單引號。只要兩種引號不要一樣就好。
var text = "His name is 'Marc Márquez'";
var text = 'and his opponent's name is "Valentino Rossi"';
承上例,除了使用不同樣式的引號外,我們還可以使用反斜杠(\),如下所示:
var text = "His name is \"Marc Márquez\"";
var text = 'and his opponent's name is \'Valentino Rossi\';

 

布林值(Booleans)

JavaScript「布林值(Booleans)」中,我們可以擁有一到兩個值:不是 true 就是 false。
Booleans 適用於當你需要一個資料類型,而該資料類型又只有兩個值(如「是或不是」、「對或錯」)的場合時。範例如下:



相關文章

Javascript入門必學1嵌入網頁

Javascript入門必學2變數

Javascript入門必學4數學運算子

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

SEO優化師都愛用的Robots,兩種入門款都會了嗎?

靠著這裡的HTML5教學,讓零基礎的人都如願變成高薪工程師

文字在HTML5教學裡的奧秘都在這了!

2019年10月28日 星期一

Javascript入門必學2變數

Javascript入門一定學起來的"變數"!


Javascript入門一定學起來的"變數"!


變數

JavaScript教學 系列中「變數(Variables)」可以說是用來承裝資料數值的容器。在同一程式中,變數的值是可以改變的。
JavaScript 中,則以「var」來宣告變數。寫法如下所示:
var x = 777;
在上述例子中,數值 777 被指定給變數 x。
JavaScript 對字體的大小寫是非常敏感的,大小寫會被視為不同的變數,例如變數「Name」與「name」被視為不同的變數。

等號

JavaScript 中,等號 (=) 被稱作「分配」運算子,而不是「等於」運算子。
例如,「x = y」就是「把數值 y 分配給 x」,而不是「y 等於 x」。

使用變數

現在,我們將一個值「777」分配給一個變數「x」,並將其輸出。程式碼與結果如下:
See the Pen var.js by Tedutw (@Tedutw) on CodePen.

 

為變數命名

JavaScript 的變數名稱,對於字體的大小寫是敏感的,大小寫被視為不同的變數。如下例,我們將 x 由小寫改為大寫,程式碼與結果如下:
var x = 100;
document.write(X);
See the Pen Naming Variables by Tedutw (@Tedutw) on CodePen.


因為大小寫不同的緣故,所以 x 與 X 被判定為不同的變數。因此上面的程式碼並沒有產出任何的結果。
JavaScript 變數命名原則:
  • 命名的第一個字,必須是英文字母、底線(_)或是貨幣符號($)。後續的字可以是英文字母、數字(注意:數字不能作為第一個字)、底線或是貨幣符號($)
  • 變數名稱不能包含一個算數或是邏輯運算子,像是加(+)減(-)乘(*)除(/)的的記號都不能用。注意:連接線(-)會被視為減號,因此命名中也不能含連接線。)
  • 變數名稱不能包含特殊符號,例如「my#num」、「num%」等。
  • 任何的 JavaScript 名稱都不能含有空白字元。
  • 以下圖片為「JavaScript 保留字」一覽表,表中的任何字都不能用於命名變數。

 





相關文章

Javascript入門必學1嵌入網頁

Javascript入門必學3資料類型

Javascript入門必學4數學運算子

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

網路行銷課程教你辨別黑白帽SEO

Python基礎概念知識站:基本四則運算

HTML5教學第一招-工欲善其事,必須要有免費的網頁編輯器

2019年10月25日 星期五

Javascript入門必學1嵌入網頁

想學Javascript就從嵌入網頁開始吧!


想學Javascript就從嵌入網頁開始吧!


 

JavaScript 簡介

JavaScript 是目前最普遍的程式語言之一,通常用於網頁前端開發。JavaScript 可以為網頁增添互動元素、進行數據處理,還有創建各種應用程式,例如:行動裝置 App、桌上型電腦的應用程式和游戲等。

來寫你的第一個 JavaScript 程式吧!

首先,讓我們一起來使用 JavaScript 寫出第一支程式吧!你會發現沒有你想像中的那麼難!
讓瀏覽器上顯示「Hello World!」字樣,程式碼如下:
See the Pen My first JavaScript by Tedutw (@Tedutw) on CodePen.

由以上程式碼可知:函數「document.write()」可寫入字串在 HTML 檔案中。此功能可用於編寫文字檔案以及 HTML 檔。

如何在網頁中寫入 JavaScript 腳本

我們可以在 HTML 檔中,寫入任意數量的腳本(script,JavaScript 的別稱,也可以「.js」稱呼)。通常,腳本標籤「<script>...</script>」會放在 HTML 的 <head> 與 </head> 中間:
<html>
   <head>
     <script>
     </script>
   </head>
   <body>
   </body>
</html>

 

嵌入外部的 JavaScript

除了上述可直接在 HTML 檔案中寫入 JavaScript 腳本之外,我們還可以嵌入外部現成的 JavaScript 檔案。這類現成的 JavaScript 的檔案類型為 .js 檔。嵌入外部檔的語法為「<script src="檔案名稱">...</script>」,可以放在<head>...</head>標籤或是<body>...</body>標籤之內。舉例來說,現在我們要在 HTML 中嵌入外部的 .js 檔「demo.js」,寫法如下。
<html>
   <head>
     <script src="demo.js"> </script>
   </head>
   <body>
   </body>
</html>

至於外部現成的 .js 檔,檔中文字就不能包含<script>...</script>標籤了。承上例,這個外部的 .js 檔「demo.js」內容如下:
alert("Welcome to my page!");
則執行結果如下所示:
嵌入外部JavaScript的執行結果
從外部置入 .js 檔的好處比在 HTML 檔內寫入 JavaScript 腳本還多,像是:

JavaScript 中加入註解的方法

有時在程式碼中,我們會加入註解,告知該程式碼的作用。在「/ *」和「* /」之間編寫的所有內容,都將被視為註解,可以單行也可以多行。如下所示:
<script>
    /* 這個code
    會製造出一個
    上面寫著
    「Welcome to my page!」
    的訊息對話框 */
       alert("Welcome to my page!");
</script>

  1. HTML 原始碼與 JavaScript 分開放置,較好閱讀、維護
  2. JavaScript 檔案被 cache 過後,網頁載入速度就會更快

以上就是這回的 JavaScript教學 ,期待下次的教學系列吧!


相關文章

Javascript入門必學2變數

Javascript入門必學3資料類型

Javascript入門必學4數學運算子

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

網路行銷課程之SEO黑白手法大解密!!你絕對不可以錯過!!

打入網軍軍團,網路行銷課程教你一步步慢慢來

Python課程超夯!來看看全球十大AI領導簡歷的哈佛商業評論 

2019年10月24日 星期四

SEO前先摸清敵人底細方能戰勝一切!(下)

知己知彼再SEO能戰勝一切!知道就快去分析對手的網站數據吧!


知己知彼再SEO能戰勝一切!知道就快去分析對手的網站數據吧!



在前一篇文章【SEO前,先分析競爭者的網站(一)誰是你的競爭者?】中,已經說過了,SEO 優化,可說是與其他網站競爭排名的比賽。上回我想大家都已經了解到找出網站的競爭對手的方法了。接下來,我們就要分析這些網站的各項重點數據。方法如下:

第二步:分析競爭者網站的數據


一、網站速度

網站的載入速度,會影響到搜尋引擎排名。要了解對手的網站速度,我們可在 Google 提供的免費線上工具「PageSpeed Insights」中鍵入對手網站的 URL,即可獲得概略的數據以及改善建議。

二、使用者習慣經由哪種管道來接觸這個網站?

在你完全不知道如何增加點閱率時,就可以參考對手多是經由哪些管道,來吸引使用者點入。在此,我們可以使用 SimilarWeb 來查看。承第一步的例子,你想知道使用者都是透過何種管道進入東森、UDN 等新聞網站,使用 SimilarWeb 查看後結果如下:



由上圖可以看出,UDN 的讀者來源,大部分來自 Search (搜尋引擎)輸入特定關鍵字後,進到 UDN 的網頁;而東森新聞雲的讀者最多都是從 Facebook 等 Social 社群網站的連結進來。
參考兩者,現在回到你自己經營的新聞網站,要增加點閱數,你有兩件方向可以做:做好 SEO 以增加 Search 流量以及經營 Facebook、IG 來增加 Social 流量。
流量管道的資料表現,會因著產業的不同而有著不同的流量結構。你可以再將預算花下去之前,先了解對手有在經營哪些流量管道。假如所有的對手都在做 SEO,而比較不偏重於 Facebook 的經營時,你是否該跟隨他們加入 SEO 的戰場,殺個你死我活,還是先專注在社群經營,走出一條新路? 若情境相反,今天你對手都沒有在做 SEO(恰巧跟你產業有關的關鍵字都有一定的搜尋量時),你就可以考慮一下是否可靠著 SEO 找到藍海。若你的產業是真的真的非常 Social 導向的, 你就可以觀察頂尖對手的 FB 經營策略(廣告投遞模式、辦過哪些活動、多久貼文一次等等),並且看他們的粉絲團按讚數以及貼文按讚數、哪種貼文獲得比較好的共鳴、參考他們是如何跟粉絲互動 等等

三、反向連結流量與資料

建立反向連結,跟你的公關策略有關:你的網站該找哪個 KOL(意見領袖,如部落客、網紅、名人等等) 合作?該與哪個媒體合作?該與哪家廠商進行異業合作?
觀察對手的反向連結分析,除了可以了解對手的網站常在哪些網站上曝光外,還可得知對手的公關策略喔!假如你要經營醫美的網站,就可以從現有知名醫美品牌的反向連結,得知他們常與哪些 KOL 合作、經查在哪些媒體曝光等。
目前市面上的 SEO 工具中,反向連結分析做的最透徹的就是新加坡的 Ahrefs,可是要先付費才能使用他們的 SEO 工具。而 Moz 的 Open Site Explorer 提供了免費的反向連結查看服務。以知名醫美業者「星X醫美」的官網為例,結果如下圖所示:

如上圖所示,我們得知許多 URL 都是來自眾多部落客的痞客邦 StyleMe 連結。我們一一點擊這些網站,得知有哪些部落客、哪些媒體與這些競爭對手合作,參考對手並擬定自己的公關策略。

 

四、流量

了解競爭網站的流量,可以了解對手的實力在哪裡。流量越高,則競爭度越高。如下圖,SEO 人員可藉由 SimilarWeb 等工具了解競爭對手的網站流量大小。

 

五、關鍵字

藉由參考對手的網站投放、優化了哪些關鍵字,對於自己網站的關鍵字計畫會有很大的幫助。 SimilarWeb 的 Top Keywords 功能也顯示出大多數的人是藉由哪些關鍵字到目標網站,如同下圖所示。





相關文章

SEO前先摸清敵人底細方能戰勝一切!(上)

為什麼新創業者都需要SEO?告訴你7大原因!(3)

為什麼新創業者都需要SEO?告訴你7大原因!(4)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

連Python都會唸錯?身為工程師應該知道的英文!!

語言程式Java還真的是咖啡名字!快看其他程式語言的名字故事! 

超強!這個工程師用Python畫皮卡丘練手感

2019年10月23日 星期三

SEO前先摸清敵人底細方能戰勝一切!(上)

別白費工SEO,先摸清對手吧!


別白費工SEO,先摸清對手吧!



SEO 優化,可說是與其他網站競爭排名的競賽。因此 SEO 必須要先了解競爭網站的狀況,才能知道如何準備這場比賽。許多 SEO 人員都在忙碌中忽略了對競爭對手的分析,可這卻也是非常重要的一環。
至於競爭網站有哪些?又該怎麼知道呢?其實只要該網站被 Google 收錄的關鍵字與你重疊,都算是你的競爭網站。這些競爭網站有可能是你的同業對手,也有可能不是。
分析競爭對手的目的,是為了了解他們的 SEO 操作手法、優點與弱點。但是別把他們當成自己的門檻、或是完全模仿複製,例如某些老闆會說:「同業的網站都沒有 RWD,我們也就先不用 RWD 了,多此一舉!」。另外在現實生活中,我們也經常看到:同個行業,不同商家,但是網站、文案都很類似,分不清楚哪個網站是哪家公司的。

第一步:誰是我的競爭者網站?

要找出競爭網站很容易,我們可以從這些方向著手:一、現實生活中的兢爭對手網站;二、經由 Google 等搜尋引擎中輸入關鍵字,排名在你附近或是你前面的網站;三、被收錄於 Similar Web 或 Alexa 等流量排行榜中你的同業網站
例如你的網站是新聞網,則現實生活中的對手可能是東森、中時、三立、UDN 等新聞網;而經由 Google 搜尋「國內新聞」、「國外新聞」等關鍵字,排名在你前面的新聞網站,大多都可說是你的競爭對手(當然也有例外狀況:如路線跟你不同的傳媒網站,像是科技類傳媒、重機傳媒等)。另外,你還可以從 SimilarWebAlexa 等流量排行榜中,擷取出的與你網站同類型的新聞網站,將之視為競爭對手。


  SEO 可參考 SimilarWeb 的流量排行榜,找出競爭對手網站
找出了你的競爭對手之後,下一步就是要分析他們的重點數據,知己知彼,才有辦法擬定出自己的 SEO 作戰策略。至於有哪些重點數據要分析呢?請見此篇【SEO前,先分析競爭者的網站(二)分析競爭者網站的數據



相關文章

SEO前先摸清敵人底細方能戰勝一切!(下)

為什麼新創業者都需要SEO?告訴你7大原因!(1)

為什麼新創業者都需要SEO?告訴你7大原因!(2)

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

你會用Python製作小遊戲嗎?尋找水仙花簡單好上手!!

得來速只靠人工智慧就可以幫你點餐炸薯條?服務比真人還要迅速?!

為什麼有人說學會了Python就能掌握未來?

2019年10月22日 星期二

前端工程師跟後端和全站的不同傻傻分不清?

前端工程師跟後端,全站的不同還搞不清嗎?看了這篇讓你秒懂!


前端工程師跟後端,全站的不同還搞不清嗎?看了這篇讓你秒懂!



業界對於網站開發工程師的需求,從來沒有停過,因此也吸引很多非本科系出身的同學,興致勃勃地想轉職,成為網站開發工程師。但是其實網站開發工程師還細分成「前端工程師」、「後端工程師」,還有綜合上述的「全站(full-stack)工程師」。這三種職位到底差在哪呢?又該選哪種學習比較好上手?這些問題正是縈繞在許多人心中的疑惑。因此本篇文章幫助你先了解網站開發的分工定義、技能需求,幫助你找到適合自己的目標、並能更有效率學習,更快達成轉職網站開發工程師的願望。

前端工程師

網站的「前端」是與用戶直接交互的部分,包括你在瀏覽網頁時接觸的所有視覺內容--從字體到顏色,以及下拉菜單和側邊欄。這些視覺內容,都是由瀏覽器解析、處理、渲染相關HTML、CSS、Javascript 文件後呈現而來。

技能與工具

前端開發,就是要創造上面提到的網站面向用戶的部分背後的代碼,並通過建立框架,構建沉浸性的用戶體驗。為了實現這個目標,開發需要熟練運用下列語言、框架、工具庫——三大語言:HTML,CSS,和Javascript
此外,掌握jQuery 和LESS 等工具庫也很重要,它們能幫助開發者以更高效的方式編碼;很多前端開發崗也要求Ajax 方法的使用經驗,它可以幫助你使用Javascript 在後台從服務器拉取數據,協助實現頁面的動態加載。
打個比方,前端工程師的工作專注於「房屋」裝修,而蓋房子的工作由後端開發者負責。通過一些專門的工具,前端開發者與設計師/用戶體驗分析師密切合作,幫助構建原型或是線框圖,參與產品開發到發布的全過程。
一些前端工程師甚至能準確定位影響用戶體驗的特定問題,並給出建議或是代碼解決方案,對產品設計帶來積極影響。在專業能力外,與其它團隊協作,以理解特定目標、需求、機遇,以及高效的執行力也非常重要。
這聽起來工作內容很多,但也回報豐厚。「我是一名技術人員,也是一名設計者,在數字平台上使用標記語言和代碼修改視覺元素並與之互動是很自然而有趣的體驗,」有八年前端開發經驗的Mikey Ilagan 說「這讓我能夠直接影響到用戶體驗,操縱應用和網站裡用戶所見並直接與之交互的元素,這非常棒!」
總之,前端開發者要為後端開發者搭建的「房屋」進行內部設計和裝修工作。裝潢風格由房屋所有者指定。Apptix 的產品市場負責人Greg Matranga 表示:「前端開發者有時更容易為他們的工作感到振奮,因為他們有更廣闊的空間發揮自己的創造力。」

後端工程師

是什麼給網站前端提供支持?數據存放在哪裡?這就涉及後端內容了。網站後端包括服務器、應用還有數據庫。後端開發者構建並維護這些組件,為網站提供多方面支持。
由上圖可以看出,UDN 的讀者來源,大部分來自 Search (搜尋引擎)輸入特定關鍵字後,進到 UDN 的網頁;而東森新聞雲的讀者最多都是從 Facebook 等 Social 社群網站的連結進來。

 

技能與工具

為了讓服務器、應用、數據庫能夠彼此交互,後端工程師需要具有如下技能:
用於應用構建的服務器端語言:PHP, Ruby, Python, Java, .Net 等;
數據相關工具:My SQL , Oracle, SQL Server等;
PHP框架:Zend, Symfony, CakePHP等;
版本控制工具:SVN, CVS , Git 等;
還要熟練使用Linux 作為開發和部署環境。
後端開發者使用這些工具編寫乾淨、可移植、具有良好文檔支持的代碼來創建或更新 Web 應用。但在寫代碼之前,他們需要與客戶溝通,了解其實際需求並轉化為技術目標,制定最有效且精簡的方案來進行實現。
「我熱愛後端開發因為我喜歡操縱數據」,資深後端開發者就職於 Wildbit 的 JP Toto 說。「現在共有和私有 API 已變成移動設備、網站以及其它互聯繫統交換數據的必備通道。創建對大家有用的API 是我工作裡非常鼓舞人心的部分」。

全端工程師

全端工程師,最初是 6 年多以前由 Facebook 帶動的概念。全棧的核心,是指這批開發者能夠承擔包括前端、後端在內的所有功能開發任務,他們擁有一個技能全家桶。
「能夠同時承擔服務器端和客戶端工作會為你帶來更多機會,」 Grovo 的全端工程師 Federico Ulfo 說「當然這也就意味著更多的挑戰。以廚藝作類比,掌握烹飪和烘焙都需要時間與經驗積累,同時掌握兩者要花費更多精力。照著菜譜做誰都可以,我此處所說的是做出真正美味東西的能力。」

技能與工具

全端工程師也通常在服務器端進行編程工作,但他們熟練前端語言,能夠操縱網站面向用戶的部分。基本上可以形容他們是百事通。
全端工程師需要對 Web 架構的每一個層次都有足夠的了解:搭建和配置Linux 服務器,編寫服務器端API,利用客戶端Javascript 代碼驅動應用,將設計層面的東西轉化到實際的CSS 代碼。掌握並使用大量工具的同時,全端工程師需要敏捷地分配服務器端和客戶端任務,提供解決方案並對比不同方案的優劣。


相關文章

前端工程師HTML5入門課程-用SVG向量圖取代點陣圖

前端工程師省時神器!用Emmet快速產生標籤名稱!

前端工程師省時神器!用Emmet快速產生階層!

暑假快到了!與其讓兒子盲目拚學測,我寧可讓他先選擇人生方向~

Python,Java程式名稱由來你知道嗎?

想要票房大賣?人工智慧電影預測可以幫幫你!

利用Python尋找完美數~小遊戲也可以加強練習~

2019年10月21日 星期一

Python控制結構教學(十一) 簡單計算機實作

Python實作時間到!看看之前教學系列你學會了幾招!


Python實作時間到!看看之前教學系列你學會了幾招!



Python教學 今天是要大家練練手, 來進行 Python 項目實作,運用這系列教的來做一個簡單的計算器。本實作應用了 Python 的基本函數與概念:while 迴圈if 條件判斷式elif 寫法type conversion類型轉換
每個部分說明了 Python 程式的不同部分。

第一部分是計算機的起始畫面,讓用戶一直不斷輸入,直到用戶輸入「exit」為止,因此使用了while 迴圈
while True:
   print("選項:")
   print("輸入 '+' 讓兩個數值互加")
   print("輸入 '-' 讓兩個數值互減")
   print("輸入 '*' 讓兩個數值互乘")
   print("輸入 '/' 讓兩個數值互除")
   print("輸入 'exit' 來結束程式")
   user_input = input(": ")

   if user_input == "exit":
      break
   elif user_input == "+":
      ...
   elif user_input == "-":
      ...
   elif user_input == "*":
      ...
   elif user_input == "/":
      ...
   else:
      print("不知道你在輸入什麼")  

上述程式還沒寫完,只完成了起始畫面與結構。接下來我們針對每個小部分來寫 Python 程式碼:
加法的部分:
elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))

現在,當用戶輸入「+」後,程式就會提示輸入兩個數字。以上我們使用 float()函數,來將用戶輸入的數字強制轉變成浮點數。但是若用戶輸入的不是數字,程式就會 GG。
接下來,我們寫的程式碼,是用來執行用戶輸入的兩個數字,完成加總並且將結果輸出。Python 程式碼如以下所示
elif user_input == "+":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 + num2)
    print("答案是 " + result)

以此類推,減法的部分為:
elif user_input == "-":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 - num2)
    print("答案是 " + result)

以此類推,乘法的部分為:
elif user_input == "*":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 * num2)
    print("答案是 " + result)

以此類推,除法的部分為:
elif user_input == "/":
    num1 = float(input("請輸入數字:"))
    num2 = float(input("請輸入另一個數字:"))
    result = str(num1 / num2)
    print("答案是 " + result)

程式寫好,執行成果如下:

 



相關文章 

2019年10月18日 星期五

Python控制結構教學(十) for迴圈

知道Python的for迴圈和while迴圈不一樣嗎?快來學學!


知道Python的for迴圈和while迴圈不一樣嗎?快來學學!



Python教學 今天要給大家說說迴圈。看這一篇之前,建議大家先看這一篇「Python控制結構5.while 迴圈」回憶回憶,複習一下 while 迴圈是什麼。
Python 中,若我們要多次重複執行一個指令,我們可以使用迴圈(loops)。迴圈中的程式碼會用以下的方式執行指令:1、按照所指定的次數,重複執行;2、重複執行,直到特定的條件成立時結束;3、針對某一集合(例如:Python list串列之中的物件)中的所有項目,都各執行一次。

for 迴圈 vs. while 迴圈

先前我們曾經介紹過的 while 迴圈用法與 if 條件判斷式相似,只要給予的條件成立(即為「True(真)」),它就會執行。不同的是執行次數,if 只執行一次;while 迴圈則輪迴執行無限多次 (除非有設定讓迴圈結束的條件且條件成立)。
while 迴圈只要「沒有」另外設定「迴圈結束的條件(如:if 、break)」,迴圈就會無限的循環。這次我們要介紹的 for 迴圈則是在一行內就 自帶計數功能的迴圈,可以將重複循環控制在固定的數量內。
以下為一個 while 迴圈的範例,起始值為「count=0」、調整值為「count = count + 1」、讓迴圈結束的條件為「<= 5」,如下所示:
count=0 
while count <= 5: 
    print(count)
    count = count + 1   
上述範例結果為:
0
1
2
3
4
5

上個範例,若我們把第二行的「count <= 5」抽掉,換成一個「合乎常理」的條件(例如 count = 0),這個 loop 就會「0,1,2,3,4,5,6,7⋯⋯」永無止盡的重複「+1」的動作。同個範例,若使用 for 迴圈,則在第一行就可以搭配 range數列,定義「終止值」。如下例:
for count in range(0,6,1):
  print(count)
上述例子結果為:
0
1
2
3
4
5

有沒有發現,原本使用 while loop 需要 4 行的 coding,使用 for loop 只要兩行?
因為 while 迴圈把三大控制條件:初始值、讓迴圈結束的條件、更新值(又稱為調整值)分散在各行來敘述,for 迴圈則使用 range數列 將這三大控制條件放在同一行中展現。上述 range 的寫法為「range(起始值為0,迴圈在6之前就結束,調整值為+1),一行立刻應用 Range數列來訂定起始值、結束條件與調整方法,是不是很精簡方便的?Python 的 range 函數的詳細用法請見這一篇。
下面還有另外一個例子,為 for 迴圈應用 Python List串列函數的,將串列表中的所有物件都執行一次的範例:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
for bandname in the_BIG4:
    print(bandname+" is a thrash metal band.")
上述例子結果為:
Megadeth is a thrash metal band.
Metallica is a thrash metal band.
Anthrax is a thrash metal band.
Slayer is a thrash metal band.

這種針對某一集合中的所有項目(例如:List串列之中的所有物件),都各執行一次例子,若用 while 迴圈來表示則需要:1、套用到 counter 「計數器」變數(計數器的數值是跟著索引跑的,所以設定起始值為「counter = 0」。串列的索引編號均是從零開始,詳細請看這篇)。;2、調整值為多加一次,故把計數器變數設為「counter = counter + 1」;3、讓迴圈結束的條件為當計數器把串列的東西全都執行結束時,因此把計數器的值設定為「最大的索引數」, 變成:
the_BIG4=["Megadeth","Metallica","Anthrax","Slayer"]
counter = 0
max_index = len(the_BIG4)-1

while counter <= max_index:
   bandname = the_BIG4[counter]
   print(bandname + " is a thrash metal band.")
   counter = counter + 1 

比起來,for 迴圈自帶計數的特性,真的簡化了 Python 程式碼的寫法。所以遇到有次數限制的迴圈時,不妨使用 for 迴圈吧!



相關文章