Skip to main content
 首页 » 编程设计

Python newspace 持续存在

2025年05月04日16Terrylee

我正在尝试制作一个名称生成器:

from random import randint 
relation = { 
    'A' : ['B', 'C', 'D', 'F', 'R', 'Y'], 
    'B' : ['E', 'O', 'I'], 
    'C' : ['A', 'E', 'H', 'R', 'O', 'I'], 
    'D' : ['A', 'E', 'H', 'R', 'O', 'I'], 
    'E' : ['R', 'T', 'P', 'S', 'F', 'L', 'X'], 
    'F' : ['E', 'U', 'I', 'O', 'A'], 
    'G' : ['R', 'O', 'A'], 
    'H' : ['E', 'I', 'O', 'A'], 
    'I' : ['N', 'X', 'S', 'E', 'T', 'P', 'L', 'M'], 
    'J' : ['A', 'I', 'O', 'Y'], 
    'K' : ['I', 'E', 'A'], 
    'L' : ['I', 'E'], 
    'M' : ['O', 'Y', 'I'], 
    'N' : ['E', 'I', 'O', 'A'], 
    'O' : ['V', 'T', 'N'], 
    'P' : ['I', 'A', 'E', 'O'], 
    'Q' : ['U', 'E', 'I'], 
    'R' : ['E', 'I', 'A'], 
    'S' : ['T', 'I', 'O', 'A', 'H'], 
    'T' : ['H', 'E', 'I'], 
    'U' : ['B', 'G', 'L'], 
    'V' : ['E', 'U', 'I', 'A'], 
    'X' : ['I', 'O'], 
    'Y' : ['E', 'L'], 
    'Z' : ['O', 'I'] 
} 
char = (raw_input("Enter an English alphabet: ")).upper() 
letters = int(raw_input("How many letters: ")) 
for i in range(0, letters): 
    if i==0: 
        print char, 
    else: 
        print char.lower(), 
    char = (relation[char])[randint(0, len(relation[char])-1)] 
print '' 
raw_input("Press [ENTER] to exit...") 

但问题是打印名称时有一个空格。 例如:

Enter an English alphabet: T

How many letters: 5

T i p a y

Press [ENTER] to exit...

如何去除空格?

P.S: 我是初学者 :)

请您参考如下方法:

是逗号造成的。 print 以逗号分隔的语句添加空格:

print "a", "b" 

打印a b

print "a", 

打印a (带空格)

print "a" 

打印a(没有空格)

但是,您可以更改代码以使用变量:

name = '' 
for i in range(0, letters): 
    if i==0: 
        name += char 
    else: 
        name += char.lower() 
    char = (relation[char])[randint(0, len(relation[char])-1)] 
print name 
print '' 

或者更短更高效:

letter_list = [] 
for i in range(0, letters): 
    letter_list.append(char) 
    char = (relation[char])[randint(0, len(relation[char])-1)] 
name = ''.join(letter_list) 
print name.lower().capitalize() 
print ''