Python: Wie drucke ich den Bereich az?

109

1. Drucken Sie ein: abcdefghijklmn

2. Jede Sekunde in einem: acegikm

3. Fügen Sie einen URL-Index hinzu {hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n

hhh
quelle
6
Seltsam, dass Sie auf eine "Anfänger" -Frage immer noch eine Vielzahl von Antworten erhalten können. Die Tatsache, dass ich tippen kann, bedeutet nicht, dass ich "Python" kann. Ich mag Gnibblers Antwort über unordentliche Dinge wirklich. Vielen Dank an alle für Ihre Antworten und - halten Sie die Dinge einfach, besonders danke an gnibbler.
hhh
2
Es ist keine wilde Vielfalt von Antworten. Es sind zwei Sorten. Eine Verwendung rangeund eine chr()andere die fertigen Listen string, an die viele Leute nicht denken würden.
Lennart Regebro

Antworten:

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

Um die URLs zu erstellen, können Sie so etwas verwenden

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]
John La Rooy
quelle
1
Ich glaube, string.ascii_lowercase hat bereits in Python 2.x funktioniert, verwenden Sie also immer ascii_lowercase.
johk95
1
@ johk95, ist tatsächlich vom str.lowercaseGebietsschema abhängig, war also überhaupt nicht die beste Wahl. Ich habe es in meiner Antwort ersetzt
John La Rooy
Hallo, könnte ich sagen, ob dies nur auf Englisch verfügbar ist? Kann ich das nicht auch für andere Sprachen bekommen? Danke und beste Grüße
Michael Schroter
47

Angenommen, dies ist eine Hausaufgabe ;-) - keine Notwendigkeit, Bibliotheken usw. zu beschwören - es wird wahrscheinlich erwartet, dass Sie range () mit chr / ord verwenden, wie folgt:

for i in range(ord('a'), ord('n')+1):
    print chr(i),

Spielen Sie im Übrigen etwas mehr mit der Reichweite ()

Nas Banov
quelle
23

Hinweise:

import string
print string.ascii_lowercase

und

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

und

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

Holen Sie sich eine Liste mit den gewünschten Werten

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))

oder

import string
string.letters
string.uppercase
string.digits

Diese Lösung verwendet die ASCII-Tabelle . ordRuft den ASCII-Wert von einem Zeichen ab und chrumgekehrt.

Wenden Sie an, was Sie über Listen wissen

>>> 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
quelle
Es sieht so aus, als ob string.letters in Python 3 entfernt wurde und nur string.ascii_letters, nicht genau das gleiche , verfügbar ist
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
quelle
1
Um dies zu einem Tupel (das unveränderlich ist) in Python 3 zu machen: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']

und

for c in list(string.ascii_lowercase)[:5]:
    ...operation with the first 5 characters
Miguel Silva
quelle
4
myList = [chr(chNum) for chNum in list(range(ord('a'),ord('z')+1))]
print(myList)

Ausgabe

['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 Mehr
quelle
Willkommen bei StackOverflow. Versuchen Sie klarer zu erklären, warum dies eine vollständige Antwort auf die Frage ist.
Jeroen Heier
Vielen Dank. Ich mag es, wie du das baust.
Hmacias
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
quelle
2

Die Antwort auf diese Frage ist einfach. Erstellen Sie einfach eine Liste mit dem Namen ABC wie folgt:

ABC = ['abcdefghijklmnopqrstuvwxyz']

Und wann immer Sie sich darauf beziehen müssen, tun Sie einfach:

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)

Versuchen Sie auch dies, um Ihr Gerät zu beschädigen: 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
quelle
2

Versuchen:

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

Dies ist deine 2. Frage: string.lowercase[ord('a')-97:ord('n')-97:2]denn 97==ord('a')- wenn du etwas lernen willst, solltest du den Rest selbst herausfinden ;-)

Jochen Ritzel
quelle
1
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
quelle
1

Ich hoffe das hilft:

import string

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

Über die Antwort von Gnibbler.

Zip-Funktion, vollständige Erklärung , Rückgabekonstrukt a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]heißt Listenverständnis , sehr coole Funktion!

hhh
quelle
0

Ein anderer Weg, es zu tun

  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

Ergebnis

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

Wie unterscheidet sich dies von den anderen Antworten?

  • Iterieren Sie über eine beliebige Anzahl von Basis-URLs
  • Blättern Sie durch die URLs und hören Sie nicht auf, bis uns die Buchstaben ausgehen
  • Verwendung enumeratein Verbindung mit Listenverständnis und str.format
dreftymac
quelle