本人是python小白,目前专业是土木类。前几天测量学实习填表的时候发现,角度之间的计算繁琐,容易出错,没有找到角度专用的计算器;除此之外,角度在计算三角函数的时候必须使用十进制的角度,想着就用刚学习的python基础知识写了套小工具。

结构很简单,就没有加注释,若有错误与需要改进的地方,欢迎评论。

import time
print("六十进制角度计算器")
print("作者 邵yz 苏州科技大学")


def plus():
    data1 = input("请输入第一个角度,请用空格分开度秒分:")
    data2 = input("请输入第二个角度,请用空格分开度秒分:")

    if len(data1) < 5 or len(data2) < 5:
        time.sleep(1)
        print("数据有误请重试")
        bar = False
    else:
        bar = True
    while bar:
        d1, fe1, mia1 = data1.split(" ")
        d2, fe2, mia2 = data2.split(" ")
        du1, fen1, miao1 = int(d1), int(fe1), int(mia1)
        du2, fen2, miao2 = int(d2), int(fe2), int(mia2)

        if miao2 >= 60 or miao1 >= 60 or fen2 >= 60 or fen1 >=60 :
           bar = False
           print("数据有误请重试")

        else :
            bar = True

        while bar:
            c = miao2 + miao1
            if c >= 60:
                c1 = c - 60
                miao_jinwei = 1
            else:
                miao_jinwei = 0
                c1 = c
            b = fen2 + fen1 + miao_jinwei
            if b >= 60:
                b1 = b - 60
                fen_jinwei = 1
            else:
                fen_jinwei = 0
                b1 = b
            a = du2 + du1 + fen_jinwei
            print("计算结果:", a, "度", b1, "分", c1, "秒")
            bar = False

def minus():
    data1 = input("请输入第一个角度(被减),请用空格分开度秒分:")
    data2 = input("请输入第二个角度,请用空格分开度秒分:")
    if len(data1) < 5 or len(data2) < 5:
        time.sleep(1)
        print("数据有误请重试")
        bar = False
    else:
        bar = True
    while bar:
        d1, fe1, mia1 = data1.split(" ")
        d2, fe2, mia2 = data2.split(" ")
        du1, fen1, miao1 = int(d1), int(fe1), int(mia1)
        du2, fen2, miao2 = int(d2), int(fe2), int(mia2)

        if miao2 >= 60 or miao1 >= 60 or fen2 >= 60 or fen1 >= 60:
            print("数据有误请重试")
            bar = False
        else:
            bar = True
        while bar:

            if miao1 >= miao2:
                c = miao1 - miao2
                miao_jiewei = 0
            else:
                c = 60 + miao1 - miao2
                miao_jiewei = 1

            if fen1 >= fen2 + miao_jiewei:
                b = fen1 - fen2 - miao_jiewei
                fen_jiewei = 0
            else:
                b = 60 + miao1 - miao2 - miao_jiewei
                fen_jiewei = 1

            a = du1 - du2 -fen_jiewei
            print("计算结果=", a, "度", b, "分", c, " 秒")
            bar = False


def transform():
    data1 = input("请输入角度,请用空格分开度秒分:")
    if len(data1) >= 5:
        d1, fe1, mia1 = data1.split(" ")
        du1, fen1, miao1 = int(d1), int(fe1), int(mia1)
        miao = 1/3600
        fen = 1/60
        result = du1 + fen1 * fen + miao1 * miao
        print(result)
    else:
        print("数据有误请重试")
mood = ""
cone = True
while cone :
    mood = input("加法扣1,减法扣2,六十进制转十进制扣3,退出请扣4:")
    if mood == "1":
        plus()
    elif mood == "2":
        minus()
    elif mood == "3":
        transform()
    elif mood == "4":
        print("谢谢使用!再会!")
        time.sleep(1)
        cone = False
    else:
        print("数据有误请重试")

更多推荐

有关角度分秒,和角度六十进制转换十进制的计算python小工具