Python可以這樣計算頂點座標型別的三角形面積
阿新 • • 發佈:2021-01-25
1.三角形面積
1.1 解題思路
首先判斷三個頂點是否在同一條直線上,若是,則為無效座標,給出提示,若不是,則根據給出的座標算出三條邊,然後按照海倫公式算出半周長,再計算三角形面積。
import math
# 方法一:表示座標用eval()函式
# x1, y1 = eval(input('x1,y1:'))
# x2, y2 = eval(input('x2,y2:'))
# x3, y3 = eval(input('x3,y3:'))
# 方法二:用數學括號座標的形式,比較簡化
(x1, y1), (x2, y2), (x3, y3) = eval(input('(x1,y1),(x2,y2),(x3,y3):'))
#
# # 方法三:比較繁雜,分別寫
# x1 = float(input('x1:'))
# y1 = float(input('y1:'))
# x2 = float(input('x2:'))
# y2 = float(input('y2:'))
# x3 = float(input('x3:'))
# y3 = float(input('y3:'))
if (x1 - x2) * (y1 - y2) == (x2 - x3) * (y2 - y3):
print('三點在同一條直線上!')
else :
# 採用s=(a+b+c)/2求得半周長後用求面積公式求解
a = float(math.sqrt((x1 - x2) ** 2 + (y1 - y2) ** 2))
b = float(math.sqrt((x2 - x3) ** 2 + (y2 - y3) ** 2))
c = float(math.sqrt((x1 - x3) ** 2 + (y1 - y3) ** 2))
s = (a + b + c) / 2
print("該三角形的三邊分別為:", a, b, c)
print("該三角形的半周長為:" , s)
# 計算三角線面積
area = float(math.sqrt((s * (s - a) * (s - b) * (s - c))))
print("該三角形的面積:", area)
注意:
點的座標用python語言表示基本常用的有3種,強烈推薦使用方法二:用數學括號座標的形式,比較簡化,
2.計算1—100之間數字、偶數、奇數的累加和
2.1 解題思路
類似於C語言中的累加和步驟,用while和if…else迴圈即可解決。
num = 0
sum_all = 0 # 1-100 所有數的和
sum_even = 0 # 1-100 偶數的累加和
sum_odd = 0 # 1-100 奇數的累加和
while num <= 100:
sum_all += num
if num % 2 == 0:
sum_even += num
else:
sum_odd += num
num += 1 # 迭代,改變條件表示式,使迴圈趨於結束
print("1-100 所有數的累加和為", sum_all)
print("1-100 偶數的累加和為", sum_even)
print("1-100 奇數的累加和為", sum_odd)
3.列印圖案
3.1 解題思路
首先觀察所列印的圖案為幾行幾列,採用for迴圈的方式列印語句,換行可使圖案變得美觀。
for x in range(5): # 5行
for y in range(5): # 5列
print(x, end="\t")
print() # 僅用於換行