# -*- coding: utf-8 -*-
#----------------------

##-----------------------------questions
def question_c() :
    global choix
    
    print("Choisir le chiffre l'unité de départ")
    print()
    print("------------------------------------")
    print()
    print(" Convertir les DMS en DD...--....=1")
    print()
    print(" convertir les DD en DMS...--....=2")
    print()
    print("------------------------------------")
    print()
    choix = input(" Entrer votre choix ? ")
    try :
        choix = int(choix)
    except :
        print()
        print("Vous devez taper uniquement l'un des deux chiffres, et rien d'autre !")
        question_c() # tourniquet pour chiffre non conforme
    
    if choix < 1 or choix > 2 :
        print()
        print("Vous devez taper uniquement 1 ou 2 !")
        question_c() # tourniquet pour chiffre non conforme
    
    return
#-----------------------------degrés - pour DMS -> DD--------------------------------------------------------
def question_d() :
    global degré
    
    degré = input(" Degrés ? ")
    try :
        degré = int(degré)
    except :
        print()
        print("Vous devez taper uniquement des chiffres, et rien d'autre !")
        question_d() # tourniquet pour chiffre non conforme
    
    if degré < 0 or degré > 359 :
        print()
        print("Ce chiffre doit être comprit entre 0 et 359 !")
        question_d() # tourniquet pour chiffre non conforme
    
    return
#-----------------------------minutes
def question_m() :
    global minute
    
    minute = input(" minutes ? ")
    try :
        minute = int(minute)
    except :
        print()
        print("Vous devez taper uniquement des chiffres, et rien d'autre !")
        question_m() # tourniquet pour chiffre non conforme
    
    if minute < 0 or minute > 59 :
        print()
        print("Ce chiffre doit être comprit entre 0 et 59 !")
        question_m() # tourniquet pour chiffre non conforme
            
    return
#-----------------------------secondes
def question_s() :
    global seconde
    
    seconde = input(" secondes ? ")
    try :
        seconde = float(seconde)
    except :
        print()
        print("Vous devez taper uniquement des chiffres, et rien d'autre !")
        question_s() # tourniquet pour chiffre non conforme
    
    if seconde < 0.0 or seconde > 59.99 :
        print()
        print("Ce chiffre doit être comprit entre 0.0 et 59.99 !")
        question_s() # tourniquet pour chiffre non conforme
        
    return
#-----------------------------calc DD
def rep_dd() :
    global seconde
    global minute
    global décimales_1
    global décimales_m
    global décimales_s
    global degré_décim
    
    décimales_1 = seconde / 60         # 0.décimales pour les minutes
    décimales_m = décimales_1 + minute  # minutes + décimales
    décimales_s = décimales_m / 60      # 0.décimale pour les secondes
    degré_décim = degré + décimales_s
    degré_décim = round(degré_décim, 6)
    
    return
#-----------------------------impression DD
def inprm_dd() :
    global degré
    global minute
    global seconde
    global degré_décim
    
    print()
    print()
    print("", degré, "° ", minute, "' ", seconde, "\"")
    print()
    print(" ", degré_décim, "degrés")
    
    return
#-----------------------------question pour les degrés - pour DD -> DMS-------------------------------------
def question_dd() :
    global degré_décim
    
    degré_décim = input(" Degrés décimaux? ")
    try :
        degré_décim = float(degré_décim)
    except :
        print()
        print("Vous devez taper uniquement des chiffres, et rien d'autre !")
        question_dd() # tourniquet pour chiffre non conforme
        
    if degré_décim <0 or degré_décim > 59.999999 :
        print()
        print("Ce chiffre doit être comprit entre 0.0 et 59.999999 ! maximum 6 chiffres après la virgule")
        question_dd() # tourniquet pour chiffre non conforme
        
    return
#-----------------------------calc DD -> DMS
def rep_dms() :
    global degré_décim
    global int_degré
    global frac_degré
    global rep_minute
    global int_minute
    global frac_minute
    global rep_seconde
        
    int_degré = int(degré_décim)             # partie entière des degrés décimaux (les degrés)
    frac_degré = degré_décim - int_degré     # partie fractionnaire des degrés décimaux
    rep_minute = frac_degré * 60             # x 60 pour calculer les minutes
    int_minute = int(rep_minute)             # partie entière des minutes (les minutes)
    frac_minute = rep_minute - int_minute    # partie fractionnaire des minute
    rep_seconde = frac_minute * 60           # x 60 pour calculer les seconde (les secondes) jusqu'aux centième
    rep_seconde = round(rep_seconde, 3)      # réponce pour les secondes  (les secondes jusqu'aux centième)
    
    return
#-----------------------------impression DMS
def imprm_dms() :
    global degré_décim
    global int_degré
    global rep_minute
    global rep_seconde
    
    print()
    print()
    print(" ", degré_décim, "degrès")
    print()
    print("", int_degré, "° ", int_minute, "' ", rep_seconde, "\"")
    
    return
#-----------------------------[main] déclaration des variables globales--------------------------------------
global choix
global degré
global minute
global seconde
global décimales_1
global décimales_m
global décimales_s
global degré_décim
global int_degré
global frac_degré
global rep_minute
global int_minute
global rep_seconde
#-----------------------------initialisation des variables
choix = 0
degré = 0
minute = 0
seconde = 0.0
décimales_1 = 0.0
décimales_m = 0.0
décimales_s = 0.0
degré_décim = 0.0
int_degré = 0
frac_degré = 0.0
rep_minute = 0.0
int_minute = 0
frac_minute = 0.0
rep_seconde = 0.0
#-----------------------------début du prgm
question_c()
if choix == 1 :
    print()
    question_d()
    question_m()
    question_s()
    rep_dd()
    inprm_dd()

if choix == 2 :
    print()
    question_dd()
    rep_dms()
    imprm_dms()
#-----------------------------------------------------------------------------------Sortie
print()
print("----------------------")
bye = (input ("Entrer pour Sortir...!"))