我正在嘗試撰寫一個程式,它接受用戶輸入的串列并確定串列中的字母是否為大寫。這是我到目前為止的代碼。
# Write a Python function to count how many letters in a string are in uppercase.
print("Hey, do you wanna see a cool trick I can do? I can count how many letters in a list of letters are uppercase!")
print("Here, I can prove it!")
print("Gimme a list of letters!")
letter = input("Enter a list of letters, seperating each by a comma. (put both uppercase and lowercase!) ")
letter_list = letter.split(",")
print("The list you gave was...")
print(letter_list)
print("And if we seperate those, we get...")
for letter in letter_list:
print(letter)
print("Now, I'm going to count how many of those are uppercase!")
我目前正試圖讓它檢查字母是否正確大寫。我嘗試了一個嵌套在 for 回圈中的 if 陳述句,但我不確定我是否做對了,因為它不起作用。我輸入的代碼是:
for letter in letter_list:
if letter.isupper == True:
capital = capital 1
大寫是列印回用戶的內容,顯示大寫字母的數量。
uj5u.com熱心網友回復:
您的代碼有一些問題。首先是您capital在增加它之前沒有宣告。你應該capital = 0在 for 回圈之前。其次,您正在與 進行比較==,但您應該is改用。最后,要檢查一個字母是否為大寫,您必須呼叫letter.isupper()(not letter.isupper)。如果你不使用括號,那么它指的是函式本身,你會得到各種奇怪的錯誤。
這是我開始作業的代碼:
# ... rest of your code ...
capital = 0
for letter in letter_list:
if letter.isupper() is True:
capital = capital 1
print("Number of capital letters: " capital)
uj5u.com熱心網友回復:
由于 isupper 是一個字串方法,所以需要在方法呼叫的末尾加上 ()。所以它看起來像這樣
for letter in letter_list:
if letter.isupper() == True:
capital = capital 1
此外,請確保在開始 for 回圈之前初始化資本。
uj5u.com熱心網友回復:
作為建議或替代解決方案,您可以使用 Regex;
import re
str = "Hey, do you wanna see a cool trick I can do? I can count how many letters in a list of letters are uppercase!"
r1 = re.findall(r"[A-Z]", str)
print(len(r1))
轉載請註明出處,本文鏈接:https://www.uj5u.com/qiye/519818.html
標籤:Python循环
