简体   繁体   中英

Output first letter of each word of user input

I have this code

#Ask for word
w = input("Type in a word to create acronym with spaces between the words:")

#Seperate the words to create acronym
s = w.split(" ")
letter = s[0]

#print answer 
print(s.upper(letter))

And I know that I need a for loop to loop over the words to get the first letter of each word but I can't figure out how to do it I tried many different types but I kept getting errors.

Try this. It prints a concatenated version of the first letter of each word.

w = input("Type in a word to create acronym with spaces between the words:")
print(''.join([e[0] for e in w.split()]).upper())

Try this

w = input("Type a phrase with a space between the words:")
w_up_split = w.upper().split()
acronym = ""

for i in w_up_split:
    acronym += (i[0])
print(acronym)
for word in w.split(" "):
    first_letter = word[0]
    print(first_letter.upper())

In the code that you gave you are taking the first word in a list of lists.

s = w.split(" ")
letter = s[0]

If someone input 'Hi how are you' this s would equal

s == ["Hi"]["how"]["are"]["you"]

And then letter would equal the first index of s which would be ["Hi"]

You want to go through each word and take each letter

acronym = []
for x in s:
    acronym.append(x[0])

Would get what you want.

The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM