下面写的代码应该给出如下结果。例如,如果输入是'Lion head and Snake tail',则输出应为 - 'LHAST'。
相反,结果是'LLLLL'。请检查我的代码。如果可能的话,请建议更好的练习,并帮助我提供更好的代码。
代码如下:
#ask for Input
name = input('Input words to make acroname :')
#make all in caps
name = name.upper()
#turn them in list
listname = name.split()
#cycle through
for namee in listname:
#Get the first letter & type in same line
print(name[0],end="")
print()
input (' press a key to move out' )
答案 0 :(得分:1)
您可以更正您的代码。您应该使用print(name[0])
代替print(namee[0])
,而不是原始名称,而不是原始名称。
一个好的做法是将变量命名为更具描述性的变量,以避免这种拼写错误。
如果你想在同一行打印首字母缩略词,我建议在代码下方使用所需的输出变量acronym
:
phrase = raw_input('Input words to make acronym:')
phrase = phrase.upper()
list_words = phrase.split()
acronym = [word[0] for word in list_words]
acronym = "".join(acronym)
print acronym
答案 1 :(得分:0)
您可以将str.join
与generator-expression
一起用于问题的单行解决方案:
>>> name = "Lion head and Snake tail"
>>> ''.join(i[0].upper() for i in name.split())
'LHAST'
为什么?
如果我们从生成器内部开始,我们将遍历name.split()
。 .split
的{{1}}方法返回通过拆分传入方法的内容找到的所有不同str
的{{1}}。默认字符是一个空格,因为我们想要单词,这对我们来说很好。
然后我们对此list
中的每个单词strings
说,请将字符串中的第一个字符改为:i
。然后,我们使用list
将其转换为大写。
然后,最后一步是将所有这些字符连接在一起,这是通过i[0]
方法完成的。
答案 2 :(得分:0)
简单地:
print ''.join([P[0] for P in input('Input words to make acroname :').upper().split()])
对python 3使用input('')
,对python 2使用raw_input('')