1. 程式人生 > 其它 >Python可以這樣計算頂點座標型別的三角形面積

Python可以這樣計算頂點座標型別的三角形面積

技術標籤:Pythonpython幾何學

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()  # 僅用於換行

在這裡插入圖片描述