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,这样你就不必单独处理每个字符的大小写了@文森特:好建议……我不知道。我更新了答案