Ответ 1
Вы можете использовать isalpha()
, см. документы в http://docs.python.org/2/library/stdtypes.html
Пример:
>>> s = "a123b"
>>> for char in s:
... print char, char.isalpha()
...
a True
1 False
2 False
3 False
b True
Итак, я знаю об islower и isupper, но я не могу понять, можете ли вы проверить, является ли этот символ буквой?
Example:
s = 'abcdefg'
s2 = '123abcd'
s3 = 'abcDEFG'
s[0].islower() = True
s2[0].islower()= False
s3[0].islower()=True
есть ли какой-либо способ просто спросить, является ли это символом помимо выполнения .islower() или .isupper()?
Вы можете использовать isalpha()
, см. документы в http://docs.python.org/2/library/stdtypes.html
Пример:
>>> s = "a123b"
>>> for char in s:
... print char, char.isalpha()
...
a True
1 False
2 False
3 False
b True
str.isalpha()
Возвращает true, если все символы в строке являются алфавитными и есть хотя бы один символ, иначе false. Алфавитными символами являются символы, определенные в базе данных символов Юникода, как "Письмо", то есть те, у которых общее свойство категории является одним из "Lm", "Lt", "Lu", "Ll" или "Lo". Обратите внимание, что это отличается от свойства "Алфавитный", определенного в стандарте Unicode.
В python2.x:
>>> s = u'a1中文'
>>> for char in s: print char, char.isalpha()
...
a True
1 False
中 True
文 True
>>> s = 'a1中文'
>>> for char in s: print char, char.isalpha()
...
a True
1 False
� False
� False
� False
� False
� False
� False
>>>
В python3.x:
>>> s = 'a1中文'
>>> for char in s: print(char, char.isalpha())
...
a True
1 False
中 True
文 True
>>>
Эта работа кода:
>>> def is_alpha(word):
... try:
... return word.encode('ascii').isalpha()
... except:
... return False
...
>>> is_alpha('中国')
False
>>> is_alpha(u'中国')
False
>>>
>>> a = 'a'
>>> b = 'a'
>>> ord(a), ord(b)
(65345, 97)
>>> a.isalpha(), b.isalpha()
(True, True)
>>> is_alpha(a), is_alpha(b)
(False, True)
>>>
Я нашел хороший способ сделать это с помощью функции и базового кода. Это код, который принимает строку и подсчитывает количество заглавных букв, строчных букв и также "прочее". Другое классифицируется как пробел, знак пунктуации или даже японские и китайские иероглифы.
def check(count):
lowercase = 0
uppercase = 0
other = 0
low = 'a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z'
upper = 'A','B','C','D','E','F','G','H','I','J','K','L','M','N','O','P','Q','R','S','T','U','V','W','X','Y','Z'
for n in count:
if n in low:
lowercase += 1
elif n in upper:
uppercase += 1
else:
other += 1
print("There are " + str(lowercase) + " lowercase letters.")
print("There are " + str(uppercase) + " uppercase letters.")
print("There are " + str(other) + " other elements to this sentence.")
data = "abcdefg hi j 12345"
digits_count=0
letters_count=0
others_count=0
for i in userinput:
if i.isdigit():
digits_count +=1
elif i.isalpha():
letters_count +=1
else:
others_count +=1
print("Result:")
print("Letters=", letters_count)
print("Digits=", digits_count)
Выход ::
Plesae Enter Lerrers with Numbers:
abcdefg hi j 12345
Result:
Letters= 10
Digits= 5
С помощью str.isalpha()
вы можете проверить, является ли это буквой.
этот код работает:
str=raw_input("enter a string:")
for char in word:
if not char.isalpha():
sum=sum+1
if sum>0:
print char