Python: как напечатать диапазон a-z?
1. Печать: a b c d e f g h i j k l m n
2. Каждую секунду в a-n: а С Е Г и к м
3. Добавить a-n к индексу URL-адресов{hello.com/, hej.com/..., hallo.com/}: hello.com/a hej.com/b ... hallo.com/n
13 ответов:
>>> import string >>> string.ascii_lowercase[:14] 'abcdefghijklmn' >>> string.ascii_lowercase[:14:2] 'acegikm'
чтобы сделать URL-адреса, вы можете использовать что-то вроде этого
[i + j for i, j in zip(list_of_urls, string.ascii_lowercase[:14])]
предполагая, что это домашнее задание ; -) - нет необходимости вызывать библиотеки и т. д.-Вероятно, вы ожидаете, что вы будете использовать range () с chr/ord, например:
for i in range(ord('a'), ord('n')+1): print chr(i),
в остальном, просто играть немного больше с диапазоном ()
подсказки:
import string print string.ascii_lowercase
и
for i in xrange(0, 10, 2): print i
и
"hello{0}, world!".format('z')
получить список с нужными значениями
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))
или
import string string.letters string.uppercase string.digits
это решение использует таблица ASCII.
ord
получает значение ascii от символа иchr
наоборот.применить то, что вы знаете о списках
>>> 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']
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) 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)]
ответ на этот вопрос прост, просто составьте список под названием ABC вот так:
ABC = ['abcdefghijklmnopqrstuvwxyz']
и всякий раз, когда вам нужно обратиться к нему, просто сделайте:
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)
также попробуйте это, чтобы сломать устройство ur: 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
Это ваш 2-й вопрос:
string.lowercase[ord('a')-97:ord('n')-97:2]
, потому что97==ord('a')
-- Если вы хотите узнать немного, вы должны выяснить, остальное себе ;-)
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']
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']
и
for c in list(string.ascii_lowercase)[:5]: ...operation with the first 5 characters
о gnibbler по.
Zip-функция,полное описание возвращает
a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables.
[...]
строительство называется понимание, очень полезная функция!