'How to count special characters, Alphabets and numbers from a string in python?
string = '98 people are present @ seminar'
def count(string):
d={}
for t in string:
d[t] = string.count(t)
for k in sorted(d):
print(k+':' + str(d[k]))
count(string)
here I want to add counters for special characters and numbers. also want to get user input for string. how do I do that?
Solution 1:[1]
Python has various string methods to help distinguish alpha and numeric strings. You can test for these and count based on that test.
def count(string):
d={'letters': 0, 'numbers': 0, 'other': 0}
for t in string:
if t.isalpha():
d['letters'] += 1
elif t.isdigit():
d['numbers'] += 1
else:
d['other'] += 1 # this will include spaces
return d
string = input('enter some text: ')
# 98 people are present @ seminar
counts = count(string)
print(counts)
# {'letters': 23, 'numbers': 2, 'other': 6}
Solution 2:[2]
To ask for userinput for the string use
variableName = input(PROMPT)
To have a count make a list of nums, list of letters and the rest will be special chars
Then loop through the list and use an if statement to check if the letter is in the string with .contains()
The code would look something like this:
letters = "abcdefghijklmnopqrstuvwxyz"
numbers = "0123456789"
def countString(inputString,characterType):#inputString is the string you want to check characterType is what you want to check for
count = 0
inputString = inputString.lower()
if characterType == "numbers":
for i in inputString:
if not(numbers.count(i) == 0):
count += 1
elif characterType == "letters":
for i in inputString:
if not(letters.count(i) == 0):
count += 1
elif characterType == "specialChars":
for i in inputString:
if numbers.count(i) == 0 and letters.count(i) == 0 and not(i == " ") :
count += 1
return count
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
| Solution | Source |
|---|---|
| Solution 1 | |
| Solution 2 |
