0
votes

Incrémenter à la fois les limites de départ et d'extrémité d'un index dans une boucle

Je suis toujours vraiment nouveau à Python ..

J'essaie de produire une boucle tandis que génère des morceaux successifs d'un texte. C'est ce que j'ai essayé: p> xxx pré>

cette sortie: p> xxx pré>

mais ce que je veux que ce je veux faire est: P>

a
ab
abc
abcd
abcde
reset
b
bc
bcd
bcde
bcdef
reset
c
cd
cde
etc...


2 commentaires

Pourquoi une boucle de temps? Pensez aussi à la valeur de i.


FYI: string.ascii_lowercase = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'


3 Réponses :


1
votes

C'est ce que je ferais: xxx


2 commentaires

Merci, je vais essayer ça. Pourquoi avez-vous fait la limite supérieure de la gamme J 6?


Parce que la plage (1,6) = [1,2,3,4,5]



1
votes

Essayez ceci:

alpha = 'abcdefghijklmnopqrstuvwxyz'

start = n = 0

while n < len(alpha):
    n += 1

    text = alpha[start:n]
    print(text)

    reset = len(text) > 4

    if reset:
        print('reset')
        start += 1
        n = start


7 commentaires

Merci! Pourquoi avez-vous choisi 20 pour i <20?


C'est ce que vous avez dans votre question, je vais le mettre à jour


En fait, quelle était la version que vous avez eue avec deux boucles? Je pense qu'une situation où j'ai une boucle "pour i in large ..." la boucle imbriquée à l'intérieur de la boucle "Bien que N


En fait, les deux boucles étaient complètement redondantes. La réponse était la même que la boucle tandis que la boucle de la réponse était englobée par pendant que je . Bien que deux boucles dans ce cas soient inutiles. Vous pouvez éventuellement ajouter une déclaration de pause si N (ou Démarrer) atteint un certain nombre si vous souhaitez arrêter la boucle à un certain point (par exemple si Démarrer == len (alpha) - 5: pause (Cela garantirait que vous ne commençez pas une autre itération lorsqu'il y a moins de cinq caractères à imprimer). Les deux tandis que des boucles au-dessus de la sortie exactement sur les mêmes critères et sont donc redondants.


Est-ce que la «I» dans votre solution est maintenant redondante? parce que vous ne l'utilisez nulle part ailleurs.


Oui c'est, je vais le supprimer. Nous pouvons également simplement affecter les deux démarrages et n comme tels start = n = 0


Laissez-nous Continuez cette discussion en chat .



0
votes
alpha = 'abcdefghijklmnopqrstuvwxyz'
count = 0
start = 0
i = 0
while i < 20:
    for j in range(start, len(alpha)):
        count +=1
        text = alpha[start:j]
        print(text)

        reset = count > 5

        if reset:
            print('reset', end='')
            start += 1
            i = start
            count = 0
            break
Pretty sure everyone already answered hhaa but did the answer so posting it.

0 commentaires