以下為個人學習筆記和習題整理
課程:程式設計 Python - 德明財經科技大學 - 藍國桐

# 第一題 秒數計算 難度 🌟 ⭐️ ⭐️ ⭐️ ⭐️

  • 題目內容
    甲乙兩人參加 3000 公尺賽跑的成績分別是:A 分 B 秒 與 C 分 D 秒,
    請寫一個程式幫忙計算兩者成績相差幾秒。

    注意:有可能甲的時間比較短,也有可能乙的時間比較短

輸入範例輸出範例
1 10 1 28
1 50 2 010
  • 解題思路:
    先把分鐘轉成秒
    做相減,若答案是負的
    可以用 abs () 這個函數轉成正數
    也可以
    轉換成字串用迴圈去除負號
    或是用 replace () 來做字串替換
    把負號替換掉

# 解題代碼

import datetime
n = input().split()
n = list(map(int,n))
t1 = datetime.timedelta(0,n[0],n[1])
t2 = datetime.timedelta(0,n[1],n[2])
print(abs(t1-t2).seconds)

# 第二題 風速計算 難度 🌟 ⭐️ ⭐️ ⭐️ ⭐️

  • 題目內容
    蒲福風級是由英國海軍少將法蘭西斯蒲福所提出,主要用來紀錄風力,現分為 0~12 共 13 個級數。蒲福風級表通常可做為國際間的天氣預報使用。
    請寫一程式輸入蒲福風級經下列公式換算後輸出其對應實際風速 (請計算式小數
    點第二位四捨五入)。
    目前蒲福風級與對應實際風速的公式為:
    V=0.836(B3/2)V=0.836 * ( B^{3/2} ) ( V = 風速 m/s • B = 風級 • ^ 表示次方)

    注意:B 的 3/2 次方二 B 的三次方之後開根號

輸入範例輸出範例
1 10 1 28
1 50 2 010
  • 解題思路:
    平方使用 **
    根號使用 **0.5

# 解題代碼

print(round(0.836*((int(input())**3)**0.5),2))

# 第三題 運費計算 難度 🌟 🌟 ⭐️ ⭐️ ⭐️

  • 題目內容
    新竹貨運公司處理網路購物的運費如下,基本物流處理費 199
    元,货品重量前 1~5 公斤,每公斤 50 元,超過 5 公斤部分,每公斤 30 元,货品
    重量含小數點时均無條件進位。請寫一個程式用以計算貨品運費・輸入貨品重
    量後,計算所需費用。例如:9.5 公斤货品所需運費應為 599 元。
範例輸入範例輸出
10599
3.1399
  • 解題思路:
    使用 math 模組裡的 ceil () 做無條件進位

# 解題代碼

import math
n = float(input())
n = math.ceil(n)
m = 199
for i in range(1,n+1):
    if i<=5:
        m+=50
    else:
        m+=30
print(m)

# 第四題 猜數字遊戲 難度 🌟 🌟 ⭐️ ⭐️ ⭐️

  • 題目內容
    A 在手心寫個範圍在 1-10 的數字,握拳不可以被偷看喔
    B 開始猜,看看 B 在第幾次能猜到這個數字
    請以 A 為電腦、B 為使用者來設計這個程式
    電腦隨機產生一個 1-10 的數字,然後玩家開始輸入一個數字。如果相同,程式顯
    示玩家猜幾次然後結束;如果不同,程式顯示猜錯了然後繼續猜

  • 解題思路:
    使用 random 模組裡的 randint 做整數隨機亂數
    因為不知道要猜幾次所以用 while
    條件設直到輸入的數字等於一開始設的亂數就跳出迴圈

# 解題代碼

import random
x = random.randint(1,10)
m = 0
n = 0
while x != n:
    n = int(input())
    if n == x:
        m+=1
        print("你花了幾次",m,"猜中")
    else:
        m+=1
        print("猜錯 已猜了",m,"次")

# 第五題 計程車車資計算 難度 🌟 🌟 ⭐️ ⭐️ ⭐️

  • 題目內容
    搭計程車時,前 1.25 公里是起跳格 70 元,也就是在 1.25 公里內,不論距離一律
    收 70 元。過了 125 里後開始跳,每次 5 元,每隔 200 公尺一次。請撰寫一
    個計算計程車資的程式。輸入公里數,輸出車資。
範例輸入範例輸出
7.5230
0.870
  • 解題思路:
    for 圈用 200 間格
    是因為 200 公尺跳表一次
    太簡單我掰不出來了

# 解題代碼

n =  float(input())
km =  70 m =  1250 
for _ in  range(m,int(n*1000),200):
	km+=5
	print(70  if n <  1.25  else km)

# 第六題 大樂透開獎號碼 難度 🌟 🌟 🌟 ⭐️ ⭐️

  • 題目內容
    大樂透開獎時是 1-49 內數取出 6 個數字當開獎號碼,同時再取一個特 別號。換句話說,大樂透的開獎號碼一共包含 7 個數字,這些數字當然 不能重複。請撰寫一個程式,可以隨機產生一組大樂透的開獎號碼,中 獎號碼會由小到大顯示;特別號列在最後一個位置
範例輸入範例輸出
中獎號碼 6 13 17 29 33 40、特別號 21
中獎號碼 3 9 15 31 38 47、特別號 11
  • 解題思路:
    使用 random 模組裡的 sample () 做隨機產生 7 個亂數到串列裡
    把串列最後一個數存起來後移除
    把串列做排序

# 解題代碼

import random
list  =  [i for i in  range(1,50)]
x = random.sample(list,7)
z = x[6]
x.remove(x[6])
x.sort() 
print("中獎號碼",x[0],x[1],x[2],x[3],x[4],x[5],end =  '')  print("、特別號",z)

# 第七題 抓出遲到鬼 難度 🌟 🌟 ⭐️ ⭐️ ⭐️

  • 題目內容
    班上有座號 1-10 的 10 位同學,約好上九點在學校集合後一起出去玩。請寫個程 式,依照同學到達的順序輸入座號,然後依序輸出缺席的同學座號
範例輸入範例輸出
8 2 3 5 10 4 16 7 9
2 8 1 3 74 5 6 9 10
  • 解題思路:
    for 迴圈 1 開始要記得 11 結束
    若迴圈的數字不在串列裡則印出來

# 解題代碼

n =  [eval(i)  for i in  input().split()]
#n = list(map(int,input().split()))
for _ in  range(1,11):
	if _ not  in n:  print(_,end =  ' ')

# 第七題 遊覽車座位 難度 🌟 🌟 🌟 ⭐️ ⭐️

  • 題目內容
    程式設計課即將出遊,學生有 90 人 (編號 1 90), 有 5 台中型遊覽車 可以搭乘 (假設一可搭乘 20 人)。請將每位同學隨機分配到一台遊覽車 (車號 1,・・5), 列出每輛車所搭乘的學生編號,並輸出每台車的人數。 輸入無 輸出 車號 1: 共人,xxx 車號 2: 共 X 人,xxx 車號 3: 共 X 人,xxx 車號 4: 共人,xxx 車號 5: 共人,xxx 解題思路:產生一個存了 1~90 的串列 使用 random 模組裡的 shuffle (把陣列打亂 剩下的自己想我懶得打字 不然就來問我ク
範例輸入範例輸出
車號1:共x人,xxx <br> 車號2:共x人,xxx <br> 車號3:共x人,xxx <br> 車號4:共x人,xxx <br> 車號5:共x人,xxx
  • 解題思路:
    產生一個存了 1~90 的串列
    使用 random 模組裡的 shuffle () 把陣列打亂
    剩下的自己想我懶得打字
    不然就來問我ㄅ

# 解題代碼

import random
bus=[]
people = []
n = 0
m = 20
list = [i for i in range(1,91)]
random.shuffle(list)
for _ in range(5):
    people = [ i for i in list[n:m]]
    n = m
    m+=20
    bus.append(people)
for i in range(5):
    print("車號"+str(i+1)+" : 共"+str(len(bus[i]))+"人",end = "  ")
    for j in range(len(bus[i])):
        print(bus[i][j],end = " ")
    print

公車隨機人數版
import random
bus=[]
people = []
list = [i for i in range(1,91)]
random.shuffle(list)
import random
def bus_random():
    y = 0
    bus = []
    for i in range(4):
        x = random.randint(10,20)
        bus.append(x)
        y+=bus[i]
    if y >= 70:
        bus.append(90-y)
        return bus
    else:
        return bus_random()
bus_num = bus_random() 
n = 0
m = 0
for _ in range(5):
    m+=bus_num[_]
    people = [ i for i in list[n:m]]
    n = m
    bus.append(people)
    
for i in range(5):
    print("車號"+str(i+1)+" : 共"+str(len(bus[i]))+"人",end = "  ")
    for j in range(len(bus[i])):
        print(bus[i][j],end = " ")
    print()

更新於 閱讀次數

請我喝[茶]~( ̄▽ ̄)~*

ǼǾՖ唯一ی 微信支付

微信支付

ǼǾՖ唯一ی 支付寶

支付寶

ǼǾՖ唯一ی PayPal

PayPal