101_整數格式化輸出
題目說明:
請撰寫一程式,輸入四個整數,然後將這四個整數以欄寬為5、欄與欄間隔一個空白字元,再以每列印兩個的方式,先列印向右靠齊,再列印向左靠齊,左右皆以直線 |(Vertical bar)作為邊界。
範例輸入1
85 4 299 478
範例輸出1
| 85 4| | 299 478| |85 4 | |299 478 |
觀察解釋:
這部分是格式化輸出處理,下面附上格式化輸出的重點以供日後複習,這題說要先提供輸入,所以首先必須使用到input()這個方法,取得輸入的字串,但注意這邊取得的是字串不是數字型態(int或float),所以可以在input()外面再包上eval()或是int(),把取得的字串轉型為int型態,把四個變數都取得後,就是要輸出部分,就如同下面表格所示,題目說有一個浮點數佔5欄,所以格式化寫成5d即可,5d表示是整數且占有5個位數,接著就是向右還是向左對齊,python默認都是向右靠齊,如果要向左靠齊就在前面加上 < 即可,中間要記得空一個哦,不然會被扣分。
程式碼:
a = eval(input())
b = eval(input())
c = eval(input())
d = eval(input())
print('|{:5d} {:5d}|'.format(a,b)) #也可以print('|{:>5d} {:>5d}|'.format(a,b))
print('|{:5d} {:5d}|'.format(c,d))
print('|{:<5d} {:<5d}|'.format(a,b))
print('|{:<5d} {:<5d}|'.format(c,d))
102_浮點數格式化輸出
題目說明:
請撰寫一程式,輸入四個分別含有小數1到4位的浮點數,然後將這四個浮點數以欄寬為7、欄與欄間隔一個空白字元、每列印兩個的方式,先列印向右靠齊,再列印向左靠齊,左右皆以直線 |(Vertical bar)作為邊界。
提示:輸出浮點數到小數點後第二位
範例輸入1
23.12
395.3
100.4617
564.329
範例輸出1
| 23.12 395.30|
| 100.46 564.33|
|23.12 395.30 |
|100.46 564.33 |
觀察解釋:
其實格式化輸出是python最基礎部分,這有很多種類型的格式,下面附上重點以供日後複習,這題說要先提供輸入,所以首先必須使用到input()這個方法,取得輸入的字串,但注意這邊取得的是字串不是數字型態(int或float),所以可以在input()外面再包上eval()或是float(),把取得的字串轉型為float型態,把四個變數都取得後,就是要輸出部分,就如同下面表格所示,題目說有一個浮點數佔7欄,並且浮點數到小數點第二位,很明顯就是要在格式化字串打入7.2f,接著就是向右還是向左對齊,python默認都是向右靠齊,如果要向左靠齊就在前面加上 < 即可,中間要記得空一個哦,不然會被扣分。
程式碼:
a = eval(input()) #float(input())也可以
b = eval(input())
c = eval(input())
d = eval(input())
print('|{:7.2f} {:7.2f}|'.format(a,b))
print('|{:7.2f} {:7.2f}|'.format(c,d))
print('|{:<7.2f} {:<7.2f}|'.format(a,b))
print('|{:<7.2f} {:<7.2f}|'.format(c,d))
103_字串格式化輸出
題目說明:
請撰寫一程式,輸入四個單字,然後將這四個單字以欄寬為10、欄與欄間隔一個空白字元、每列印兩個的方式,先列印向右靠齊,再列印向左靠齊,左右皆以直線 |(Vertical bar)作為邊界。
範例輸入1
I enjoy learning Python
範例輸出1
| I enjoy| | learning Python| |I enjoy | |learning Python |
觀察解釋:
這部分也是格式化輸出的觀念,但跟前面不同就是他是直接取得字串,故就不需要在input()前面加上東西(int()或是float()之類),但注意如果是字串的話,默認預設是向左靠齊,不同於數值型態是靠右對齊,其他都大同小異。
程式碼:
a = input()
b = input()
c = input()
d = input()
print('|{:>10s} {:>10s}|'.format(a,b)) #也可以不寫s--> print('|{:>10} {:>10}|'.format(a,b))
print('|{:>10s} {:>10s}|'.format(c,d))
print('|{:10s} {:10s}|'.format(a,b)) #也可以print('|{:<10s} {:<10s}|'.format(a,b))
print('|{:10s} {:10s}|'.format(c,d)
104_圓形面積計算
題目說明:
請撰寫一程式,輸入一圓的半徑,並加以計算此圓之面積和周長,最後請印出此圓的半徑(Radius)、周長(Perimeter)和面積(Area)
提示:
- ->需import math模組,並使用math.pi
- ->輸出浮點數到小數點後第二位
範例輸入1
10
範例輸出1
Radius = 10.00 Perimeter = 62.83 Area = 314.16
範例輸入2
2.5
範例輸出2
Radius = 2.50 Perimeter = 15.71 Area = 19.63
觀察解釋:
這題一樣也是先取得input的值,然後轉為數值型態以做運算,只要注意把浮點數取到小數點第二位,圓形周長為直徑*PI,而面積為半徑*半徑*PI,其他來說都沒啥問題。
程式碼:
import math
r = eval(input()) #一樣可以r = float(input())
print('Radius = {:.2f}\nPerimeter = {:.2f}\nArea = {:.2f}'.format(r,2*r*math.pi,r*r*math.pi))
105_矩形面積計算
題目說明:
請撰寫一程式,輸入兩個正數,代表一矩形之寬和高,計算並輸出此矩形之高(Height)、寬(Width)、周長(Perimeter)及面積(Area)
提示: 輸出浮點數到小數點後第二位
範例輸入1
23.5 19
範例輸出1
Height = 23.50 Width = 19.00 Perimeter = 85.00 Area = 446.50
觀察解釋:
這題跟前面幾個差不多,一樣是基本題,注意字不要打錯通常都輕鬆完成,我是把print寫成一行,也可以把它寫成4個print也可以
程式碼:
height = eval(input())
width = eval(input())
perimeter = (height + width) * 2
area = height * width
print('Height = {:.2f}\nWidth = {:.2f}\nPerimeter = {:.2f}\nArea = {:.2f}'.format(height,width,perimeter,area)
106_公里英哩換算
題目說明:
假設一賽跑選手在x分y秒的時間跑完z公里,請撰寫一程式,輸入x、y、z數值,最後顯示此選手每小時的平均英哩速度(1英哩等於1.6公里)
提示: 輸出浮點數到小數點後第一位
範例輸入1
10 25 3
範例輸出1
Speed = 10.8
觀察解釋:
這題就是簡單的數學題目而已,題目要求每小時的平均英哩速度,所以就先把x與y加總並轉換成單位小時,接下來就把公里除以1.6變成英哩,最後再除以時間就為答案了
程式碼:
x = eval(input())
y = eval(input())
z = eval(input())
time = ( x + y/60 )/60
mile = ( z / 1.6) / time
print('Speed = {:.1f}'.format(mile))
107_數值計算
題目說明:
請撰寫一程式,讓使用者輸入五個數字,計算並輸出這五個數字之數值、總和及平均數
提示: 輸出浮點數到小數點後第1位
範例輸入1
20 40 60 80 100
範例輸出1
20 40 60 80 100 Sum = 300.0 Average = 60.0
範例輸入2
88.7 12 56 132.55 3
範例輸出2
88.7 12 56 132.55 3 Sum = 292.2 Average = 58.5
觀察解釋:
相信前面做了許多的格式化輸出,到了這題也是覺得很類似,只是多了些數學運算,但這邊要注意就是input()外面只能用eval()包住,因為範例輸入分別有整數及浮點數,最後再注意是浮點數後第一位數就號
程式碼:
a = eval(input())
b = eval(input())
c = eval(input())
d = eval(input())
e = eval(input())
total = a+b+c+d+e
print('{} {} {} {} {}'.format(a,b,c,d,e))
print('Sum = {:.1f}'.format(total))
print('Average = {:.1f}'.format(total/5))
108_座標距離計算
題目說明:
請撰寫一程式,讓使用者輸入四個數字x1、y1、x2、y2,分別代表兩個點的座標(x1, y1)、(x2, y2)。計算並輸出這兩點的座標與其歐式距離
提示:
- ->歐式距離 = sqrt((x1 - x2)^2+(y1 - y2)^2)就是=>
- -> 兩座標的歐式距離,輸出到小數點後第4位
範例輸入1
2 1 5.5 8
範例輸出1
( 2 , 1 ) ( 5.5 , 8 ) Distance = 7.8262
範例輸入2
2.5
範例輸出2
Radius = 2.50 Perimeter = 15.71 Area = 19.63
觀察解釋:
這題也是關於數學計算,題目有附上方程式,所以就按照那個方程式來寫即可,有幾個要注意的就是開根號和平方,可以用一般的兩個星號**來當作什麼的幾次方,而開根號則用**0.5,表示0.5次方就是開根號的意思,其實也可以import math 來達到一樣效果,math.sqrt(x)表示開根號,math.pow(x,y)表示x的y平方
程式碼1:
x1 = eval(input())
y1 = eval(input())
x2 = eval(input())
y2 = eval(input())
print("( {} , {} )".format(x1,y1))
print("( {} , {} )".format(x2,y2))
print("Distance = {:.4f}".format(((x1-x2)**2+(y1-y2)**2)**0.5))
程式碼2:
import math
x1 = eval(input())
y1 = eval(input())
x2 = eval(input())
y2 = eval(input())
distance = math.sqrt(math.pow(x1 -x2,2)+math.pow(y1 -y2,2))
print('( {} , {} )'.format(x1,y1))
print('( {} , {} )'.format(x2,y2))
print('Distance = {:.4f}'.format(distance))
109_正五邊形面積計算
題目說明:
請撰寫一程式,讓使用者輸入一個正數s,代表正五邊形之邊長,計算並輸出此正五邊形之面積(Area)
提示:
- -> 建議使用import math模組的math.pow及math.tan
- -> 正五邊形面積的公式:
- -> 輸出浮點數到小數點後第四位
範例輸入1
5
範例輸出1
Area = 43.0119
觀察解釋:
這題依舊也是先取得input的值,然後轉為數值型態以做運算,只要注意把浮點數取到小數點第四位,還有要注意math.pow()是取平方,math.tan是回傳數值的正切,math.pi則是回傳PI值,都是公式會使用的的方法。
程式碼:
import math
a = eval(input())
area = (5*math.pow(a,2))/(4*math.tan(math.pi/5))
print('Area = {:.4f}'.format(area))
110_正n邊形面積計算
題目說明:
請撰寫一程式,輸入一圓的半徑,並加以計算此圓之面積和周長,最後請印出此圓的半徑(Radius)、周長(Perimeter)和面積(Area)
提示:
- -> 建議使用import math模組的math.pow及math.tan
- -> 正五邊形面積的公式:
- -> 輸出浮點數到小數點後第四位
範例輸入1
8 6
範例輸出1
Area = 173.8234
觀察解釋:
這題依舊也是先取得input的值,然後轉為數值型態以做運算,只要注意把浮點數取到小數點第四位,公式的括號要注意一下,其他就利用math.pow、math.tan、math.pi來幫我們完成即可,如下程式碼
程式碼:
import math
n = eval(input())
s = eval(input())
area = (n*math.pow(s,2))/(4*math.tan(math.pi/n))
print('Area = {:.4f}'.format(area))
留言列表