简体   繁体   中英

Removing whitespace from the end of string while keeping space in the middle of each letter

The goal of this code is to take a bunch of letters and print the first letter and every third letter after that for the user. What's the easiest way to remove the whitespace at the end of the output here while keeping all the spaces in the middle?

msg = input('Message? ')
for i in range(0, len(msg), 3):
  print(msg[i], end = ' ')

str_object.rstrip() will return a copy of str_object without trailing whitespace. Just do

msg = input('Message? ').rstrip()

For what it's worth, you can replace your loop by string slicing:

print(*msg[::3], sep=' ')
n = '   hello  '
n.rstrip()
'   hello'
n.lstrip()
'hello   '
n.strip()
'hello'

What about?

msg = input('Message? ')
output = ' '.join(msg[::3]).rstrip()
print(output)

You can use at least 2 methods:

1) Slicing method:

    print(" ".join(msg[0::3]))  

2) List comprehension (more readable/powerful):

    print(" ".join([letter for i,letter in enumerate(msg) if i%3==0])

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