2021年10月10日 星期日

程式語言 Python::第4類:進階控制流程

程式語言 Python::第4類:進階控制流程 

源自於

https://weigecodingfun.blogspot.com/search/label/TQC%20%E7%A8%8B%E5%BC%8F%E8%AA%9E%E8%A8%80%20Python%3A%3A%E7%AC%AC4%E9%A1%9E%EF%BC%9A%E9%80%B2%E9%9A%8E%E6%8E%A7%E5%88%B6%E6%B5%81%E7%A8%8B

Python 410 繪製等腰三角形

設計說明:

請撰寫一程式,依照使用者輸入的n,畫出對應的等腰三角形。

3. 輸入輸出:

輸入說明

一個正整數

輸出說明

以 * 畫出等腰三角形
(每列最後一個 * 的右方無空白)

輸入輸出範例

範例輸入

7

範例輸出

      *
     ***
    *****
   *******
  *********
 ***********
*************

Code:

print("Python 410 繪製等腰三角形請撰寫一程式,依照使用者輸入的n,畫出對應的等腰三角形。");

n = int(input("輸入 n==>"))
 
for i in range(1,n+1):
  for sp in range(n-i):
    print(" ",end='')
  for star in range(i*2-1):
    print("*",end='')
  print()

Result:
Python 410 繪製等腰三角形請撰寫一程式,依照使用者輸入的n,畫出對應的等腰三角形。 輸入 n==>7 * *** ***** ******* ********* *********** *************


Python 409 得票數計算

設計說明:

某次選舉有兩位候選人,分別是No.1: Nami、No.2: Chopper。請撰寫一程式,輸入五張選票,輸入值如為1即表示針對1號候選人投票;輸入值如為2即表示針對2號候選人投票,如輸入其他值則視為廢票。每次投完後需印出目前每位候選人的得票數,最後印出最高票者為當選人;如最終計算有相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。

輸入輸出:

輸入說明

五個正整數(1、2或其他)

輸出說明

每次投完後需印出目前每位候選人的得票數
五張選票投票完成,最後印出最高票者為當選人

輸入輸出範例

輸入與輸出會交雜如下,輸出的部份以粗體字表示


2
Total votes of No.1: Nami =  0
Total votes of No.2: Chopper =  1
Total null votes =  0
1
Total votes of No.1: Nami =  1
Total votes of No.2: Chopper =  1
Total null votes =  0
8
Total votes of No.1: Nami =  1
Total votes of No.2: Chopper =  1
Total null votes =  1
2
Total votes of No.1: Nami =  1
Total votes of No.2: Chopper =  2
Total null votes =  1
2
Total votes of No.1: Nami =  1
Total votes of No.2: Chopper =  3
Total null votes =  1
=> No.2 Chopper won the election.

程式執行狀況擷圖

下圖中的 粉紅色點 為 空格
Alt text

Code:

print("某次選舉有兩位候選人,分別是No.1: Nami、No.2: Chopper。請撰寫一程式,輸入五張選票,")
print("輸入值如為1即表示針對1號候選人投票;輸入值如為2即表示針對2號候選人投票,如輸入其他值")
print("則視為廢票。每次投完後需印出目前每位候選人的得票數,最後印出最高票者為當選人;如最終")
print("計算有相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。")
N1=0
N2=0
Z=0
for i in range (1,6):
  N = int(input("輸入No.1: Nami、No.2: Chopper。 No==>"))
  if (N==1):
    N1=N1+1;
  elif (N==2):  
    N2=N2+1;
  else:    
    Z=Z+1;
  print("Nami票數 =  %d"%N1)
  print("Chopper票數=  %d"%N2)
  print("廢票   =  %d"%Z) 

print("選舉結果")
if (N1>N2):
    print("Nami票數=%d 為當選人" %N1)
elif (N2>N1):    
    print("Chopper票數=%d 為當選人" %N2)
else:
    print("無法選出當選人")

Result:

某次選舉有兩位候選人,分別是No.1: Nami、No.2: Chopper。請撰寫一程式,輸入五張選票, 輸入值如為1即表示針對1號候選人投票;輸入值如為2即表示針對2號候選人投票,如輸入其他值 則視為廢票。每次投完後需印出目前每位候選人的得票數,最後印出最高票者為當選人;如最終 計算有相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。 輸入No.1: Nami、No.2: Chopper。 No==>1 Nami票數 = 1 Chopper票數= 0 廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>2 Nami票數 = 1 Chopper票數= 1 廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>1 Nami票數 = 2 Chopper票數= 1 廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>2 Nami票數 = 2 Chopper票數= 2 廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>3 Nami票數 = 2 Chopper票數= 2 廢票 = 1 選舉結果 無法選出當選人

Result:
某次選舉有兩位候選人,分別是No.1: Nami、No.2: Chopper。請撰寫一程式,輸入五張選票, 輸入值如為1即表示針對1號候選人投票;輸入值如為2即表示針對2號候選人投票,如輸入其他值 則視為廢票。每次投完後需印出目前每位候選人的得票數,最後印出最高票者為當選人;如最終 計算有相同的最高票數者或無法選出最高票者,顯示【=> No one won the election.】。 輸入No.1: Nami、No.2: Chopper。 No==>1 Nami票數 = 1Chopper票數= 0廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>1 Nami票數 = 2Chopper票數= 0廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>2 Nami票數 = 2Chopper票數= 1廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>2 Nami票數 = 2Chopper票數= 2廢票 = 0 輸入No.1: Nami、No.2: Chopper。 No==>1 Nami票數 = 3Chopper票數= 2廢票 = 0 選舉結果 Nami票數=3 為當選人


Python 408 奇偶數個數計算

設計說明:

請撰寫一程式,讓使用者輸入十個整數,計算並輸出偶數和奇數的個數。

輸入輸出:

輸入說明

十個整數

輸出說明

偶數的個數
奇數的個數

輸入輸出範例

範例輸入

69
48
19
91
83
22
18
37
82
40

範例輸出

Even numbers: 5
Odd numbers: 5

Code:
print("請撰寫一程式,讓使用者輸入十個整數,計算並輸出偶數和奇數的個數。");
EVEN=0;
ODD=0;
for i in range (1,11):
  print("輸入第%d"%i,end='');
  print("個整數");
  
  N = int(input("N==>"))
  if (N%2==0):
    EVEN=EVEN+1;
  else:
    ODD=ODD+1;


print("偶數個數有%d"%EVEN,"個");
print("偶數個數有%d"%ODD,"個");

Result:
請撰寫一程式,讓使用者輸入十個整數,計算並輸出偶數和奇數的個數。 輸入第1個整數N==>12 輸入第2個整數N==>1 輸入第3個整數N==>1 輸入第4個整數N==>2 輸入第5個整數N==>6 輸入第6個整數N==>12 輸入第7個整數N==>12 輸入第8個整數N==>12 輸入第9個整數N==>9 輸入第10個整數N==>7 偶數個數有6個 偶數個數有4個


Python 407 不定數迴圈-閏年判斷

設計說明:

(1) 請撰寫一程式,以不定數迴圈的方式讓使用者輸入西元年份,然後判斷它是否為閏年(leap year)或平年。其判斷規則如下:每四年一閏,每百年不閏,但每四百年也一閏。
(2) 假設此不定數迴圈輸入-9999則會結束此迴圈。

輸入輸出:

輸入說明

一個正整數,直至-9999結束輸入

輸出說明

判斷是否為閏年或平年

輸入輸出範例

輸入與輸出會交雜如下,輸出的部份以粗體字表示

2017
2017 is not a leap year.
2000
2000 is a leap year.
2016
2016 is a leap year.
2009
2009 is not a leap year.
2018
2018 is not a leap year.
-9999

Code:

print("(1) 請撰寫一程式,以不定數迴圈的方式讓使用者輸入西元年份,然後判斷它是否為閏年");
print("   (leap year)或平年。其判斷規則如下:每四年一閏,每百年不閏,但每四百年也一閏。");
print("(2) 假設此不定數迴圈輸入-9999則會結束此迴圈。");
Year=0
while(Year!=-9999):
    Year= eval(input("輸入西元年份==>"));
    if (Year!=-9999):
      if (Year%4==0 and Year%100!=0):
        print(Year,"is a leap year 閏年.")
      elif (Year%400==0):
        print(Year,"is a leap year 閏年.")
      else:
        print(Year,"is not a leap year 平年.")


Result:

(1) 請撰寫一程式,以不定數迴圈的方式讓使用者輸入西元年份,然後判斷它是否為閏年 (leap year)或平年。其判斷規則如下:每四年一閏,每百年不閏,但每四百年也一閏。 (2) 假設此不定數迴圈輸入-9999則會結束此迴圈。 輸入西元年份==>2000 2000 is a leap year 閏年. 輸入西元年份==>1998 1998 is not a leap year 平年. 輸入西元年份==>1997 1997 is not a leap year 平年. 輸入西元年份==>1996 1996 is a leap year 閏年. 輸入西元年份==>-9999

Python 406 不定數迴圈-BMI計算

設計說明:

請撰寫一程式,以不定數迴圈的方式輸入身高與體重,計算出BMI之後再根據以下對照表,印出BMI及相對應的BMI代表意義(State)。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示:
BMI值代表意義
BMI < 18.5under weight
18.5 <= BMI < 25normal
25.0 <= BMI < 30over weight
30 <= BMIfat
提示:BMI=(kg)/2(m),輸出浮點數到小數點後第二位。 不需考慮男性或女性標準。

輸入輸出:

輸入說明

兩個正數(身高cm、體重kg),直至-9999結束輸入

輸出說明

輸出BMI值
BMI值代表意義

輸入輸出範例

輸入與輸出會交雜如下,輸出的部份以粗體字表示


176
80
BMI: 25.83
State: over weight
170
100
BMI: 34.60
State: fat
-9999

Code:
print("請撰寫一程式,以不定數迴圈的方式輸入身高與體重,計算出BMI之後再根據以下對照表,印出BMI及");
print("相對應的BMI代表意義(State)。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示:");
print("BMI值    代表意義");
print("BMI < 18.5   under weight");
print("18.5 <= BMI < 25   normal");
print("25.0 <= BMI < 30   over weight");
print("30 <= BMI    fat");
print("BMI = 體重(公斤) / 身高2(公尺2).");

W= eval(input("輸入體重(Kg)==>"));
while(W!=-9999):
    H= eval(input("輸入身高(Cm)==>"));
    BMI=W/ ((H/100)**2);
    print("BMI值=%.2f"%BMI);
    if (W!=-9999):
      if (BMI<18.5):
        print("體重太輕.")
      elif (BMI>=18.5 and BMI<25):
        print("體重正常.")
      elif (BMI>=25 and BMI<30):
        print("體重過重.")
      else:
        print("體重肥胖.")
    
    W= eval(input("輸入體重(Kg)==>"));

print("結束程式")

Result:

請撰寫一程式,以不定數迴圈的方式輸入身高與體重,計算出BMI之後再根據以下對照表,印出BMI及 相對應的BMI代表意義(State)。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示: BMI值 代表意義 BMI < 18.5 under weight 18.5 <= BMI < 25 normal 25.0 <= BMI < 30 over weight 30 <= BMI fat BMI = 體重(公斤) / 身高2(公尺2). 輸入體重(Kg)==>80 輸入身高(Cm)==>175 BMI值=26.12 體重過重. 輸入體重(Kg)==>-9999 結束程式


Python 405 不定數迴圈-分數等級

設計說明:

請撰寫一程式,以不定數迴圈的方式輸入一個正整數(代表分數),之後根據以下分數與GPA的對照表,印出其所對應的GPA。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示:
分 數GPA
90 ~ 100A
80 ~ 89B
70 ~ 79C
60 ~ 69D
0 ~ 59E

輸入輸出:

輸入說明

一個正整數,直至-9999結束輸入

輸出說明

依輸入值,輸出對應的GPA

輸入輸出範例

輸入與輸出會交雜如下,輸出的部份以粗體字表示


75
C
39
E
100
A
85
B
65
D
-9999

Code:

print("請撰寫一程式,以不定數迴圈的方式輸入一個正整數(代表分數),之後根據以下分數與GPA的對照表,");
print("印出其所對應的GPA。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示:");
print("分 數  GPA");
print("90~100 A");
print("80 ~ 89  B");
print("70 ~ 79  C");
print("60 ~ 69  D");
print("0 ~ 59 E");
N= eval(input("輸入一個正整數==>"));
while(N!=-9999):
  if (N>=90 and N<=100):
    print("GPA='A'");
  elif (N>=80 and N<=89):  
    print("GPA='B'");
  elif (N>=70 and N<=79):  
    print("GPA='C'");  
  elif (N>=60 and N<=69):  
    print("GPA='D'");
  else:
    print("PGA='E'");  

  N= eval(input("輸入一個正整數==>"));

print("結束程式")

Result:

請撰寫一程式,以不定數迴圈的方式輸入一個正整數(代表分數),之後根據以下分數與GPA的對照表, 印出其所對應的GPA。假設此不定數迴圈輸入-9999則會結束此迴圈。標準如下表所示: 分 數 GPA 90~100 A 80 ~ 89 B 70 ~ 79 C 60 ~ 69 D 0 ~ 59 E 輸入一個正整數==>100 GPA='A' 輸入一個正整數==>90 GPA='A' 輸入一個正整數==>89 GPA='B' 輸入一個正整數==>34 PGA='E' 輸入一個正整數==>76 GPA='C' 輸入一個正整數==>-9999 結束程式


Python 404 數字反轉判斷

設計說明:

請撰寫一程式,讓使用者輸入一個正整數,將此正整數以反轉的順序輸出,並判斷如輸入0,則輸出為0。

輸入輸出:

輸入說明

一個正整數或0

輸出說明

正整數反轉輸出。如輸入數值為0,輸出為0

輸入輸出範例

範例輸入1

31283

範例輸出1

38213

範例輸入2

0

範例輸出2

0

範例輸入3

135790

範例輸出3

097531

Code:

print("請撰寫一程式,讓使用者輸入一個正整數,將此正整數以反轉的順序輸出,並判斷如輸入0,則輸出為0。")

n=input("輸入一個正整數==>")
print("以反轉的順序輸出==>")
for i in range(1,len(n)+1):
    print(n[-i],end="")

Result:

請撰寫一程式,讓使用者輸入一個正整數,將此正整數以反轉的順序輸出,並判斷如輸入0,則輸出為0。 輸入一個正整數==>126636 以反轉的順序輸出==> 636621

Python 403 倍數總和計算

設計說明:

請撰寫一程式,讓使用者輸入兩個正整數a、b(a<=b),輸出從a到b(包含a和b)之間4或9的倍數(一列輸出十個數字、欄寬為4、靠左對齊)以及倍數之個數、總和。

輸入輸出:

輸入說明

兩個正整數a、b(a<=b)

輸出說明

格式化輸出兩個正整數之間4或9之倍數(包含a和b)
倍數個數
倍數總合

輸入輸出範例

範例輸入1

5
55

範例輸出1

8   9   12  16  18  20  24  27  28  32  
36  40  44  45  48  52  54  
17
513

範例輸入2

4
9

範例輸出2

4   8   9   
3
21

Code:
print("請撰寫一程式,讓使用者輸入兩個正整數a、b(a<=b),輸出從a到b(包含a和b)之間");
print("4或9的倍數(一列輸出十個數字、欄寬為4、靠左對齊)以及倍數之個數、總和。");
a=eval(input("輸入正整數a==>"));
b=eval(input("輸入正整數a==>"));

CNT=0
SUM=0
for i in range(a,b+1):
    if (i%4==0 or i%9==0):
        CNT+=1
        SUM+=i
        print("%-4d"%i,end="")
        if CNT%10==0:
            print()
print("\n個數=%d"%CNT);
print("總和=%d"%SUM);

Result:
請撰寫一程式,讓使用者輸入兩個正整數a、b(a<=b),輸出從a到b(包含a和b)之間 4或9的倍數(一列輸出十個數字、欄寬為4、靠左對齊)以及倍數之個數、總和。 輸入正整數a==>4 輸入正整數a==>56 4 8 9 12 16 18 20 24 27 28 32 36 40 44 45 48 52 54 56 個數=19 總和=573

Python 402 不定數迴圈-最小值

設計說明:

請撰寫一程式,讓使用者輸入數字,輸入的動作直到輸入值為9999才結束,然後找出其最小值,並輸出最小值。

輸入輸出:

輸入說明

n個數值,直至9999結束輸入

輸出說明

n個數值中的最小值

輸入輸出範例

範例輸入

29
100
948
377
-28
0
-388
9999

範例輸出

-388

Code:
print("請撰寫一程式,讓使用者輸入數字,輸入的動作直到輸入值為9999才結束,然後找出其最小值,並輸出最小值。");

L=[]
while True:
  n=eval(input("輸入數字"))
  if n==9999:
    break
  L.append(n)

print(min(L)) #min() 方法返回給定參數的最小值

Result:
請撰寫一程式,讓使用者輸入數字,輸入的動作直到輸入值為9999才結束,然後找出其最小值,並輸出最小值。 輸入數字12 輸入數字-9 輸入數字1 輸入數字34 輸入數字9999 -9

Python 401 最小值

設計說明:

請撰寫一程式,由使用者輸入十個數字,然後找出其最小值,最後輸出最小值。

輸入輸出:

輸入說明

十個數值

輸出說明

十個數值中的最小值

輸入輸出範例

範例輸入

23
57
48
2
99
70
9
65
35
88

範例輸出

2

Code:

print("請撰寫一程式,由使用者輸入十個數字,然後找出其最小值,最後輸出最小值");
L=[]
for i in range(1,11):
  print("輸入第%d"%i,"個數字");
  n=eval(input("==>"));
  L.append(n)

print("最小值=",end='');
print(min(L)) #min() 方法返回給定參數的最小值

Result:
請撰寫一程式,由使用者輸入十個數字,然後找出其最小值,最後輸出最小值 輸入第1 個數字 ==>-9 輸入第2 個數字 ==>34 輸入第3 個數字 ==>12 輸入第4 個數字 ==>56 輸入第5 個數字 ==>8 輸入第6 個數字 ==>2 輸入第7 個數字 ==>1 輸入第8 個數字 ==>7 輸入第9 個數字 ==>8 輸入第10 個數字 ==>90 最小值=-9

沒有留言:

張貼留言

Messaging API作為替代方案

  LINE超好用功能要沒了!LINE Notify明年3月底終止服務,有什麼替代方案? LINE Notify將於2025年3月31日結束服務,官方建議改用Messaging API作為替代方案。 //CHANNEL_ACCESS_TOKEN = 'Messaging ...