程式小測驗

程式

  1. 要在 Terminal 印出一段話要怎麼做
print("Hello, World!")
  1. 變數的作用是什麼?
    • A. 儲存資料
    • B. 執行迴圈
    • C. 判斷條件
    • D. 輸出結果
a = 3 # name = a, value = 3 type = int type(a) - integer # 整數 - string # 字串 / 文字 - float # 小數
a = input("輸出的東西")
	blablabla() -> function 函式 

# 意思相等於
	
print("輸出的東西")
a = input()
  1. 以下哪一行程式碼會正確地接收使用者的輸入並儲存到變數 age 中?

    • A. input = "age"
    • B. age = input("請輸入你的年齡:")
    • C. print("age")
    • D. age = print("請輸入你的年齡:")
  2. 接續第二題, age 被成功儲存後,預設的資料型態是什麼

    • A. String / 字串
    • B. Interger / 整數
    • C. float / 浮點數
  3. 接續第二題,如果我要把變數以「整數 / interger」的方式儲,我該怎麼做?

# 請在這裡回答 / Please answer here
Chace= int(input(""))
number = int("123")

if number > 10:
	print("Haha")
else:
	print("LOL")
  1. 布林值(Boolean Value) 只有兩種 Value,分別為 True or False,通常會用來進行條件判斷 (if-elif-else),來試試看下面的 Boolean Value 哪些是 True 吧

    • A. 5>2 and 3>7
    • B. 5>2 or 3>7
    • C. (5>2) and (3<7 or 3==7)
  2. 請完成以下程式碼,使其根據使用者輸入的分數判斷是否及格(分數 ≥ 60 為及格):

score = int(input("請輸入你的分數:"))
if (score >= 60):
	print("good")
else (score < 60)::
	print("Ha~")
  1. 向使用者問好 ~
name = input("What is your name: ")
print("Hello" + name)
  1. 寫一個程式,讓使用者輸入一個數字,然後判斷這個數字是正數、負數還是零,並印出相應的結果。
int = input("Get me a integer:")
if(int==0):
    print("zero")
if(int>0):
    print("Positive Number")
if(int<0):
    print("Negtive Number")
else:
    print("Nothing")

範例輸入/輸出:

請輸入一個數字:5
這是一個正數。
  1. 寫一個簡單的程式,讓使用者輸入兩個數字,然後輸出它們的和。

範例輸入/輸出:

請輸入第一個數字:3
請輸入第二個數字:4
兩數之和為:7
num_1st = int(input("first number")) num_2nd = int(input("second number")) print(num_1st + num_2nd)

電腦科學

  1. 為什麼在台灣卻可以玩到伺服器在美國(可能)的荒野亂鬥?
    https://www.thenewslens.com/feature/war-communication/163125

  2. 工程師是怎麼跟電腦溝通的?


實務問題

  1. 單位換算:https://pdogs.ntu.im/problem-set/1/46/challenge/471/problem/1465

  2. 金錢系統


專題嘗試

專題名稱:餐廳點餐系統

專題概述

你將設計並實作一個簡單的餐廳點餐系統,使用者可以選擇不同的餐點類別(如主餐、飲料、甜點),再進一步選擇具體的餐點,最後顯示訂單明細和總金額。

專題功能需求

  1. 主選單

    • 顯示餐點類別選項:主餐、飲料、甜點。
    • 接收使用者選擇的類別編號。
  2. 子選單

    • 根據使用者在主選單的選擇,顯示相應的餐點選項及價格。
    • 接收使用者選擇的餐點編號。
  3. 訂單明細

    • 根據使用者的選擇,顯示所選餐點的名稱和價格。
    • 計算並顯示總金額。
  4. 錯誤處理

    • 當使用者輸入無效的選項時,顯示錯誤訊息並提示重新選擇。

範例運行結果

範例 1:選擇主餐

歡迎光臨簡易餐廳點餐系統!
請選擇餐點類別:
1. 主餐
2. 飲料
3. 甜點
請輸入選項編號(1-3):1

主餐選單:
1. 牛排 - $250
2. 雞排 - $150
3. 義大利麵 - $200
請選擇主餐(1-3):2

您的訂單明細:
餐點:雞排
價格:$150
總金額:$150

範例 2:選擇飲料

歡迎光臨簡易餐廳點餐系統!
請選擇餐點類別:
1. 主餐
2. 飲料
3. 甜點
請輸入選項編號(1-3):2

飲料選單:
1. 可樂 - $50
2. 果汁 - $60
3. 水 - $30
請選擇飲料(1-3):1

您的訂單明細:
餐點:可樂
價格:$50
總金額:$50

範例 3:無效選擇

歡迎光臨簡易餐廳點餐系統!
請選擇餐點類別:
1. 主餐
2. 飲料
3. 甜點
請輸入選項編號(1-3):4
無效的餐點類別選擇。
沒有訂單。

專題步驟指引

以下是完成這個專題的一些建議步驟,供你參考:

  1. 設計主選單

    • 使用 print() 函數顯示餐點類別選項。
    • 使用 input() 函數接收使用者的選擇。
  2. 實作子選單邏輯

    • 根據主選單的選擇,使用 if-else 判斷來顯示相應的餐點選項。
    • 在每個餐點類別內,使用巢狀的 if-else 來處理具體餐點的選擇。
  3. 計算總金額

    • 根據使用者選擇的餐點,累加價格到總金額變數中。
  4. 顯示訂單明細

    • 使用 print() 函數輸出所選餐點名稱和價格。
    • 顯示總金額。
  5. 處理無效選擇

    • 當使用者輸入的選項不在有效範圍內時,顯示錯誤訊息。

擴展挑戰

當你完成基本功能後,可以嘗試以下擴展挑戰,讓專案更加豐富:

  1. 多項選擇功能

    • 允許使用者在每個類別中選擇多個餐點,並計算總金額。
  2. 添加折扣系統

    • 根據總金額提供不同的折扣,例如總金額超過 $300 享有 10% 折扣。
  3. 重複點餐功能

    • 使用 while 迴圈讓使用者可以反覆點餐,直到選擇退出。

11/8 for 迴圈 / while 迴圈

課程目標

  • 理解迴圈的基本概念及其在程式中的重要性
  • 掌握 for 迴圈和 while 迴圈的基本語法和運作方式
  • 能夠運用迴圈解決實際的程式問題
  • 培養邏輯思維能力和問題解決能力

課程大綱

第一部分:迴圈的基本概念

一、什麼是迴圈?

迴圈是一種讓程式碼重複執行多次的結構。

number = 3 while not STOP: write down an number on the paper number += 1
# write_numbers.py # 定義要寫入的文件名 filename = 'numbers.txt' # 使用 with 語句打開文件,確保文件操作後自動關閉 with open(filename, 'w') as file: # 循環寫入 1 到 10 for number in range(1, 11): file.write(f"{number}\n") print(f"數字 1 到 10 已成功寫入 {filename}")

二、迴圈的兩種類型

  1. for 迴圈

    • 適用於已知執行次數或遍歷序列(如列表、字串)的情況。
  2. while 迴圈

    • 適用於執行次數不確定,需依據條件來決定是否繼續的情況。

while 迴圈

一、while 迴圈的基本語法

while 條件:
    程式碼區塊
  • 條件:只要條件為真,迴圈就會繼續執行。
  • 程式碼區塊:每次迴圈要執行的程式碼。

二、範例講解

  1. 基本範例
count = 0
while count < 5:
    print(count)
    count += 1
  • 解釋:這段程式會輸出 0 到 4,因為當 count 小於 5 時,持續執行迴圈。
  • 執行結果
    ​​0
    ​​1
    ​​2
    ​​3
    ​​4
    
  1. 使用者輸入
while True:
    name = input("請輸入你的名字(輸入 'exit' 離開):")
    if name.lower() == 'exit':
        print("離開程式。")
        break
    print(f"你好,{name}!")
  • 解釋:這段程式會反覆要求使用者輸入名字,直到使用者輸入 'exit' 為止。
  • 執行結果
    ​​請輸入你的名字(輸入 'exit' 離開):小明
    ​​你好,小明!
    ​​請輸入你的名字(輸入 'exit' 離開):exit
    ​​離開程式。
    

三、應用練習

  1. 練習題目一:計算使用者輸入的數字總和,直到使用者輸入 0 為止
total = 0
while True:
    num = int(input("請輸入一個數字(輸入 0 結束):"))
    if num == 0:
        break
    total += num
print("總和是:", total)
  1. 練習題目二:製作一個簡單的猜數字遊戲
import random

secret_number = random.randint(1, 10)
guess = None

while guess != secret_number:
    guess = int(input("猜一個 1 到 10 的數字:"))
    if guess < secret_number:
        print("太小了!")
    elif guess > secret_number:
        print("太大了!")
    else:
        print("恭喜你,猜對了!")

for 迴圈

一、for 迴圈的基本語法

for 變數 in 範圍:
    程式碼區塊
  • 變數:用來接收每次迴圈的值。
  • 範圍:可以是數字範圍(使用 range())、列表、字串等。
  • 程式碼區塊:每次迴圈要執行的程式碼。

二、範例講解

  1. 使用 range() 進行迴圈
for i in range(5):
    print(i)
  • 解釋:這段程式會輸出 0 到 4。
  • 執行結果
    ​​0
    ​​1
    ​​2
    ​​3
    ​​4
    
  1. 遍歷字串
word = "Python"
for letter in word:
    print(letter)
  • 解釋:這段程式會依序輸出字串中的每一個字母。
  • 執行結果
    ​​P
    ​​y
    ​​t
    ​​h
    ​​o
    ​​n
    

三、應用練習

  1. 練習題目一:計算 1 到 10 的總和
total = 0
for i in range(1, 11):
    total += i
print("總和是:", total)
  • 預期結果:總和是:55

第四部分:forwhile 迴圈的比較

一、適用情境

  • for 迴圈

    • 已知執行次數,例如遍歷列表、字串或使用 range() 進行固定次數的迴圈。
  • while 迴圈

    • 執行次數不確定,需要根據條件來決定是否繼續,例如等待使用者輸入、處理未知長度的數據等。

二、優缺點

  • for 迴圈

    • 優點:結構清晰,適合處理固定次數的迴圈,容易閱讀和維護。
    • 缺點:在需要根據條件動態調整迴圈次數時,較不靈活。
  • while 迴圈

    • 優點:更靈活,可以根據條件動態調整迴圈次數。
    • 缺點:容易發生無限迴圈,需小心控制條件變化。

第五部分:實作練習

一、練習題目

  1. 使用 for 迴圈列印 1 到 20 的奇數
for i in range(1, 21):
    if i % 2 != 0:
        print(i)
  • 預期結果
    ​​1
    ​​3
    ​​5
    ​​7
    ​​9
    ​​11
    ​​13
    ​​15
    ​​17
    ​​19
    
  1. 使用 for 迴圈,製作一個九九乘法表
for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i} x {j} = {i*j}", end="\t")
    print()  # 換行
  • 預期結果
    ​​1 x 1 = 1    1 x 2 = 2    ...    1 x 9 = 9
    ​​2 x 1 = 2    2 x 2 = 4    ...    2 x 9 = 18
    ​​...
    ​​9 x 1 = 9    9 x 2 = 18   ...    9 x 9 = 81
    
  1. 編寫一個程式,讓使用者反覆輸入數字,直到輸入 0 為止,最後顯示所有輸入的數字的平均值
numbers = []
while True:
    num = int(input("請輸入一個數字(輸入負數結束):"))
    if num == 0:
        break
    numbers.append(num)

if numbers:
    average = sum(numbers) / len(numbers)
    print("平均值是:", average)
else:
    print("沒有輸入有效的數字。")
  • 執行範例
    ​​請輸入一個數字(輸入負數結束):5
    ​​請輸入一個數字(輸入負數結束):10
    ​​請輸入一個數字(輸入負數結束):15
    ​​請輸入一個數字(輸入負數結束):-1
    ​​平均值是: 10.0
    

第六部分:結合 for 迴圈和 if-else 的小專案

小專案:學生成績管理系統

專案目標
建立一個簡單的成績管理系統,讓使用者輸入多位學生的姓名及分數,然後顯示每位學生的等級(例如:A、B、C 等),最後顯示班級的平均分數。

專案步驟

  1. 收集學生資料

    • 使用 for 迴圈來收集多位學生的姓名和分數。
    • 可以預設學生人數,或者使用 while 迴圈讓使用者決定輸入多少學生。
  2. 判斷等級

    • 使用 if-else 判斷每位學生的分數,並分配等級。
  3. 計算平均分數

    • 使用迴圈來計算所有學生的分數總和,然後計算平均分數。
  4. 顯示結果

    • 列出每位學生的姓名、分數及等級。
    • 顯示班級的平均分數。

範例程式碼

# 步驟一:收集學生資料
students = []
num_students = int(input("請輸入學生人數:"))

for i in range(num_students):
    name = input(f"輸入第 {i+1} 位學生的姓名:")
    score = float(input(f"輸入 {name} 的分數:"))
    students.append({'name': name, 'score': score})

# 步驟二:判斷等級
for student in students:
    score = student['score']
    if score >= 90:
        grade = 'A'
    elif score >= 80:
        grade = 'B'
    elif score >= 70:
        grade = 'C'
    elif score >= 60:
        grade = 'D'
    else:
        grade = 'F'
    student['grade'] = grade

# 步驟三:計算平均分數
total_score = 0
for student in students:
    total_score += student['score']
average_score = total_score / num_students

# 步驟四:顯示結果
print("\n學生成績及等級:")
for student in students:
    print(f"姓名:{student['name']},分數:{student['score']},等級:{student['grade']}")

print(f"\n班級平均分數:{average_score:.2f}")

執行範例

請輸入學生人數:3
輸入第 1 位學生的姓名:小明
輸入 小明 的分數:85
輸入第 2 位學生的姓名:小華
輸入 小華 的分數:92
輸入第 3 位學生的姓名:小美
輸入 小美 的分數:76

學生成績及等級:
姓名:小明,分數:85.0,等級:B
姓名:小華,分數:92.0,等級:A
姓名:小美,分數:76.0,等級:C

班級平均分數:84.33
Select a repo