2010-06-29 6 views
0

Je n'arrive pas à imprimer une chaîne de caractères dans les lignes de chat contient 60 caractères.lignes d'impression contenant 60 caractères

mon code est ci-dessous:

s = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrtsucwxyz' 

for i in range(0, len(s), 60): 
    for k in s[i:i+60]: 
     print k 
+0

Quelle est la signification de "60 caractères"? Est-ce que cela fonctionne avec 59 caractères, ou est-ce que ce n'est pas pertinent? –

+0

Je l'utilise pour formater des données biologiques, j'ai donc besoin des lignes imprimées en caractères de 60 – Craig

Répondre

4

s[i:i+60] découpera les 60 caractères que vous voulez dans une chaîne. En ajoutant une deuxième boucle for, vous faites défiler chaque caractère de cette chaîne et vous l'exportez séparément. Envoyez simplement s[i:i+60] à la place

+0

d'oh !! Merci pour l'aide!! – Craig

+0

+1 pour répondre d'abord, et correctement – Dolph

+0

+1 pour une explication plus claire/débutant, répondant avant moi, et corriger la faute de frappe dans ma réponse :) – sdolan

4

Imprimez la découpe elle-même et non chaque caractère dans la découpe.

s = 'abcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrstuvwxyzabcdefghijklmnopqrtsucwxyz' 

for i in range(0, len(s), 60): 
    print s[i:i+60] 
+0

+1 pour afficher le code – Dolph

2

Vous pouvez également utiliser le textwrap module, à savoir textwrap.fill(s, 60)

+0

+1: Je ne savais même pas à propos du module textwrap. C'est * beaucoup * plus lent cependant. Test w/timeit sur 1000 itérations J'ai obtenu les résultats suivants: 400 caractères: 0.83 textwrap: 3.24, 4000 caractères: .83 ave textwrap: 244.09. – sdolan

Questions connexes