Il primo if è ok
L’else successivo non lo metterei ma farei continuare il programma con il messaggio (il break nel primo if fa uscire subito)
Per l’if seguente controllerei se hai raggiunto il massimo di iterazioni del for, se si messaggio di uscita e break
Eliminerei l’ultimo else facendo l’append e poi calcolando i tentativi rimasti e mostrando il messaggio e facendo il join sulla lista senza il for che metti alla fine