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


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

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


23

Petunjuk:

import string
print string.ascii_lowercase

dan

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

dan

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


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

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

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

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

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

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


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


1

Saya harap ini membantu:

import string

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

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!


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

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
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.