Python新闻空间依然存在

Python新闻空间依然存在,python,removing-whitespace,Python,Removing Whitespace,我正在尝试创建一个名称生成器: 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',

我正在尝试创建一个名称生成器:

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...")
但问题是,当它打印名称时,有一个空白。 例如:

输入英文字母表:T

多少个字母:5

我不想去吗

按[ENTER]退出

如何删除空白


附言:我是一个初学者:

是逗号造成的。用逗号分隔的打印语句添加空格:

print "a", "b"
打印a和b

用空白打印一张照片

print "a"
打印不带空格的文本

print "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 ''

是逗号造成的。用逗号分隔的打印语句添加空格:

print "a", "b"
打印a和b

用空白打印一张照片

print "a"
打印不带空格的文本

print "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 ''

我不太确定你的打印推理,但是你可以有一个word变量,然后把你得到的所有字符附加到word变量,然后在最后打印出来。这两个字母之间没有空格

word = ''
for i in range(0, letters):
    word += char
    char = (relation[char])[randint(0, len(relation[char])-1)]
print word.lower().capitalize()
print ''
根据PM 2铃声的建议,您也可以这样做:

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

我不太确定你的打印推理,但是你可以有一个word变量,然后把你得到的所有字符附加到word变量,然后在最后打印出来。这两个字母之间没有空格

word = ''
for i in range(0, letters):
    word += char
    char = (relation[char])[randint(0, len(relation[char])-1)]
print word.lower().capitalize()
print ''
根据PM 2铃声的建议,您也可以这样做:

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

但是它会打印在不同的行上,这不是他想要的@GreenHenkOh!现在我不知道该接受谁的答案了。@heinst和GeenHenk:FWIW,像这样逐个字符地构建字符串在Python中效率很低,因为字符串是不可变的。最好将字符存储在列表中,然后使用.join从列表中构建字符串。当然,这对这个项目可能没有多大关系,但这是一个好习惯。尽管基于列表的方法比name+=char稍微复杂一些,但Coderboy91似乎并不害怕在代码中使用列表我没想到会这样,好建议!谢谢,我更新了我的答案@pm2ring,但它会打印在不同的行上,这不是他想要的@GreenHenkOh!现在我不知道该接受谁的答案了。@heinst和GeenHenk:FWIW,像这样逐个字符地构建字符串在Python中效率很低,因为字符串是不可变的。最好将字符存储在列表中,然后使用.join从列表中构建字符串。当然,这对这个项目可能没有多大关系,但这是一个好习惯。尽管基于列表的方法比name+=char稍微复杂一些,但Coderboy91似乎并不害怕在代码中使用列表我没想到会这样,好建议!谢谢,我更新了我的答案@pm2ring可能重复的@Coderboy91也可以使用word.lower.capitalize,这样你就不必单独处理每个字符的大小写了。没关系,我喜欢挑战@文森特:好建议……我不知道。我更新了answer@Coderboy91你也可以使用word.lower.capitalize,这样你就不必单独处理每个字符的大小写了@文森特:好建议……我不知道。我更新了答案