簡體   English   中英

計算字符串中小寫字母和大寫字母個數的 Python 函數

[英]Python function that counts number of lower case and upper case letters in a string

我是一個絕對的初學者,我無法弄清楚為什么我的代碼沒有給出預期的結果。 我想編寫一個函數來計算給定字符串中小寫和大寫字母的數量。 示例如下。

字符串:“羅傑斯先生你好,你周二過得好嗎?” 預期輸出:

大寫字符數:4

小寫字符數:33

def up_low(s):
    upper_case_count = 0
    lower_case_count = 0

    split_s = s.split()

    for word in split_s:

        if word.islower() == False:
            upper_case_count +=1
            lower_case_count += len(word) - 1
        elif word.islower() == True:
            letter_count = len(word)
            lower_case_count += letter_count

    print(f'No. of Upper case characters is {upper_case_count}')
    print(f'No. of Lower case characters is {lower_case_count}')

如果我運行我在上一個例子中寫的函數,我得到 4 和 36,而不是 33。另外,我很確定我寫的東西無論如何都不正確,因為它只在字符串中的單詞只有一個大寫時才有效字母,但我不知道如何修復它以便讓它計算大寫字母,無論單詞中有多少個

分別為小寫和大寫計數(字符串在a

sum(i.islower() for i in a)
sum(i.isupper() for i in a)

感謝@Jean-François Fabre 的建議,使用map

sum(map(str.islower,a))
sum(map(str.isupper,a))

完整程序

print(f"The number of lower case characters is {sum(map(str.islower,a))}")
print(f"The number of upper case characters is {sum(map(str.isupper,a))}")
#!/usr/bin/env python3

def up_low(s):
    upper_case_count = 0
    lower_case_count = 0

    for letter in s:
        #If letter is uppercase, add 1 to upper count
        if letter.isupper():
            upper_case_count +=1

        #If letter is lowercase, add 1 to upper count
        if letter.islower() == True:
            lower_case_count +=1

        #All other characters, such as punctuation and questions, will be ignored.


    print('No. of Upper case characters is {}'.format(upper_case_count))
    print('No. of Upper case characters is {}'.format(lower_case_count))


s = 'Hello Mr. Rogers, how are you this fine Tuesday?'

up_low(s)

輸出:

No. of Upper case characters is 4
No. of Upper case characters is 33

def up_low(s):
    upper_case_count = 0
    lower_case_count = 0

    for char in s:
        if char.isupper():
            upper_case_count += 1
        elif char.islower():
            lower_case_count += 1

    print(f'No. of Upper case characters is {upper_case_count}')
    print(f'No. of Lower case characters is {lower_case_count}')

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM