0

三角形の3つの角度または辺を入力できるプログラムをコーディングしています。これは、正三角形か二等辺三角形かを示します。残りの部分については今のところ心配していませんが、正三角形の部分に固執しています。 。これが私のコードです:

def idtri():
    print("\nDo you have all three sides, or al three angles?")
    print("(1) Sides")
    print("(2) Angles")
    choice = input()
    if choice == 1:
        print("\nType in the lengths of all of the sides.")
        t1 = input("1: ")
        t2 = input("2: ")
        t3 = input("3: ")
        print("Your triangle is an equalateral triangle.")
        menu()
    elif choice == 2:
        pass

 idtri()
4

2 に答える 2

1

最初に注意することは、三角形を不等辺三角形、二等辺三角形、または正三角形として識別するために、3つの値が角度であるか辺の長さであるかは関係なく、プロセスは次のとおりです。

3つの値がすべて同じである場合、三角形は正三角形です。それ以外の場合、2つの値が同じであれば、三角形は二等辺三角形になります。それ以外の場合、三角形は不等辺三角形です。

したがって、提供された等しい値の数に基づいて型を返す単純な関数を作成できます。

id_triangle = lambda a, b, c: {0: 'scalene', 1: 'isoceles', 3: 'equilateral'}\
                              [(a == b) + (a == c) + (b == c)]

次に、次のように、インタラクティブスクリプトからそれを呼び出します。

print('Your triangle is %s.' % id_triangle(t1, t2, t3))
于 2012-11-01T23:27:57.513 に答える
1

Pythonコレクションのカウンターを使用することもできます。

from collections import Counter

def idtri():
    cnt = Counter()
    side1 = input('Enter length of first side: ')
    cnt[side1] += 1
    side2 = input('Enter length of second side: ')
    cnt[side2] += 1
    side3 = input('Enter length of third side: ')
    cnt[side3] += 1

    if 3 in cnt.values():
        print('Equilateral Triangle')
    elif 2 in cnt.values():
        print('Isosceles Triangle')
    else:
        print('Scalene Triangle')


if __name__ == "__main__":
    idtri()
于 2018-07-31T20:28:04.633 に答える