# TQC python 3 ``` #TQC-Python 1 #8月2日 https://www.facebook.com/buddin5678/posts/pfbid025PJyB7QKfv7nSyK7ZARHmBFYJ2FwJiR2kx5e13ydgmBPmTXt4z18hojs55vk9poTl #PYA102.py 格式化輸出 #23.12 395.3 100.4617 564.329 ''' a = float(input()) b = float(input()) c = float(input()) d = float(input()) print('|%7.2f %7.2f|' % (a,b)) print('|%7.2f %7.2f|' % (c,d)) print('|%-7.2f %-7.2f|' % (a,b)) print('|%-7.2f %-7.2f|' % (c,d)) #- - #PYA104.py 計算圓面積 #10 2.5 import math r = float(input()) print(f'Radius = {r:.2f}') print(f'Perimeter = {2 * math.pi * r:.2f}') print(f'Area = {math.pi * r * r:.2f}') #- - #PYA106.py 公里英哩換算 #10 25 3 x = int(input()) y = int(input()) z = int(input()) print(f'Speed = {z/1.6/(x*60+y)*3600:.1f}') #- - #PYA108.py 座標距離計算 #2 1 5.5 8 x1 = eval(input()) y1 = eval(input()) x2 = eval(input()) y2 = eval(input()) print(f'( {x1} , {y1} )') print(f'( {x2} , {y2} )') D = ((x1-x2)**2 + (y1-y2)**2)**0.5 print(f'Distance = {D:.4f}') #- - #PYA110.py 正n邊形面積計算 #8 6 from math import * n = int(input()) s = int(input()) print(f'Area = {n*s**2/( 4*tan(pi/n) ):.4f}') #- - #PYA202.py 倍數判斷 #55 36 92 15 a = int(input()) j = (a % 3 == 0) + (a % 5 == 0) * 2 fn1 = f'{a} is not a multiple of 3 or 5.' fn2 = f'{a} is a multiple of 3.' fn3 = f'{a} is a multiple of 5.' fn4 = f'{a} is a multiple of 3 and 5.' print( (fn1,fn2,fn3,fn4)[j] ) #- - a = int(input()) j = (a % 3 == 0) + (a % 5 == 0) * 2 b = ["3 or 5","3","5","3 and 5"] print(f'{a} is{[""," not"][j==0]} a multiple of {b[j]}.') #- - #204 算術運算 #30 20 * a = int(input()) b = int(input()) OP = input() j = (OP == '+') + (OP == '-')*2 + (OP == '*')*3 + \ (OP == '/')*4 + (OP == '//')*5 + (OP == '%')*6 y = ('',a+b,a-b,a*b,a/b,a//b,a%b) print(y[j]) #- - #206 等級判斷 #79 B s = int(input()) print('FCBA'[(s>59) + (s>69) + (s>79)]) #- - #208 十進位換算 #13 D, 8 8 n = int(input()) print(hex(n)[2:].upper()) #- - #210 三角形判斷 #5 6 13 a = int(input()) b = int(input()) c = int(input()) v = (a+b-c)*(a-b+c)*(-a+b+c) print(["Invalid",a+b+c][v>0]) #- - #302 迴圈偶數連加 #14 1144 327714 a = int(input()) b = int(input()) print(sum(list(range(a+a%2,b+1,2)))) #- - #304 迴圈倍數總和 #21 50 n = int(input()) print(sum(list( range(n//5+1) ))*5) #print(sum(list(range(5,int(input())+1,5)))) #- - #306 迴圈階乘計算 #15 1307674368000 n = int(input()) prod = 1 for i in range(2,n+1): prod *= i print(prod) #- - #308 迴圈位數加總 freq = int(input()) for i in range(freq): num = input() sum = 0 for i in range(len(num)): sum += int(num[i]) print(f'Sum of all digits of {num} is {sum}') #- - for i in range(int(input())): num = input() sum = 0 for i in range(len(num)): sum += int(num[i]) print(f'Sum of all digits of {num} is {sum}') #- - #310 迴圈公式計算 #8 1.8284 n = int(input()) a = 1 sum = 0 for i in range(n-1): b = (i+2)**0.5 sum += 1/(a+b) a = b print(f'{sum:.4f}') #- - n = int(input()) sum = 0 for i in range(1,n): sum += 1/(i**0.5+(i+1)**0.5) print(f'{sum:.4f}') #- - #402 不定數迴圈-最小值 m,n = 0,0 while n != 9999: n = int(input()) if m > n: m = n print(m) #- - x = [0] while x[-1] != 9999: x += [int(input())] print(min(x[1:])) #- - #404 數字反轉判斷 print(input()[::-1]) #- - #406 不定數迴圈-BMI計算 while True: h = int(input())/100 if h == -99.99: break w = int(input()) BMI = w/h**2 a = (BMI>=18.5) + (BMI>=25) + (BMI>=30) state = ('under weight','normal','over weight','fat') print(f'BMI: {BMI:.2f}') print(f'State: {state[a]}') #- - h = int(input()) x = ["under weight","normal","over weight","fat"] while h != -9999: w = int(input()) BMI = w/(h/100)**2 print(f'BMI: {BMI:.2f}') y = (BMI>=18.5) + (BMI>=25) + (BMI>=30) print(f'State: {x[y]}') h = int(input()) #- - h = int(input()) x = ('fat','over weight','normal','under weight') while h != -9999: w = int(input()) BMI = w/(h/100)**2 print(f'BMI: {BMI:.2f}') y = (BMI<18.5) + (BMI<25) + (BMI<30) print(f'State: {x[y]}') h = int(input()) #- - #408 奇偶數個數計算 odd = 0 for i in range(10): odd += int(input()) % 2 print(f'Even numbers: {10-odd}') print(f'Odd numbers: {odd}') #- - #410 繪製等腰三角形 n = int(input()) for i in range(n): print(f'{" "*(n-1-i)}{"*"*(2*i+1)}') #- - n = int(input()) for i in range(n): print(' '*(n-i-1),end='') print('*'*(i*2+1)) #- - #502 乘積 def compute(a,b): print(a*b) compute(int(input()),int(input())) #- - #504 次方計算 def compute(a,b): print(a**b) compute(int(input()),int(input())) #- - #506 一元二次方程式 def compute(a,b,c): D = b**2 - 4*a*c if D < 0: print('Your equation has no root.') elif not D: print(-b/(2*a)) else: print( (-b+D**0.5)/(2*a),(-b-D**0.5)/(2*a),sep=', ') a = int(input()) b = int(input()) c = int(input()) compute(a,b,c) #- - def compute(a,b,c): D = b**2-4*a*c if D < 0: print('Your equation has no root.') elif D == 0: print(b/(2*a)) else: u = (-b+D**0.5)/(2*a) v = (-b-D**0.5)/(2*a) print(f'{u}, {v}') a = int(input()) b = int(input()) c = int(input()) compute(a,b,c) #- - #508 最大公因數* def compute(a,b): while b: a, b = b, a % b return a a,b = map(int, input().split(',')) print(compute(a,b)) #- - #510 費氏數列 def compute(n): a,b,x = 0,1,'0 1 ' for i in range(n-2): a,b = b, a+b x += f'{b} ' print(x) n = int(input()) compute(n) #- - def compute(n): a,b=0,1 print(a,b,end=' ') for i in range(n-2): a,b=b,a+b print(b,end=' ') compute(int(input())) #- - def fib(n): # 建立函式 fib,帶有參數 n if n > 1: # 如果 n 大於 1 return fib(n-1) + fib(n-2) # 使用遞迴 return n for i in range(20): # 產生 20 個數字 print(fib(i), end = ',') #- - #602 撲克牌總和 x = ('A','2','3','4','5','6','7','8','9','10','J','Q','K') D = dict( zip(x, list(range(1,14)) ) ) a = 0 for i in range(5): a += D[input()] print(a) #- - i,a = 0,0 x = ('A','2','3','4','5','6','7','8','9','10','J','Q','K') D = dict( zip(x, list(range(1,14)) ) ) while i < 5: n = input() if n: a += D[n] i += 1 print(a) #- - x = 'AJQK' sum = 0 for i in range(5): n = input() if n in x: sum += (1,11,12,13)[x.find(n)] else: sum += int(n) print(sum)''' #- - #604 眾數 i = 0 x,y = [],[] while i < 10: try: a = 1 n = int(input()) if n in x: a += x.count(n) x += [n] y += [a] i += 1 except: pass f = max(y) print(x[y.index(f)]) print(f) #- - x,y = [],[] for i in range(10): a = 1 n = int(input()) if n in x: a += x.count(n) x += [n] y += [a] f = max(y) print(x[y.index(f)]) print(f) #- - # Python 605 成績計算 i = 0 x = [] while i < 10: try: n = int(input()) x += [n] i += 1 except: pass s = sum(x) - max(x) - min(x) print(s) print(f'{s/8:.2f}') #- - Python 606 二維串列行列數 def compute(rows,cols): for row in range(rows): for col in range(cols): print(f'{col - row:4d}', end='') print() rows = int(input()) cols = int(input()) compute(rows,cols) #- - def compute(r,c): for i in range(r): for j in range(c): print(f'{j-i:4d}',end='') print() r = int(input()) c = int(input()) compute(r,c) #- - x = [] #Python 607 成績計算 y = ('1st','2nd','3rd') for i in range(3): print(f'The {y[i]} student:') for j in range(5): n = int(input()) x += [n] for i in range(3): print(f'Student {i+1}') a = 5*i s = sum(x[a:a+5]) print(f'#Sum {s}') print(f'#Average {s/5:.2f}') #- - i = 0 #Python 608 最大最小值索引 x = [] while i < 9: n = input() if n: x += [int(n)] i += 1 a = max(x) a1,a2 = divmod( x.index(a),3) b = min(x) b1,b2 = divmod( x.index(b),3) print(f'Index of the largest number {a} is: ({a1}, {a2})') print(f'Index of the smallest number {b} is: ({b1}, {b2})') #- - x = [] for i in range(9): x += [int(input())] L,s = max(x),min(x) a,b = x.index(L),x.index(s) print( f'Index of the largest number {L} is: ({a//3}, {a%3})') print(f'Index of the smallest number {s} is: ({b//3}, {b%3})') #- - x = [] #Python 609 矩陣相加 for i in range(1,3): print(f'Enter matrix {i}:') for j in range(1,3): for k in range(1, 3): n = int(input(f'[{j}, {k}]: ')) x += [n] for i in range(2): print(f'Matrix {i+1}:') for j in range(2): for k in range(2): print(x[i*4+j*2+k], end=' ') print() print(f'Sum of 2 matrices:') for j in range(2): for k in range(2): print(x[j*2+k] + x[4+j*2+k], end=' ') print() #- - #Python 610 平均溫度 x = [] for i in range(4): print(f'Week {i+1}:') for j in range(3): x += [eval(input(f'Day {j+1}:'))] print(f'Average: {sum(x)/12:.2f}') print(f'Highest: {max(x)}') print(f'Lowest: {min(x)}') x = [] #Python 702 數組合併排序 for i in range(2): print(f'Create tuple{i+1}:') n = 0 while n != -9999: n = input() if n: n = int(n) x += [n] if n == -9999: x.pop() print(f'Combined tuple before sorting: {tuple(x)}') print(f'Combined list after sorting: {sorted(x)}') y = [] for i in range(2): print(f'Create tuple{i+1}:') x = [0] while x[-1] != -9999: x += [int(input())] y += x[1:-1] print(f'Combined tuple before sorting: {tuple(y)}') print(f'Combined list after sorting: {sorted(y)}') x = [0] for i in range(2): print(f'Create tuple{i+1}:') while x[-1] != -9999: x += [int(input())] x.pop() print(f'Combined tuple before sorting: {tuple(x[1:])}') print(f'Combined list after sorting: {sorted(x[1:])}') #Python 704 集合條件判斷 x = set() n = 0 while n != -9999: n = int(input()) x |= {n} x.remove(n) print(f'Length: {len(x)}') print(f'Max: {max(x)}') print(f'Min: {min(x)}') print(f'Sum: {sum(x)}') #Python 706 全字母句 x = 'abcdefghijklmnopqrstuvwxyz' n = int(input()) i = 0 while i < n: y = input() if y: y = y.lower() k = 0 for j in x: if j not in y: print(False) k = 1 break if not k: print(True) i += 1 x = 'abcdefghijklmnopqrstuvwxyz' for i in range(int(input())): y = input().lower() k = 0 for j in x: if j not in y: print(False) k = 1 break if not k: print(True) for i in range(int(input())): y = set(input().lower()) if len(y) == 27: print(True) else: print(False) #Python 708 詞典合併 x = {} for i in range(2): print(f'Create dict{i+1}:') k = input('Key: ') while k != 'end': x[k] = input('Value: ') k = input('Key: ') y = sorted(list(x)) for i in range(len(y)): print(f'{y[i]}: {x[y[i]]}') x = {} #Python 710 詞典搜尋 while True: k = input('Key: ') if k == 'end': break x[k] = input('Value: ') if input('Search key: ') in x: print(True) else: print(False) x = {} k = input('Key: ') while k != 'end': x[k] = input('Value: ') k = input('Key: ') if input('Search key: ') in x: print(True) else: print(False) sum = 0 #Python 802 字元對應 s = input() for i in range(len(s)): n = ord(s[i]) print(f"ASCII code for '{s[i]}' is {n}") sum += n print(sum) #- - s = input() #Python 804 大寫轉換 print(s.upper()) print(s.title()) #- - #Python 806 字元次數計算 def compute(s1): print(f'{s1} occurs {s.count(s1)} time(s)') s = input() a = 0 while a < 1: s1 = input() if s1: compute(s1) a += 1 def compute(s1): print(f'{s1} occurs {s.count(s1)} time(s)') s = input() compute(input()) def compute(s,u): print(f'{u} occurs {s.count(u)} time(s)') compute(input(),input()) #- - a = 0 #Python 808 社會安全碼 SSN = input() for i in (0,1,2,4,5,7,8,9,10): if not SSN[i].isdigit(): print('Invalid SSN') a = 1 break if not a: print('Valid SSN') #- - n = int(input()) #Python 810 最大值與最小值之差 for i in range(n): a = 0 while a < 1: x = list(map(float, input().split())) if x: print(f'{max(x)-min(x):.2f}') a += 1 n = int(input()) for i in range(n): x = list(map(float,input().split())) print(f'{max(x)-min(x):.2f}') #- - #Python 902 資料加總 with open('read.txt') as fn: xs = fn.read() x = xs.split() sum = 0 for i in range(len(x)): sum += int(x[i]) print(sum) #- - #Python 904 資料計算 # -*- coding: UTF-8 -*- with open('read.txt') as fn: xs = fn.read() x = xs.split() n,h,w = [],[],[] b = len(x) // 3 x1 = xs.split('\n') for i in range(b): print(x1[i]) n += [x[i*3]] h += [int(x[i*3+1])] w += [int(x[i*3+2])] if i == b-1: break print() h1 = max(h) w1 = max(w) print(f'Average height: {sum(h)/b:.2f}') print(f'Average weight: {sum(w)/b:.2f}') print(f'The tallest is {n[h.index(h1)]} with {h1:.2f}cm') print(f'The heaviest is {n[w.index(w1)]} with {w1:.2f}kg') #- - #Python 904 資料計算 # -*- coding: UTF-8 -*- f = open('read.txt','r') y = f.readlines() n,h,w = [],[],[] for xs in y: print(xs) x = xs.split() n += [x[0]] h += [float(x[1])] w += [float(x[2])] h1 = max(h) w1 = max(w) print(f'Average height: {sum(h)/len(h):.2f}') print(f'Average weight: {sum(w)/len(w):.2f}') print(f'The tallest is {n[h.index(h1)]} with {h1:.2f}cm') print(f'The heaviest is {n[w.index(w1)]} with {w1:.2f}kg') f.close() #- - #Python 906 字串資料取代 with open(input()) as fn: xs = fn.read() while True: s1 = input() if s1: break while True: s2 = input() if s2: break print('=== Before the replacement') print(xs) print('=== After the replacement') print( xs.replace(s1,s2) ) #- - with open(input()) as fn: xs = fn.read() s1 = input() s2 = input() print('=== Before the replacement') print(xs) print('=== After the replacement') print( xs.replace(s1,s2) ) #- - #Python 908 單字次數計算 with open(input()) as fn: xs = fn.read() x = xs.split() n = int(input()) y = [] for i in set(x): if x.count(i) == n: y += [i] for i in sorted(y): print(i) #- - #Python 910 學生基本資料 with open('read.dat',encoding='UTF-8') as fn: xs = fn.read() x = xs.split('\n') for i in x: print(i) if i == x[-1]: break print() y = [] x1 = xs.split() b = len(x1) // 4 n = 0 for i in range(1,b): n += int(x1[i*4+2]) print(f'Number of males: {n}') print(f'Number of females: {b-n-1}') #- - with open('read.dat',encoding='UTF-8') as fn: xs = fn.read() x = xs.split('\n') for i in x: print(i) if i == x[-1]: break print() x1 = xs.split() print(f'Number of males: {x1.count("1")}') print(f'Number of females: {x1.count("0")}') xs = '' #Python 901 成績資料 i = 0 while i < 5: L = list( map(str,input().split()) ) if L: if i == 4: xs += f'{L[0]} {L[1]}' break xs += f'{L[0]} {L[1]}"\n"' i += 1 xs = xs.replace('"','') with open('write.txt','w') as fn: fn.write(xs) #- - i = 0 #Python 903 成績資料 x = '' while i < 5: n = input() if n: x += f'\n{n}' i += 1 with open('data.txt','a') as fn: fn.write(x) print('Append completed!') print('Content of "data.txt":') with open('data.txt') as fn: xs = fn.read() print(xs) #- - #Python 905 字串資料刪除 with open(input()) as fn: xs = fn.read() while True: s1 = input() if s1: break print('=== Before the deletion') print(xs) print('=== After the deletion') print(xs.replace(s1,'')) #- - 書9-28 #Python 907 詳細資料顯示 with open(input()) as fn: xs = fn.read() x = xs.split('\n') j = 0 for k in x: if k: j += 1 print(f'{j} line(s)') x1 = xs.split() print(f'{len(x1)} word(s)') x2 = xs.replace(' ','') a = xs.count('\n') print(f'{len(x2)-a} character(s)') #- - x = '' #Python 909 聯絡人資料 i = 0 while i < 5: L = list( map(str,input().split()) ) if L: if i == 4: x += f'{L[0]} {L[1]}' break x += f'{L[0]} {L[1]}\n' i += 1 with open('data.dat','w') as fn: fn.write(x) with open('data.dat') as fn: x1 = fn.read() print('The content of "data.dat":') x2 = x1.split('\n') for j in x2: print(j) print() x = '' i = 0 while i < 5: L = list( map(str,input().split()) ) if i == 4: x += f'{L[0]} {L[1]}' break x += f'{L[0]} {L[1]}\n' i += 1 with open('data.dat','w') as fn: fn.write(x) with open('data.dat') as fn: x1 = fn.read() print('The content of "data.dat":') x2 = x1.split('\n') for j in x2: print(j) print() #- - s = input() #801 for i in range(len(s)): print(f"Index of '{s[i]}': {i}") #- - s = input().split() #803 print(s[-3],s[-2],s[-1]) #- - s = input() #805 print(f'|{s:<10s}|') print(f'|{s:^10s}|') print(f'|{s:>10s}|') #- - n = input().split() #807 s = 0 for i in n: s += int(i) print(f'Total = {s}') print(f'Average = {s/len(n):.1f}') #- - import re #Python 809 密碼規則 s = input() rule = re.compile('[a-z0-9]*[A-Z]+[a-z0-9]*') msg = rule.search(s) if not msg or len(msg[0]) < 8: print('Invalid password') else: print('Valid password') #競賽 N = int(input()) x = [] for i in range(N): n = int(input(' ')) x += [n] print(sum(x)-min(x)) ```