如何在python中使用chr和ord返回int和数字?

2024-05-15 02:32:55 发布

您现在位置:Python中文网/ 问答频道 /正文

我对这很陌生,所以可怜可怜可怜的,愚蠢的灵魂吧

如果您想返回一个两个字符的“.com”,同时包含一个字符串和一个字符串以及一个字符串和一个int(即:“ab.com”和“a7.com”),您会怎么做

我一直在看其他代码,我真的得到日本字符返回

while letter1 <= 'z': # Outer loop
letter2 = 'a'
   while letter2 <= 'z': # Inner loop
        print('%s%s.com' % (letter1, letter2))
        letter2 = chr(ord(letter2) + 1)
        letter1 = chr(ord(letter1) + 1)

letter2应该返回一个字母a-z或者一个数字,但是它只返回letter1是什么('aa,bb,cc,等等…)


Tags: 字符串代码comloopab字符int灵魂
2条回答

如果我了解您要查找的内容,您可以使用itertools.product生成:

首先,生成你的字母表。为此,我将使用alphabet = string.ascii_lowercase + string.digits(换句话说,a-z和0-9)

如果我说:list(itertools.product(alphabet, repeat=2)),我们就开始得到我们想要的:

[('a', 'a'), ('a', 'b'), ('a', 'c'), ('a', 'd'), ('a', 'e'), ('a', 'f'), ('a', 'g'), ...]

例如,您的整个代码可以如下所示:

def domain_generator(alphabet, length, suffix):
    for first, second in itertools.product(alphabet, repeat=length):
        yield '{}{}.{suffix}'.format(first, second, suffix=suffix)

您现在可以使用以下命令在域生成器上进行迭代:

for domain in domain_generator(string.ascii_lowercase + string.digits, 2, 'com'):
    print(domain)

听起来您需要的基本上是一个与regex [a-z0-9][a-z0-9].com匹配的所有域的列表

摆弄ASCII字符值可能是实现这一点的一种方法,但我认为尝试这样的方法会更具python风格:

import string
for letter1 in string.ascii_lowercase+string.digits:
  for letter2 in string.ascii_lowercase+string.digits:
     print('%s%s.com' % (letter1, letter2))

相关问题 更多 >

    热门问题