Python: range az nasıl yazdırılır?


110

1. Bir: abcdefghijklmn yazdırın

2. Her saniyede bir: acegikm

3. URL'lerin dizinine bir ekleyin {hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n


6
Garip bir "başlangıç" sorusu için, yine de çeşitli yanıtlar alabiliyorsunuz. Yazabildiğim gerçeği "python" yapabileceğim anlamına gelmez, gerçekten gnibbler'ın dağınık şeyler için cevabını seviyorum. Cevaplarınız için herkese teşekkürler ve - gnibbler sayesinde işleri basit, özel tutun.
hhh

2
Çok çeşitli cevaplar değil. İki çeşittir. Bir kullanım rangeve chr()ve başka hazır listeleri stringbirçok kişi düşünmek olmaz.
Lennart Regebro

Yanıtlar:


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

URL'leri yapmak için böyle bir şey kullanabilirsin

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]

1
String.ascii_lowercase'in python 2.x'te zaten çalıştığına inanıyorum, bu yüzden her zaman ascii_lowercase'i kullanın.
johk95

1
@ johk95, aslında str.lowercaseyerel ayara bağlıdır, bu yüzden ilk etapta en iyi seçim değildi. Cevabımda onu değiştirdim
John La Rooy

Merhaba, bunun sadece İngilizce olarak mevcut olup olmadığını bana söyleyebilir misiniz? diğer diller için de aynı şeyi alamaz mıyım? Teşekkürler ve Saygılarımızla
Michael Schroter

48

Bunun bir ev ödevi olduğunu varsayarsak ;-) - kitaplıkları vb. Çağırmaya gerek yoktur - muhtemelen range () 'yi chr / ord ile kullanmanızı bekler, şöyle:

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

Geri kalanı için, aralıkla biraz daha oynayın ()


23

İpuçları:

import string
print string.ascii_lowercase

ve

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

ve

"hello{0}, world!".format('z')


12

İstenen değerleri içeren bir liste alın

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

veya

import string
string.letters
string.uppercase
string.digits

Bu çözüm ASCII tablosunu kullanır . ordascii değerini bir karakterden alır ve chrbunun tersi de geçerlidir.

Listeler hakkında bildiklerinizi uygulayın

>>> 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']

Görünüşe göre string.letters Python 3'te kaldırılmış ve sadece string.ascii_letters, tam olarak aynı değil , mevcut
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']

1
Bunu Python 3'te (değişmez olan) bir demet haline getirmek için: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']

ve

for c in list(string.ascii_lowercase)[:5]:
    ...operation with the first 5 characters

4
myList = [chr(chNum) for chNum in list(range(ord('a'),ord('z')+1))]
print(myList)

Çıktı

['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']

StackOverflow'a hoş geldiniz. Bunun neden soruya tam bir cevap olduğunu daha net bir şekilde açıklamaya çalışın.
Jeroen Heier

Teşekkürler. Bunu nasıl inşa etmen hoşuma gitti.
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)]

2

Bu sorunun cevabı basit, sadece ABC adında bir liste yapın:

ABC = ['abcdefghijklmnopqrstuvwxyz']

Ve ne zaman başvurmanız gerekirse, şunu yapın:

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)

Ayrıca, cihazınızı kırmak için şunu deneyin: 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


1

Bu sizin 2. sorunuz: string.lowercase[ord('a')-97:ord('n')-97:2]çünkü 97==ord('a')- biraz öğrenmek istiyorsanız, gerisini kendiniz çözmelisiniz ;-)


1

Umarım bu yardımcı olur:

import string

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

0

Gnibbler'in cevabı hakkında.

Zip işlevi, tam açıklama , döndürme a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]yapısı, liste anlama , çok güzel bir özellik olarak adlandırılır !


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']

0

Bunu yapmanın başka bir yolu

  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

Sonuç

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

Bunun diğer yanıtlardan farkı nedir?

  • rastgele sayıda temel URL üzerinde yineleme
  • URL'ler arasında dolaşın ve harflerimiz bitene kadar durmayın
  • enumerateliste anlama ve str.format ile birlikte kullanın
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.