Python:如何打印范围az?


109

1.打印: abcdefghijklmn

2.每秒: acegikm

3.将url索引附加到{ hello.com/、hej.com/、...、hallo.com/}:hello.com/a hej.com/b ... hallo.com/n


6
奇怪的是,对于“初学者”问题,您仍然可以获得各种答案。我可以输入的事实并不意味着我可以使用“ python”,我真的很喜欢g琐工具对杂乱无章的回答。谢谢大家的回答,而且-保持简单,特别要感谢Gnibbler。
hhh 2010年

2
这不是各种各样的答案。这是两个品种。一种用途rangechr()另一种用途是现成的清单string,很多人都不会想到。
Lennart Regebro

Answers:


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

要执行网址,您可以使用类似以下内容的网址

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

1
我相信string.ascii_lowercase已经在python 2.x中工作了,因此请确保始终使用ascii_lowercase。
johk95

1
@ johk95,实际上str.lowercase是由语言环境决定的,因此它并不是最佳选择。我已将其替换为我的回答
John La Rooy

嗨,能告诉我这是否只有英文吗?其他语言也不能得到相同的结果吗?谢谢与问候
Michael Schroter

47

假设这是一项家庭作业;-)-无需调用库等-它可能希望您将chr / ord与range()一起使用,如下所示:

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

对于其余的内容,只需要使用range()多一点




12

获取具有所需值的列表

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

看起来string.letters在Python 3中已删除,只有不完全相同的
string.ascii_letters

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
为了使它成为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']

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)

输出量

['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。尝试更清楚地解释为什么这是问题的完整答案。
Jeroen Heier

谢谢。我喜欢您如何构建它。
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

这个问题的答案很简单,只需列出一个名为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)

也可以尝试这样来破坏您的设备: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
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

我希望这有帮助:

import string

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

0

关于狼吞虎咽的答案。

邮编功能,充分说明,返回a list of tuples, where the i-th tuple contains the i-th element from each of the argument sequences or iterables. [...]构造称为列表理解,很酷的功能!


0

另一种方式

  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

结果

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

这与其他回复有何不同

  • 遍历任意数量的基本网址
  • 循环浏览网址,直到我们用完所有字母后再停止
  • 使用enumerate结合列表理解和str.format
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.