1) Identarea e fututa, pune cate 4 spatii cum trebuie, probabil ca le ai puse deja, dar la copy paste s-au pierdut, oricum daca ea nu e buna uneori in loc de erori primesti comportament ciudat (de fapt ciudat pentru tine ca pcul face exact ceea ce ii zici). 2) Ifurile sunt gandite prost, intotdeauna se va executa convertMiles fiindca primul if va fi intotdeauna True, deoarece prioritate are operatorul de comparatie apoi cei logici si chiar daca nu ar fi fost asa tot este aiurea pentru ca programul mai intai verifica daca ai introdus "miles" (sa zicem ca tu ai introdus "km") -> False apoi se duce la primul or si verifica expresia de dupa el "Miles" care este True (orice difera de 0, None, False, "", [], () este True). Ideea este ca dupa fiecare or sa te repeti cu distype == (adica if distype == "miles" or distype == "Miles" or distype == "Mil" or distype == "mil":). Dar dupa cum vezi e mult cod redundant asa ca ce ar fi sa restrangem iful la if distype in ("miles", "Miles", "Mil", "mil") ce poate fi redus la if distype.lower() in ("miles", "mil") ce poate fi redus la if distype[:3].lower() == "mil" sau de ce nu if distype[0].lower() == "m" analog si pentru km. Intotdeauna cand faci un program de genul ce interogheaza utilizatorul cauta sa stabilesti niste reguli stricte, spre exemplu sa verifici daca distanta este exact "mil" sau "km" daca nu sa fie semnalat cu un avertisment ca a introdus ceva gresit si cu posibilele intrari urmat de un exit sau reluare a buclei (daca faci o bucla a carei scapare este doar introducerea tuturor datelor corect). Oricum cred ca te-am plictisit deja, daca ai ajuns cu cititul pana aici e bine, totusi ar mai fi un: 3) Poti formata sirurile C-like: "Ana are %d mere si 4 %s." % (23, "pere") sau "Ana are {} mere si 4 {}.".format(23, pere). La .format cand nu ai nimic intre acolade atunci se ia ordinea argumentelor din paranteza rotunda a metodei, dar poti avea numere la acolade {0}...{1} si atunci se iau argumentele in functie de locul ocupat prin numar, dar se pot folosi si argumente de tip keyword adica: "Ana are {nrMere} mere si 4 {fruct}.".format(fruct="pere", nrMere=23) Daca mai ma uit mult pe codul tau mai dau si de altele dar nu are rost eu cand eram incepator nici de atat nu eram in stare , ma mir ca mai exista interes pentru asa ceva in noile generatii. Pune-te la punct cu logica, cu cele mai scurte si clare drumuri, gandeste algoritmul a fi cat mai robust si prompt si apoi apuca-te de practica mereu cu ideea in minte ca nu programul trebuie sa depinda de user ci invers (cel putin ca incepator) fiindca risti sa incepi cu stangul din prima.