#python #string #function #uppercase #lowercase
#python #строка #функция #верхний регистр #нижний регистр
Вопрос:
когда я запускаю код, он всегда показывает 0 в качестве результата…. код:
def case_counter(string):
lower=0
upper=0
for char in string:
if (string.islower()):
lower=lower 1
elif (string.isupper()):
upper=upper 1
print('the no of lower case:',lower)
print('the no of upper case',upper)
string='ASDDFasfds'
case_counter(string)
Результат:
номер в нижнем регистре: 0
номер в верхнем регистре 0
ОЖИДАЕМЫЙ:
номер в нижнем регистре: 5
номер в верхнем регистре 5
Комментарии:
1. вы тестируете string, но хотите протестировать char
2. итак, что мне делать??
3. вы меняете строку на символ в предложениях if.
4. понял ….. использовал char.islower() и char.isupper() в соответствии с предложениями… результат — это то, что я ожидал ….. спасибо
Ответ №1:
При сравнении меньшего и большего значения для вашей цели вы должны использовать переменную «char», как в примере в этом коде
def case_counter(string):
lower=0
upper=0
for char in string:
if (char.islower()):
lower=lower 1
elif (char.isupper()):
upper=upper 1
print('the no of lower case:',lower)
print('the no of upper case',upper)
string='ASDDFasfds'
case_counter(string)
Комментарии:
1. просто сделал и получил ожидаемый результат …. спасибо …. но тогда, когда я должен использовать string.islower() или string.isuuper() ???
2. Я рад, что это помогло вам. В вашем примере переменная «string» будет содержать всю строку, т.Е. asdfasfds, поэтому, если вы хотите проверить, что вся строка написана в нижнем или верхнем регистре, вы используете строковую переменную. Посмотрите на условный цикл for в python, чтобы узнать больше
3. можно ли решить эту проблему с помощью метода string.count()???/
4. string.count() будет полезен, если вы хотите подсчитать повторение подстроки. Например:string=»ABABcdef» затем используйте string.count(«AB»,0,len(строка)) . Это вернет 2. Для получения дополнительной информации:
https://www.tutorialspoint.com/python/string_count.htm
Ответ №2:
Я думаю, вам нужно использовать char.islower()
вместо string.islower()
и вы можете сделать lower =1
вместо lower=lower 1
и то же самое для upper
Ответ №3:
Ваши условия неверны. Обновить string.islower()
и string.isupper()
до char.islower()
и char.isupper()
Ответ №4:
Вам нужно прочесть каждый символ по отдельности. Теперь ваша программа проверяет, записана ли вся строка в верхнем или нижнем регистре.
Это означает, что ваш код должен выглядеть примерно так:
def upper_lower(text):
upper = 0
lower = 0
for i in text:
if i.isupper():
upper = 1
else:
lower =1
print('the no of lower case:',lower)
print('the no of upper case',upper)