对于我的一个任务,用户输入多个字符串,直到它们输入一个空行,然后将它打印在一行中,这就是我这样做的方式。
words = []
word = input("Word: ")
while word:
words.append(word)
word = input("Word: ")
words = (' ').join(words)
print(words)
然而,还有另一个部分,它将列表中每个字符串的第一个字母用一行中的大写字母打印出来。我无法弄清楚如何在一行上打印这个。这是我的代码:
words_split = words.split()
for word in words_split:
i = word[0]
print(i.upper())
e.g。如果我输入ace, bravo, charlie
:它会打印出来
A
C
电子
而不是
ACE
有人可以帮助我,谢谢你(
答案 0 :(得分:1)
很多可能性,但这就是我要做的事情:
words_split = words.split()
print(''.join(word[0].upper() for word in words_split))
答案 1 :(得分:1)
更新了我的答案,因为@Smarx提供了相同的答案。
考虑到:
words = "ABC BCA CAB"
这就是我说的:
first_letter_upper = [word[0].upper() for word in words.split()]
joined_words = ''.join(first_letter_upper)
print(joined_words)
打印
ABC
答案 2 :(得分:1)
我还有另一个使用Python List Comprehension的解决方案,我建议阅读更多有关Web方法的信息。
如果您有下一个示例:
words = 'Create a list of the first letters of every word in this string'
您可以创建一个新列表,每个首字母都写如下:
newlist = [x[0].upper() for x in words.split()]
print(newlist)
正确的输出是:
['C', 'A', 'L', 'O', 'T', 'F', 'L', 'O', 'E', 'W', 'I', 'T', 'S']
答案 3 :(得分:0)
在for循环之外创建一个空字符串,并在循环内添加每个字母。一旦循环结束,打印字符串。
words_split = words.split()
output = ""
for word in words_split:
output += word[0].upper()
print(output)
另一种方法是将打印的终止字符更改为空:
words_split = words.split()
for word in words_split:
i = word[0]
print(i.upper(), end='')
答案 4 :(得分:0)
你的问题是每次打印后打印功能都会向下排一行,要解决它你可以使用结束参数:
print("a",end = '')
print("b",end = '')
将打印:
AB
而不是:
一
B'/ P>