我想得到的建议,我错过了这个答案,如果可能的话。
预期输出是aa,ab,ac,...a8,a9,一直通过zz,z1,...,z8,z9它到达a8,a9,然后拉出第一个内循环的错误
这是为我的计算机科学课准备的。我得到了一个代码,可以生成aa,ab,ac,...zz,zz.我需要在第二个字符的'z‘后面加上0-9,并且在str和int中遇到了问题:
print('Two-letter domain names:')
letter1 = 'a'
letter2 = '?'
while letter1 <= 'z': # Outer loop
letter2 = 'a'
while letter2 <= 'z': # Inner loop | TypeError: '<=' not supported between instances of 'int' and 'str'
print('{}{}.com'.format(letter1, letter2))
letter2 = chr(ord(letter2) + 1)
while letter2 == '{': # My bit
letter2 = 0
for letter2 in range(10):
print('{}{}.com'.format(letter1, letter2))
letter2 = letter2 + 1
letter1 = chr(ord(letter1) + 1)
letter2 = chr(ord(letter2) + 1)# TypeError: ord() expected string of length 1, but int found
letter2 = chr((letter2) + 1)# Infinite loop
letter2 = chr(letter2) + 1# TypeError: can only concatenate str (not "int") to str | makes it to a0
if letter2 == '9':
letter2 = chr(letter2)# Does nothing
我已经在这上面花了几个小时,在搜索之后,我只找到了类似的TypeError的答案,即在输入中添加'int()‘,但我自己没有机会尝试。
发布于 2020-03-01 03:51:05
我之前遇到过完全相同的问题,为了解决这个问题,增加了一对额外的paratheses。像这样:letter2 = chr(**(**ord(letter2)**)** + 1)
发布于 2020-03-01 05:30:23
解决方案一直都在那里。只是找不到凹痕。
while letter2 == '{': # My bit
letter2 = 0
for letter2 in range(10):
print('{}{}.com'.format(letter1, letter2))
letter2 = letter2 + 1
这需要沿着内部循环运行,而不是在内部循环内部
print('Two-letter domain names:')
letter1 = 'a'
letter2 = '?'
while letter1 <= 'z': # Outer loop
letter2 = 'a'
while letter2 <= 'z': # Inner loop | TypeError: '<=' not supported between instances of 'int' and 'str'
print('{}{}.com'.format(letter1, letter2))
letter2 = chr(ord(letter2) + 1)
while letter2 == '{': # My bit
letter2 = 0
for letter2 in range(10):
print('{}{}.com'.format(letter1, letter2))
letter2 = letter2 + 1
letter1 = chr(ord(letter1) + 1)
https://stackoverflow.com/questions/60471740
复制