Python: comment imprimer la plage az?

110

1. Imprimez un: abcdefghijklmn

2. Chaque seconde dans un: acegikm

3. Ajoutez un à l'index des URL {hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n

hhh
la source
6
Curieusement, à une question «débutante», vous pouvez toujours obtenir une variété de réponses. Le fait que je puisse taper ne signifie pas que je peux "python", j'aime vraiment la réponse de gnibbler sur les choses en désordre. Merci à tous pour vos réponses et - gardez les choses simples, un merci spécial à gnibbler.
hhh
2
Ce n'est pas une grande variété de réponses. C'est deux variétés. Une utilisation rangeet chr()une autre les listes toutes faites string, auxquelles beaucoup de gens ne penseraient pas.
Lennart Regebro

Réponses:

191
>>> import string
>>> string.ascii_lowercase[:14]
'abcdefghijklmn'
>>> string.ascii_lowercase[:14:2]
'acegikm'

Pour faire les URL, vous pouvez utiliser quelque chose comme ça

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]
John La Rooy
la source
1
Je crois que string.ascii_lowercase fonctionnait déjà en python 2.x, donc pour être sûr, utilisez toujours ascii_lowercase.
johk95
1
@ johk95, dépend en str.lowercasefait des paramètres régionaux, ce n'était donc pas le meilleur choix en premier lieu. Je l'ai remplacé dans ma réponse
John La Rooy
Salut, seriez-vous en mesure de me dire si cela est uniquement disponible en anglais? ne puis-je pas obtenir la même chose pour les autres langues? Merci et meilleures salutations
Michael Schroter
48

En supposant que ce soit 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 plage ()

Nas Banov
la source
23

Conseils:

import string
print string.ascii_lowercase

et

for i in xrange(0, 10, 2):
    print i

et

"hello{0}, world!".format('z')
Wayne Werner
la source
18
for one in range(97,110):
    print chr(one)
yedpodtrzitko
la source
12

Obtenez une liste avec les valeurs souhaité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 . ordobtient la valeur ascii d'un caractère et chrvice 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']
Martin Thoma
la source
Il semble que string.letters a été supprimé dans Python 3 et que seule string.ascii_letters, pas exactement la même , est disponible
jonespm
8
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']
Mikhail Makeev
la source
1
Pour en faire un tuple (qui est immuable) en Python 3:tuple(string.ascii_lowercase)
Alex Willison
6
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
Miguel Silva
la source
4
myList = [chr(chNum) for chNum in list(range(ord('a'),ord('z')+1))]
print(myList)

Production

['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']
Rakesh Plus
la source
Bienvenue dans StackOverflow. Essayez d'expliquer plus clairement pourquoi il s'agit d'une réponse complète à la question.
Jeroen Heier
Merci. J'aime la façon dont vous construisez cela.
hmacias le
2
#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)]
carlos_lm
la source
2

La réponse à cette question est simple, faites simplement une liste appelée ABC comme ceci:

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 appareil: 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
SnootierBaBoon
la source
2

Essayer:

strng = ""
for i in range(97,123):
    strng = strng + chr(i)
print(strng)
Cetin Kaya Koc
la source
1

Ceci est votre deuxième question: string.lowercase[ord('a')-97:ord('n')-97:2]parce que 97==ord('a')- si vous voulez apprendre un peu, vous devriez trouver le reste vous-même ;-)

Jochen Ritzel
la source
1

J'espère que ça aide:

import string

alphas = list(string.ascii_letters[:26])
for chr in alphas:
 print(chr)
Fasih Zafar
la source
0

À propos de la réponse de gnibbler.

Zip -fonction, explication complète , retourne la a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]construction s'appelle la compréhension de liste , fonctionnalité très cool!

hhh
la source
0
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']
Townie
la source
0

Une autre façon de le faire

  import string
  pass

  aalist = list(string.ascii_lowercase)
  aaurls = ['alpha.com','bravo.com','chrly.com','delta.com',]
  iilen  =  aaurls.__len__()
  pass

  ans01 = "".join( (aalist[0:14]) )
  ans02 = "".join( (aalist[0:14:2]) )
  ans03 = "".join( "{vurl}/{vl}\n".format(vl=vjj[1],vurl=aaurls[vjj[0] % iilen]) for vjj in enumerate(aalist[0:14]) )
  pass

  print(ans01)
  print(ans02)
  print(ans03)
  pass

Résultat

abcdefghijklmn
acegikm
alpha.com/a
bravo.com/b
chrly.com/c
delta.com/d
alpha.com/e
bravo.com/f
chrly.com/g
delta.com/h
alpha.com/i
bravo.com/j
chrly.com/k
delta.com/l
alpha.com/m
bravo.com/n

En quoi cela diffère des autres réponses

  • itérer sur un nombre arbitraire d'URL de base
  • parcourez les URL et ne vous arrêtez pas tant que nous n'avons plus de lettres
  • utiliser enumerateen conjonction avec la compréhension de liste et str.format
dreftymac
la source