Python: comment imprimer la plage A-z?
1. Imprimer a-N: a b c d E F G H i J K l M N
2. Chaque seconde dans a-n: a c e G I k M
3. Ajouter une à l'index des url{hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n
13 réponses
>>> import string
>>> string.ascii_lowercase[:14]
'abcdefghijklmn'
>>> string.ascii_lowercase[:14:2]
'acegikm'
Pour faire les URL, vous pouvez utiliser quelque chose comme ceci
[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]
En supposant que c'est un devoir ; -) - pas besoin d'invoquer des bibliothèques etc-il s'attend probablement à ce que vous utilisiez range () avec chr/ord, comme ceci:
for i in range(ord('a'), ord('n')+1):
print chr(i),
Pour le reste, il suffit de jouer un peu plus avec la gamme ()
Conseils:
import string
print string.ascii_lowercase
Et
for i in xrange(0, 10, 2):
print i
Et
"hello{0}, world!".format('z')
Obtenir une liste avec les valeurs désirées
small_letters = map(chr, range(ord('a'), ord('z')+1))
big_letters = map(chr, range(ord('A'), ord('Z')+1))
digits = map(chr, range(ord('0'), ord('9')+1))
Ou
import string
string.letters
string.uppercase
string.digits
Cette solution utilise la table ASCII . ord
obtient la valeur ascii d'un caractère et chr
vice-versa.
Appliquez ce que vous savez sur les listes
>>> small_letters = map(chr, range(ord('a'), ord('z')+1))
>>> an = small_letters[0:(ord('n')-ord('a')+1)]
>>> print(" ".join(an))
a b c d e f g h i j k l m n
>>> print(" ".join(small_letters[0::2]))
a c e g i k m o q s u w y
>>> s = small_letters[0:(ord('n')-ord('a')+1):2]
>>> print(" ".join(s))
a c e g i k m
>>> urls = ["hello.com/", "hej.com/", "hallo.com/"]
>>> print([x + y for x, y in zip(urls, an)])
['hello.com/a', 'hej.com/b', 'hallo.com/c']
import string
print list(string.ascii_lowercase)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
#1)
print " ".join(map(chr, range(ord('a'),ord('n')+1)))
#2)
print " ".join(map(chr, range(ord('a'),ord('n')+1,2)))
#3)
urls = ["hello.com/", "hej.com/", "hallo.com/"]
an = map(chr, range(ord('a'),ord('n')+1))
print [ x + y for x,y in zip(urls, an)]
La réponse à cette question est simple, il suffit de faire une liste appelée ABC comme suit:
ABC = ['abcdefghijklmnopqrstuvwxyz']
Et chaque fois que vous avez besoin de vous y référer, faites simplement:
print ABC[0:9] #prints abcdefghij
print ABC #prints abcdefghijklmnopqrstuvwxyz
for x in range(0,25):
if x % 2 == 0:
print ABC[x] #prints acegikmoqsuwy (all odd numbered letters)
Essayez également ceci pour casser votre périphérique: D
##Try this and call it AlphabetSoup.py:
ABC = ['abcdefghijklmnopqrstuvwxyz']
try:
while True:
for a in ABC:
for b in ABC:
for c in ABC:
for d in ABC:
for e in ABC:
for f in ABC:
print a, b, c, d, e, f, ' ',
except KeyboardInterrupt:
pass
C'est votre 2ème question: string.lowercase[ord('a')-97:ord('n')-97:2]
, car 97==ord('a')
-- si vous voulez en savoir un peu vous devriez comprendre le reste vous-même ;-)
list(string.ascii_lowercase)
['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Essayez:
strng = ""
for i in range(97,123):
strng = strng + chr(i)
print(strng)
import string
print list(string.ascii_lowercase)
# ['a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z']
Et
for c in list(string.ascii_lowercase)[:5]:
...operation with the first 5 characters
À propos de la réponse de gnibbler.
Zip -fonction, explication complète, renvoie a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables.
[...]
construire est appelé compréhension de liste, caractéristique très cool!