繁体   English   中英

用自己的 Function 计数数字、大写字母、小写字母和空格

[英]Counting Numbers, Uppercase Letters, Lowercase Letters and Spaces with own Function

我知道有很多类似的问题,但我似乎无法找到解决我错误的方法。 所以我必须定义一个 function “processSentence”,它会略读句子并计算数字、大写、小写和空格。 这就是我到目前为止所得到的,我只是没有进一步。

sentence = "3 big frogs decorate the christmas tree with 22 bananas"

def processSentence(sentence): 
    spaces = 0
    numbers = 0
    uppers = 0
    lowers = 0

    for character in sentence:
      if character in [0,1,2,3,4,5,6,7,8,9]:
        numbers += 1

    for character in sentence:
      if character in ["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"]:
        lowers += 1

    for character in sentence:
      if character in ["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"]:
        uppers += 1

    for character in sentence:
      if character in [" "]:
        spaces += 1

    report = f"The sentence had {numbers}, {uppers}, {lowers} and {spaces}"

    print(report)

您可以使用字符串模块

import string

sentence = "3 big frogs decorate the christmas tree with 22 bananas"


def processSentence(sentence):
    # just storing the character sets, avoiding doing it in each loop of the for-cycle
    lowercase_characters = string.ascii_lowercase
    uppercase_characters = string.ascii_uppercase
    digit_characters = string.digits

    spaces = 0
    numbers = 0
    lowers = 0
    uppers = 0
    # maybe use some variable to count residual characters?
    residual = 0

    for character in sentence:
        if character in lowercase_characters:
            lowers += 1
        elif character in uppercase_characters:
            uppers += 1
        elif character in digit_characters:
            numbers += 1
        elif character == " ":
            spaces += 1
        else:
            residual += 1
        report = f"The sentence had numbers:{numbers}, Upper case:{uppers}, Lower Case:{lowers} and Spaces{spaces}"
        print(report)


if __name__ == '__main__':
    processSentence(sentence)
sentence = "3 big frogs decorate the christmas tree with 22 bananas"

def processSentence(sentence):
    spaces = 0
    numbers = 0
    uppers = 0
    lowers = 0

    for character in sentence:
        if character in ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9']:
            numbers = numbers + 1

    for character in sentence:
        if character in ["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"]:
            lowers = lowers + 1

    for character in sentence:
        if character in ["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"]:
            uppers = uppers + 1

    for character in sentence:
        if character in [" "]:
            spaces = spaces + 1

    report = f"The sentence had numbers:{numbers}, Upper case:{uppers}, Lower Case:{lowers} and Spaces{spaces}"

    print(report)


processSentence(sentence)

您将数字数组作为字符串以及变量名称和拼写错误

您不需要为每个计数器使用一个循环,因此这可能会帮助您使您的代码更具可读性和更容易。

sentence = "3 big frogs decorate the christmas tree with 22 bananas"

def processSentence(sentence):
    spaces = 0
    numbers = 0
    uppers = 0
    lowers = 0

    for character in sentence:
      if character in '0123456789':
        numbers += 1
      elif character.islower():
        lowers += 1
    
      elif character.isupper():
        uppers += 1

      elif character == ' ':
        spaces += 1

    report = f"The sentence had numbers:{numbers}, Upper case:{uppers}, Lower Case:{lowers} and Spaces{spaces}"

    print(report)


processSentence(sentence)

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM