Using Len For Text But Discarding Spaces In The Count
So, I am trying to create a program which counts the number of characters in a string which the user inputs, but I want to discard any spaces that the user enters. def main():
Solution 1:
Count the length and subtract the number of spaces:
>>>full_name = input("Please enter in a full name: ")
Please enter in a full name: john smith
>>>len(full_name) - full_name.count(' ')
9
>>>len(full_name)
Solution 2:
Use sum
with a generator expression:
>>>text = 'foo bar spam'>>>sum(len(x) for x in text.split())
10
Or str.translate
with len
:
>>>from string import whitespace>>>len(text.translate(None, whitespace)) #Handles all types of whitespace characters
10
Solution 3:
To count the number of characters excluding spaces, you can simply do:
>>>full_name = "John DOE">>>len(full_name) - full_name.count(' ')
7
Solution 4:
I can propose a few versions.
You can replace each space with an empty string and calculate the length:
len(mystr.replace(" ", ""))
You can calculate the length of the whole string and subtract the number of spaces:
len(mystr) - mystr.count(' ')
Or you can sum the lengths of all substrings after splitting the string with spaces:
sum(map(len, mystr.split(' ')))
Solution 5:
Some code as close as possible to your original:
def main():
full_name = input("Please enter in a full name: ").split()
total = 0
for x in full_name:
total += len(x)
print(total)
However, I think len(full_name) - full_name.count(' ')
is better.
Post a Comment for "Using Len For Text But Discarding Spaces In The Count"