Il sito di Yahoo Answers verrà chiuso il 4 maggio 2021 (ora della costa est degli USA) e dal 20 aprile 2021 (ora della costa est degli USA) sarà in modalità di sola lettura. Non verranno apportate modifiche ad altre proprietà o servizi di Yahoo o al tuo account Yahoo. Puoi trovare maggiori informazioni sulla chiusura di Yahoo Answers e su come scaricare i tuoi dati in questa pagina di aiuto.

Anonimo
Anonimo ha chiesto in Computer e InternetProgrammazione e Design · 2 mesi fa

AIUTO URGENTE ESERCIZI PYTHON 10 PUNTI ALLA RISPOSTA MIGLIORE!?

Salve a tutti, sto cercando di svolgere un esercizio che non mi esce in nessun modo, vi invio la traccia e lo svolgimento. 

Es. se l=[1,2,3,2,5,5,1,8,8,8,8,8], il programma stamperà 1 2 3 2 5 5 1 ( 8 8 8 8 8 ).

Qualcuno potrebbe aiutami a capire come va svolto l'esercizio? Domani ho una verifica e vorrei capire dove sto sbagliando. 

i=0

contMax=0

while (i<len(l)-1):

  if (i==len(l)-2):

    if (l[i]==l[i+1]):

      contTemp=2

      if (contTemp>contMax):

        contMax=contTemp

        elementoRipetutoMax=l[i]

  elif (l[i]==l[i+1]):

    contTemp=1

    i+=1

    while (i!=len(l)-1) and (l[i]==l[i+1]):

      contTemp+=1

      i+=1

    contTemp+=1

    if (contTemp>contMax):

      contMax=contTemp

      elementoRipetutoMax=l[i]

  i+=1

j=0

cond=False

while (j<len(l)-1):

  if (l[j]==elementoRipetutoMax):

    if (l[j-1]==elementoRipetutoMax):

      print(l[j],end=" ")

    if (j==len(l)-2) and (l[j+1]==elementoRipetutoMax):

      print(l[j],l[j+1], end=" )")

      break

    elif (l[j+1]==elementoRipetutoMax) and (l[j-1]!=elementoRipetutoMax):

      q=j

      cont=1

      while (l[q]==l[j]):

        if (q==len(l)-2) and (l[q+1]==elementoRipetutoMax):

          cont+=1

          break

        cont+=1

        q+=1

      if (cont==contMax):

        cond=True

        print("(", l[j], end=' ')

  else:

    if (j!=0) and (cond==True) and (l[j-1]==elementoRipetutoMax):

      print(")", l[j], end=" ")

    else:

      print(l[j], end=' ')

  j+=1

3 risposte

Classificazione
  • 2 mesi fa

    for i in range(7):

        print(l[i], end = ' ')

    print(tuple(l[7:]))

  • 2 mesi fa

    Non capisco cosa sia sbagliato, se il programma da l=[1,2,3,2,5,5,1,8,8,8,8,8] deve stampare 1 2 3 2 5 5 1 ( 8 8 8 8 8 ) è quello che fa (ovviamente la prima riga dello script deve essere l=[1,2,3,2,5,5,1,8,8,8,8,8], ma questo è ovvio)

    Se invece intendevi che i nuemri uguali vicini devono essere fra parentesi non puoi fare così?

    l = [1,2,3,2,5,5,1,8,8,8,8,8] #lista da inserire che nel tuo caso è [1,2,3,2,5,5,1,8,8,8,8,8]

    l.append('elemento inutile')

    quantità = int(len(l) - 1)

    numero = 0

    risultato = ''

    try:

        while True: #crea numero per numero la variabile risultato

            if l[numero - 1] != l[numero] and l[numero + 1] == l[numero]:

                risultato = risultato + '('+ str(l[numero])

            elif l[numero - 1] == l[numero] and l[numero + 1] != l[numero]:

                risultato = risultato + str(l[numero]) + ')'

            else:  

                risultato = risultato + str(l[numero])

            numero += 1

            if numero < quantità: #stampare uno spazio fra ogni numero tranne l'ultimo

                risultato = risultato + ' '

    except: #dopo un tot di numeri il while True darà un errore out of index che noi "deviamo"

        pass

    print(risultato) #viene stampato a schermo il risultato

  • ?
    Lv 7
    2 mesi fa

    non so cosa dire               

Altre domande? Fai una domanda e ottieni le risposte che cerchi.