Python函数问题:符号判断实现及全大写判断函数修复
问题2:判断字符串所有字母是否为大写(含纯符号场景)
你的现有代码问题在于str.isupper()方法的特性:它只有在字符串中至少包含一个大小写敏感的字符,且所有这类字符都是大写时才返回True。纯符号字符串没有大小写敏感字符,所以inp.isupper()会返回False,导致函数返回不符合预期的结果。另外,inp != int这个判断完全多余,因为输入是字符串的话,和int类型比较永远是True,起不到任何过滤作用。
修正方案(两种简洁写法):
方案1:比较字符串与它的大写版本
符号字符在大写转换后不会改变,纯符号字符串和自身的大写版本完全一致;有字母的字符串只有当所有字母都是大写时才会和大写版本相等。
def is_uppercase(inp): return inp == inp.upper()
方案2:检查是否不存在小写字母
只要字符串中没有任何小写字母,就满足“所有字母都是大写”的条件(包括没有字母的纯符号场景)。
def is_uppercase(inp): return not any(char.islower() for char in inp)
测试验证:
is_uppercase("HELLO!")→ Trueis_uppercase("Hello!")→ Falseis_uppercase("#$%")→ Trueis_uppercase("")→ True(空字符串可根据需求调整)
内容的提问来源于stack exchange,提问作者rootman0
相关产品推荐
相关产品推荐

