Skip to content

Commit a1cdead

Browse files
author
HsiaoEn
committed
add files
1 parent b6f89d0 commit a1cdead

File tree

6 files changed

+6
-0
lines changed

6 files changed

+6
-0
lines changed

6.ControlFlow/ForLoop.ipynb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"ForLoop.ipynb","provenance":[],"authorship_tag":"ABX9TyM759pD7Q3H9mGf45vWqR5M"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"code","metadata":{"id":"wZJ5qsLfGe_l","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":579},"executionInfo":{"status":"ok","timestamp":1597377417139,"user_tz":-480,"elapsed":738,"user":{"displayName":"Hsiao-En Sun","photoUrl":"","userId":"07971042322541451787"}},"outputId":"2d63d653-4a5d-43b3-e1ab-0d63a21523d0"},"source":["from IPython.display import HTML\n","HTML(\"\"\"\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1TK4t4D-dhu9z4DpJE7ImzGb8VKkjVEDi\" type=\"video/mp4\">\n"," </video>\n"," </div>\n","\"\"\" )"],"execution_count":1,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1TK4t4D-dhu9z4DpJE7ImzGb8VKkjVEDi\" type=\"video/mp4\">\n"," </video>\n"," </div>\n"],"text/plain":["<IPython.core.display.HTML object>"]},"metadata":{"tags":[]},"execution_count":1}]},{"cell_type":"markdown","metadata":{"id":"5dks77FJ--qq","colab_type":"text"},"source":["## for-loop\n","\n","若有需要重複執行的程式,即可交給for-loop!\n","\n"]},{"cell_type":"markdown","metadata":{"id":"gwmBGyff--qr","colab_type":"text"},"source":["### range迭代"]},{"cell_type":"code","metadata":{"id":"lrpQ9PEZ--qr","colab_type":"code","colab":{}},"source":["'''\n","for xxx in range():\n"," (do something)\n","'''"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"Fl6CXWaa--qu","colab_type":"code","colab":{}},"source":["# for (int i = 0; i < 10; i += 1)\n","\n","for i in range(10):\n"," print(i, end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"GcbwRmyl--qy","colab_type":"code","colab":{}},"source":["# for (int i = -3; i < 10; i += 1)\n","\n","for i in range(-3, 10):\n"," print(i, end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"qF4fyp7m--q1","colab_type":"code","colab":{}},"source":["# for (int i = -3; i < 10; i += 2)\n","\n","for i in range(-3, 10, 2):\n"," print(i, end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"1KK4asIM--q3","colab_type":"code","colab":{}},"source":["# for (int i = -1; i > -10; i -= 2)\n","\n","for i in range(-1, -10, -2):\n"," print(i, end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"Yxy_Yugx--q6","colab_type":"text"},"source":["### container迭代"]},{"cell_type":"code","metadata":{"id":"ZrpH0W3Z--q7","colab_type":"code","colab":{}},"source":["# list 的迭代\n","L = ['a', 'b', 'c', 'd', 'e']\n","\n","for element in L:\n"," print(element, end=\" \")\n","print()\n","\n","for element in L[:3]:\n"," print(element, end=\" \")\n","print()\n","\n","for element in reversed(L):\n"," print(element, end=\" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"4_enM6AL--q-","colab_type":"code","colab":{}},"source":["T = ('a', 'b', 'c', 'd', 'e')\n","\n","for element in T:\n"," print(element, end=\" \")\n","print()\n","\n","for element in T[:3]:\n"," print(element, end=\" \")\n","print()\n","\n","for element in reversed(T):\n"," print(element, end=\" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"jXIfEJrb--rB","colab_type":"code","colab":{}},"source":["S = {'a', 'b', 'c', 'd', 'e'}\n","\n","# Set 雖然也可以迭代,但其無序性讓迭代的物件無法預測,故也無逆序功能\n","for element in S:\n"," print(element, end=\" \")"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"-0DJlIDr--rD","colab_type":"code","colab":{}},"source":["D = {'a':1, 'b':2, 'c':3, 'd':4, 'e':5}\n","\n","for key in D.keys():\n"," print(key, end=\" \") \n","print()\n","\n","# for value in D.values():\n","# print(value, end=\" \")\n","# print()\n","\n","# for key, value in D.items():\n","# print(f'({key}, {value})', end=\" \")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"XTkfxorO--rG","colab_type":"text"},"source":["### enumerate迭代"]},{"cell_type":"code","metadata":{"id":"zJsismVr--rH","colab_type":"code","colab":{}},"source":["for index, element in enumerate(L):\n"," print(f'({index}, {element})', end = \" \")\n","print()\n","\n","for index, element in enumerate(T):\n"," print(f'({index}, {element})', end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"Xzv4YLE_--rJ","colab_type":"text"},"source":["### range or container"]},{"cell_type":"code","metadata":{"id":"GlG3X-xT--rK","colab_type":"code","colab":{}},"source":["# 我們偶爾也會使用 range(len()) 來迭代 list、set 等結構,此行為比較接近其他語言 (例如 C、Java ) 的迴圈行為\n","# for (int i = 0; i < L.size(); i += 1)\n","\n","L = ['a', 'b', 'c', 'd', 'e']\n","\n","for index, element in enumerate(L):\n"," print(index, element, end = \" \")\n","print()\n","\n","for i in range(len(L)):\n"," print(i, L[i], end=\" \")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"8koDIBDC--rM","colab_type":"text"},"source":["### zip迭代"]},{"cell_type":"code","metadata":{"id":"TGf0ySku--rM","colab_type":"code","colab":{}},"source":["# 除了常規的四大資料結構迭代,我們也可以使用 zip 將任意不同的可迭代結構打包起來,一起做迭代。\n","# zip 會將兩結構中同一位置的物件擺在同一個迭代順位,例如下例中 'Apple' 即會跟 40 擺在同一個順位。\n","# 使用 zip 的前提是,兩結構的長度必須一樣 ! (可使用 len() 先行確認 )\n","\n","L1 = ['Apple', 'Banana', 'Carrot', 'Donut']\n","L2 = [40, 15, 25, 35]\n","\n","for product, price in zip(L1, L2):\n"," print(f'({product}, {price})', end = \" \")"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"eRuy6UHY--rQ","colab_type":"text"},"source":["## nested loop"]},{"cell_type":"code","metadata":{"id":"GYnc3cW7--rQ","colab_type":"code","colab":{},"outputId":"b3e1ac12-b377-4581-a4da-15a43e61cb66"},"source":["'''\n","4*4 的乘法表\n","\n","i j\n","1 * 1 = 1\n","1 * 2 = 2\n","1 * 3 = 3\n","1 * 4 = 4\n","2 * 1 = 2\n","2 * 2 = 4\n","...\n","4 * 4 = 16\n","'''\n","\n","i=1\n","for j in range(1, 5):\n"," print(f'i = {i}, j = {j}, i*j = {i*j}')\n","\n","i=2\n","for j in range(1, 5):\n"," print(f'i = {i}, j = {j}, i*j = {i*j}')\n"," \n","i=3\n","for j in range(1, 5):\n"," print(f'i = {i}, j = {j}, i*j = {i*j}')\n"," \n","i=4\n","for j in range(1, 5):\n"," print(f'i = {i}, j = {j}, i*j = {i*j}')"],"execution_count":null,"outputs":[{"output_type":"execute_result","data":{"text/plain":["'\\n4*4 的乘法表\\n\\ni j\\n1 * 1 = 1\\n1 * 2 = 2\\n1 * 3 = 3\\n1 * 4 = 4\\n2 * 1 = 2\\n2 * 2 = 4\\n...\\n4 * 4 = 16\\n'"]},"metadata":{"tags":[]},"execution_count":18}]},{"cell_type":"code","metadata":{"id":"t2AjM5rR--rT","colab_type":"code","colab":{}},"source":["# 多層迴圈的使用必須謹慎,內層迴圈完整迭代完一次,外層才會跳下一個迭代。\n","# 縮排需要特別注意 ! \n","\n","# 此例子中,當 i 最初為 1 時,j 會完整地從 1 迭代到 4 結束, 接著 i 才會到下一個 2。\n","for i in range(1, 5):\n"," for j in range(1, 5):\n"," print(f'i = {i}, j = {j}, i*j = {i*j}')"],"execution_count":null,"outputs":[]}]}

6.ControlFlow/WhileLoop.ipynb

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"WhileLoop.ipynb","provenance":[],"authorship_tag":"ABX9TyMDwSnJnZzWIXkEXKicn3Zn"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"code","metadata":{"id":"XOuEmHyyHZ8D","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":517},"executionInfo":{"status":"ok","timestamp":1597377637826,"user_tz":-480,"elapsed":877,"user":{"displayName":"Hsiao-En Sun","photoUrl":"","userId":"07971042322541451787"}},"outputId":"4ed07a28-4b4f-45ac-a918-0848067884f0"},"source":["from IPython.display import HTML\n","HTML(\"\"\"\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1vSWhHXH9ICsi5FRFslypLXFn9Gob86zr\" type=\"video/mp4\">\n"," </video>\n"," </div>\n","\"\"\" )"],"execution_count":1,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1vSWhHXH9ICsi5FRFslypLXFn9Gob86zr\" type=\"video/mp4\">\n"," </video>\n"," </div>\n"],"text/plain":["<IPython.core.display.HTML object>"]},"metadata":{"tags":[]},"execution_count":1}]},{"cell_type":"markdown","metadata":{"id":"LEpLkFRG--rW","colab_type":"text"},"source":["## while-loop"]},{"cell_type":"code","metadata":{"id":"xvURzBGg--rW","colab_type":"code","colab":{}},"source":["'''\n","\n","while迴圈執行的原則為,只要 statement 還是對的,迴圈就會繼續重複,直到敘述錯誤停止。下面是它的語法\n","\n","while statement:\n"," do something\n","\n","'''"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"uqfLwJ0Z--rZ","colab_type":"code","colab":{}},"source":["x = 0\n","\n","# 在此範例中,x 一開始為 0,所以敘述為真\n","# 迴圈內每執行一次, x 的值即增多 1\n","while x < 5: \n"," print(x)\n"," x = x + 1"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"vYoVd9rq--rb","colab_type":"text"},"source":["## Break"]},{"cell_type":"code","metadata":{"id":"ELcBxWUl--rc","colab_type":"code","colab":{}},"source":["# 若我們希望迴圈在發生某個情況時停止,但不確定那件事會在甚麼時候發生,可以使用無窮迴圈,也就是 while True。\n","# 並在真正發生的時候使用 break 跳出迴圈。\n","\n","# 假設我們想要使用者輸入一個 \"三位數字\",但由於無法預測使用者的行為,不知道他何時才會真的輸入三位數,這種時候就可使用 while True\n","# (持續做 input()),若發現 input() 符合三位數,再行 break 跳出迴圈。\n","\n","while True:\n"," value = input('Please Enter a number with 3 digits: ')\n"," if value.isdigit() and len(value) == 3:\n"," break\n"," \n","print(f'You entered {value}')"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"RbsG5zfV--rf","colab_type":"text"},"source":["## Continue"]},{"cell_type":"code","metadata":{"id":"feMRKbqP--rg","colab_type":"code","colab":{}},"source":["# 在某些情況,我們想跳過該次迭代,但又不想結束迴圈,這時我們可以使用 continue。\n","\n","# 範例:我們想要計算使用者輸入的 \"數字\" 總和,輸入次數不限,只要是數字就進行累加,若非數字則跳過,直到使用者輸入'q'結束程式\n","# 必須涵蓋三個部分:\n","# 1. 輸入 'q' 即結束迴圈 (使用 break)\n","# 2. 輸入不是數字時跳過累加 (使用 continue)\n","# 3. 其他情況 (輸入為數字),累加\n","\n","Sum = 0\n","while True:\n"," \n"," value = input('Please Enter a number: ') # value: string\n"," \n"," if value == 'q':\n"," print('Quitting loop')\n"," break\n"," elif not value.isdigit(): #.isdigit():若該字串皆是數字,返回True; 若非數字,返回False\n"," print(f'Not a number, ignored')\n"," continue\n"," \n"," print(f'Got a number, summing up')\n"," Sum += int(value)\n"," \n","print(f'The sum of numbers you entered: {Sum}')"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"D_DZwAQY--ri","colab_type":"text"},"source":["## Pass vs Continue"]},{"cell_type":"code","metadata":{"id":"_YC0UjMf--rj","colab_type":"code","colab":{}},"source":["for i in range(3):\n"," pass"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"VIR-qvh3--rm","colab_type":"code","colab":{}},"source":["# pass無作用,程式會繼續執行\n","for i in range(3):\n"," pass\n"," print(i)"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"1I30SU2n--rp","colab_type":"code","colab":{}},"source":["# continue會直接跳過此次迭代\n","for i in range(3):\n"," continue"],"execution_count":null,"outputs":[]}]}
Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
{"nbformat":4,"nbformat_minor":0,"metadata":{"colab":{"name":"statement_if-else.ipynb","provenance":[],"authorship_tag":"ABX9TyPgbgGGgfAtM4j1xMZjqxWK"},"kernelspec":{"name":"python3","display_name":"Python 3"}},"cells":[{"cell_type":"code","metadata":{"id":"MnRZy-6FFRTq","colab_type":"code","colab":{"base_uri":"https://localhost:8080/","height":579},"executionInfo":{"status":"ok","timestamp":1597377109211,"user_tz":-480,"elapsed":928,"user":{"displayName":"Hsiao-En Sun","photoUrl":"","userId":"07971042322541451787"}},"outputId":"754cd973-f98c-4b22-c92d-2cdf3a931ab8"},"source":["from IPython.display import HTML\n","HTML(\"\"\"\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1kdUAxekOXPFhWr7fMjgk-pmt3baH9wbB\" type=\"video/mp4\">\n"," </video>\n"," </div>\n","\"\"\" )"],"execution_count":1,"outputs":[{"output_type":"execute_result","data":{"text/html":["\n"," <div style=\"display: flex; justify-content: center;\">\n"," <video width=1000 controls>\n"," <source src=\"https://drive.google.com/uc?id=1kdUAxekOXPFhWr7fMjgk-pmt3baH9wbB\" type=\"video/mp4\">\n"," </video>\n"," </div>\n"],"text/plain":["<IPython.core.display.HTML object>"]},"metadata":{"tags":[]},"execution_count":1}]},{"cell_type":"markdown","metadata":{"id":"nXs6LqVZ--qX","colab_type":"text"},"source":["## 敘述"]},{"cell_type":"code","metadata":{"id":"1UuZBsXR--qY","colab_type":"code","colab":{}},"source":["#A = 5\n","\n","statement1 = A > 0\n","\n","print(statement1)\n","\n","statement2 = A > 0 and A < 100\n","\n","print(statement2)\n","\n","statement3 = type(A) is float\n","\n","print(statement3)"],"execution_count":null,"outputs":[]},{"cell_type":"code","metadata":{"id":"fHltwgfy--qd","colab_type":"code","colab":{}},"source":["D = [1, 2, 3, None, 5]\n","\n","statement1 = 1 in D\n","\n","print(statement1)\n","\n","statement2 = 4 in D\n","\n","print(statement2)\n","\n","statement3 = 4 not in D\n","\n","print(statement3)\n","\n","statement4 = D[3] is not None\n","\n","print(statement4)"],"execution_count":null,"outputs":[]},{"cell_type":"markdown","metadata":{"id":"BjhddFBT--qg","colab_type":"text"},"source":["## if-else"]},{"cell_type":"code","metadata":{"id":"sMtAhWQU--qh","colab_type":"code","colab":{},"outputId":"4d0ce332-5260-45b3-a660-15ad5883db3f"},"source":["''' if-else 的使用格式:\n","if statement1 :\n"," (do something)\n","elif statement2 :\n"," (do something)\n","else:\n"," (do something)\n","\n","如果你曾經寫過像是 C 等其他語言,注意 python 的 statement 不需要在外面加括號,但是在敘述後要加上冒號 (:)。\n","至於在該 statement 內的程式碼都必須縮排 (可以使用 tab)。\n","'''\n","\n","n = int(input(f'Please enter an integer: '))\n","\n","if n > 0:\n"," print(f'It is a positive number.')\n","elif n < 0:\n"," print(f'It is a negative number.')\n","else:\n"," print(f'It is zero')"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Please enter an integer: 3\n","It is a positive number.\n"],"name":"stdout"}]},{"cell_type":"code","metadata":{"id":"ayNfUlCr--qn","colab_type":"code","colab":{},"outputId":"17dfa77d-09dd-4636-81df-1e3162d5555d"},"source":["h = float(input(f'Please enter your height(cm): '))\n","w = float(input(f'Please enter your weight(kg): '))\n","\n","BMI = w / ((h / 100)**2)\n","\n","# elif 可以有很多個,但是最開始必須為 if,而 else 不一定為必要\n","\n","if BMI > 35:\n"," print(f'Your BMI is {BMI:.1f}, you are extremely fat!')\n","elif BMI > 30 and BMI <= 35:\n"," print(f'Your BMI is {BMI:.1f}, you are fat!')\n","elif BMI > 27 and BMI <= 30:\n"," print(f'Your BMI is {BMI:.1f}, you are slightly fat!')\n","elif BMI > 24 and BMI <= 27:\n"," print(f'Your BMI is {BMI:.1f}, you are overweight!')\n","elif BMI > 18.5 and BMI <= 24:\n"," print(f'Your BMI is {BMI:.1f}, you have a normal weight.')\n","else:\n"," print(f'Your BMI is {BMI:.1f}, you are too light!')"],"execution_count":null,"outputs":[{"output_type":"stream","text":["Please enter your height(cm): 180\n","Please enter your weight(kg): 70\n"],"name":"stdin"},{"output_type":"stream","text":["Your BMI is 21.6, you have a normal weight.\n"],"name":"stdout"}]}]}

0 commit comments

Comments
 (0)