Kirjautuminen

Haku

Tehtävät

Keskustelu: Koodit: Python: numerojonot

koodaaja [30.09.2020 21:10:29]

#

Koodivinkissä etsitään numerojonoja, joissa pienet numerot on vasemmalla (0-4) ja suuret numerot oikealla (5-9). Kun numerojono on löydetty, tulostetaan kaikki ehtojen mukaiset numerojonot esim. 124024857 tulostetaan 124024857 ensimmäiseksi ja viimeiseksi 4857, eli otetaan vasemmalta pieniä numeroita pois. Numerojonossa täytyy olla alku ja loppu.

numerot = "97542213878950321995857224387328"

alku = False
loppu = False
#Seuraavalla kahdella muuttujalla määritellään pienten numeroiden alku -ja
#loppukohta
alku_indeksi = 0
loppu_indeksi = 0
#Tulostetaan numerojonoja, joissa pienet numerot (0-4)
#ovat vasemmalla ja suuret numerot (5-9) oikealla
#Tehokkuuden takia käytetään vain yhtä silmukkaa.
for x in range(0,len(numerot)):

    if (numerot[x] >= "0" and numerot[x] < "5"):

        if (alku == True and loppu == True):
            #Tulostetaan numerojono.
            #Numerojono päättyy, kun suuren numeron jälkeen tulee pieninumero
            for y in range(alku_indeksi,loppu_indeksi+1):
                print(numerot[y:x])
            print("")
            alku = False
            loppu = False
        if (alku == False):
            #Pienen numeron alkuindeksi.
            alku_indeksi = x
        alku = True
        loppu_indeksi = x #siirretään loppuindeksiä niin kauan kunnes tulee suuri numero

    elif (numerot[x] >= "5" and numerot[x] <= "9"):
        #Jotta olisi loppu, tarvitaan myös alku.
        if (alku == True):
            loppu = True

#Katsotaan jääkö vielä yksi numerojono.
if (alku == True and loppu == True):
    for y in range(alku_indeksi,loppu_indeksi+1):
        print(numerot[y:len(numerot)])
    print("")
    alku = False

Vastaus

Aihe on jo aika vanha, joten et voi enää vastata siihen.

Tietoa sivustosta