Python: bagaimana cara mencetak berbagai az?

110

1. Cetak sebuah: abcdefghijklmn

2. Setiap detik di: acegikm

3. Tambahkan ke indeks url {hello.com/, hej.com/, ..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n

hhh
sumber
6
Anehnya, untuk pertanyaan "pemula" Anda masih bisa mendapatkan berbagai jawaban. Fakta bahwa saya bisa mengetik tidak berarti saya bisa "python", saya sangat suka jawaban gnibbler atas hal-hal yang berantakan. Terima kasih semuanya atas jawaban Anda dan - buat semuanya tetap sederhana, terima kasih khusus kepada gnibbler.
hhh
2
Ini bukanlah jawaban yang sangat beragam. Itu dua varietas. Satu penggunaan rangedan chr()lainnya daftar siap pakai string, yang tidak akan terpikirkan oleh banyak orang.
Lennart Regebro

Jawaban:

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

Untuk mengerjakan url, Anda bisa menggunakan sesuatu seperti ini

[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]
John La Rooy
sumber
1
Saya yakin string.ascii_lowercase sudah berfungsi di python 2.x, jadi pastikan selalu gunakan ascii_lowercase.
johk95
1
@ johk95, sebenarnya str.lowercasebergantung pada lokal jadi bukan pilihan terbaik sejak awal. Saya telah menggantinya dalam jawaban saya
John La Rooy
Hai, dapatkah saya memberi tahu saya apakah ini hanya tersedia dalam bahasa Inggris? tidak bisakah saya mendapatkan yang sama untuk bahasa lain juga? Terima kasih & Salam
Michael Schroter
48

Dengan asumsi ini adalah pekerjaan rumah ;-) - tidak perlu memanggil perpustakaan dll - mungkin Anda diharapkan untuk menggunakan range () dengan chr / ord, seperti:

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

Selebihnya, mainkan sedikit lagi dengan range ()

Nas Banov
sumber
23

Petunjuk:

import string
print string.ascii_lowercase

dan

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

dan

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

Dapatkan daftar dengan nilai yang diinginkan

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

atau

import string
string.letters
string.uppercase
string.digits

Solusi ini menggunakan tabel ASCII . ordmendapatkan nilai ascii dari karakter dan chrsebaliknya.

Terapkan apa yang Anda ketahui tentang daftar

>>> 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
sumber
Sepertinya string.letters telah dihapus dengan Python 3 dan hanya string.ascii_letters, tidak persis sama , tersedia
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
sumber
1
Untuk membuat ini menjadi tupel (yang tidak dapat diubah) dengan 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']

dan

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

Keluaran

['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 Lebih
sumber
Selamat datang di StackOverflow. Cobalah untuk menjelaskan lebih jelas mengapa ini adalah jawaban lengkap dari pertanyaan tersebut.
Jeroen Heier
Terima kasih. Saya suka cara Anda membangun ini.
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
sumber
2

Jawaban atas pertanyaan ini sederhana, buat saja daftar bernama ABC seperti ini:

ABC = ['abcdefghijklmnopqrstuvwxyz']

Dan kapan pun Anda perlu merujuknya, lakukan saja:

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)

Coba juga ini untuk merusak perangkat Anda: 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
sumber
2

Mencoba:

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

Ini adalah pertanyaan Anda yang kedua: string.lowercase[ord('a')-97:ord('n')-97:2]karena 97==ord('a')- jika Anda ingin belajar sedikit, Anda harus mencari tahu sendiri sisanya ;-)

Jochen Ritzel
sumber
1

Saya harap ini membantu:

import string

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

Tentang jawaban gnibbler.

Fungsi zip, penjelasan lengkap , a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]konstruksi pengembalian disebut pemahaman daftar , fitur yang sangat keren!

hhh
sumber
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']
warga kota
sumber
0

Cara lain untuk melakukannya

  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

Hasil

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

Bagaimana ini berbeda dari balasan lainnya

  • iterasi pada sejumlah url dasar yang berubah-ubah
  • siklus melalui url dan jangan berhenti sampai kami kehabisan huruf
  • digunakan enumeratebersama dengan pemahaman daftar dan str.format
dreftymac.dll
sumber