2024-03-28 14:59:10 发布
网友
我试图编写一个函数,它使用for循环和isupper方法来只打印字符串的大写字母。
到目前为止我所做的:
upper_chars = "" def only_upper(s): for char in s: if s.isupper() == True: upper_chars += char print upper_chars
但这不管用?有人告诉我为什么吗? 我得到这个错误消息:“unbundlocalerror:local变量'upper_chars'在赋值之前被引用”
代码中的几个问题:
upper_chars
isupper()
if
下面是修复代码:
def only_upper(s): upper_chars = "" for char in s: if char.isupper(): upper_chars += char return upper_chars print only_upper("HeLLo WorLD")
此外,您还可以使用filter():
filter()
def only_upper(s): return filter(lambda x: x.isupper(), s) print only_upper("HeLLo WorLD")
或:
def only_upper(s): return "".join(c for c in s if c.isupper()) print only_upper("HeLLo WorLD")
两种打印:
HLLWLD
好的,解决部分问题的方法是确保调用实际的函数,另一件事是确保返回修改过的字符串,如果语句没有正确编写,则函数的主体需要与函数的开头有4个空格。
使用isupper方法和for循环的示例
def upperOnly(s): onlyCaps = "" for char in s: if char.isupper() == True: onlyCaps += char return onlyCaps print upperOnly("TeSt")
代码中的几个问题:
upper_chars
变量isupper()
if
块中的缩进错误下面是修复代码:
此外,您还可以使用
filter()
:或:
两种打印:
好的,解决部分问题的方法是确保调用实际的函数,另一件事是确保返回修改过的字符串,如果语句没有正确编写,则函数的主体需要与函数的开头有4个空格。
使用isupper方法和for循环的示例
相关问题 更多 >
编程相关推荐