Как создать функцию с использованием циклов для возврата количества букв верхнего и нижнего регистра в python? - PullRequest
0 голосов
/ 14 июля 2020
  • следует использовать str.islower (), str.isupper (), str.istitle ()

Ответы [ 2 ]

0 голосов
/ 14 июля 2020

Я реализовал для вас пример. Я добавил много комментариев к своему коду для лучшего понимания.

Код:

def converter(input_text):
    """
    Returns the number of upper case letters, lower case letters, as well as
    converting the string to Title Case.
    :param input_text: Text from the user.
    :return: number of upper case letters, lower case letters, Title Case string.
    """

    upper_case_counter = lower_case_counter = 0  # Define the counters

    for letter in input_text:  # Get the letters one-by-one
        if letter.isupper():  # True if the letter is upper case
            upper_case_counter += 1  # Increment the upper counter
            continue  # Get the next letter
        lower_case_counter += 1  # Increment the lower case counter (If the "if" statement is not True)

    return upper_case_counter, lower_case_counter, input_text.title()  # Return the upper, lower, title (In tuple type)


user_input = input("Please write your text: ")  # Get the input from user
upper, lower, title = converter(user_input)  # Unpacking the return value of "converter" function
print("Upper case letters number:{}\n"
      "Lower case letters number: {}\n"
      "Title text: {}".format(upper, lower, title))  # Print the result

Если вам нужно использовать x.islower(), тогда вы можете это сделать вот так:

for letter in input_text:  # Get the letters one-by-one
    if letter.isupper():  # True if the letter is upper case
        upper_case_counter += 1  # Increment the upper counter
    elif letter.islower():  # True if the letter is lower case
        lower_case_counter += 1  # Increment the lower case counter

Вывод:

>>> python3 test.py  
Please write your text: This is my TExt
Upper case letters number:3
Lower case letters number: 12
Title text: This Is My Text
0 голосов
/ 14 июля 2020

это приблизительный код, чтобы лучше объяснить. вы можете сделать это, как вы сказали:

def analyze(string): # define the function named analyze
    upper = 0
    lower = 0
    for i in string:
        if i.isupper():
            upper += 1
        if i.islower():
            lower += 1
     inupper = string.title()
     return lower, upper, inupper
analyze(input("something to input")) 
# if you want it in the function just put the input in the function.
print(analyze(input("something to input")))

в вопросе, похоже, вы хотели это в случае заголовка, хотя вы хотели использовать «istitle ()», который просто указывает, является ли это заголовком кейс. это мой первый ответ, так что надеюсь, он подходит для StackOverflow.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...