Reply to the Carlos Catucci's message, wrote on 30/09/2022 at 19:12:


On Fri, 30 Sept 2022 at 18:33, Gabriele Battaglia <iz4...@libero.it <mailto:iz4...@libero.it>> wrote:

    Ho risolto.
    Se serve, posto il codice.


E' sempre interessante vedere come un dev risolve un algoritmo, se ti va di postarlo a me farebbe piacere vederlo

Certo Carlos.
E' talmente breve che lo posto tutto, scusandomi se faccio qualcosa di non gradito o se la formattazione si perde. E' un programma che genera dei finti call radioamatoriali che io poi invio agli amici che sto allenando in telegrafia affinché li decodifichino ad orecchio. La materia è un po di settore, se quanto ho scritto ti risulta oscuro, non preoccuparti, è normale! :) Sono io ad avere interessi fuori standard. Ahahahaha.

Ecco il codice.

***
# QRZ - Programma che crea calls inventati e numeri progressivi, da usare negli esercizi CW
# Data concepimento 30/9/2022 by IZ4APU.

import random
from string import ascii_uppercase, digits
from GBUtils import key

MDL={'a0a':4,
                                        'a0aa':6,
                                        'a0aaa':15,
                                        'aa0a':6,
                                        'aa0aa':18,
                                        'aa0aaa':36,
                                        '0a0a':2,
                                        '0a0aa':2,
                                        '0a0aaa':2,
                                        'a00a':3,
                                        'a00aa':3,
                                        'a00aaa':4}
# Carlos, questo è il dizionario con i modelli dei calls e la percentuale di probabilità che vengano estratti a sorte. # La prossima def poi si preoccupa di sostituire le "a" con lettere casuali e gli "0" con numeri casuali.

def Mkdqrz(c):
        q=''
        c=c[0]
        for j in str(c):
                if j.isdigit():
                        q+=random.choice(digits)
                else:
                        q+=random.choice(ascii_uppercase)
        return q

print("QRZ 1.0. crea calls e numeri progressivi per esercitarsi in CW\nBy IZ4APU - Gabriele Battaglia.\nQualsiasi tasto per procedere, ESC per terminare.")

cont=1
while True:
        c=random.choices(list(MDL.keys()), weights=MDL.values(), k=1)
        qrz=Mkdqrz(c)
        pgr=random.randint(1,9999)
        prompt=f"- {cont:0>4} {qrz} 5nn {pgr:0>4}"
        wait=key(msg=prompt)
# key è una utility mia che interroga la tastiera e ritorna il tasto quando lo hai premuto.
        print()
        if ord(wait)==27: break
        cont+=1
print("Bye-Bye & 73. de IZ4APU Gabe")

_______________________________________________
Python mailing list
Python@lists.python.it
https://lists.python.it/mailman/listinfo/python

Rispondere a