Python自定义函数求助:实现大小写转换及数字加5功能遇报错
问题解决:Python自定义函数实现大小写互转与数字加5
原代码的问题
- 函数定义了两个参数
vyp(a, b),但调用时只传了一个参数,会直接报参数不匹配的错误 - 大小写判断逻辑有漏洞:如果输入是混合大小写的字符串(比如
HeLLo),既不满足a == a.lower()也不满足a == a.upper(),会完全不处理 - 数字判断的写法
elif b(int)==a是语法错误,完全不符合Python的类型转换逻辑,而且没有考虑非数字字符串转int会报错的情况
修正后的代码
def process_input(input_val): # 先尝试处理数字输入 try: num = int(input_val) print(num + 5) return except ValueError: # 转int失败,说明是字符串,执行大小写互转 print(input_val.swapcase()) user_input = input("Enter any word or number: ") process_input(user_input)
代码说明
- 用
try-except捕获转换整数时的异常:如果输入是数字(比如"5"),转int成功后直接加5输出;如果输入是字符串(比如"Hello"),转int会触发ValueError,进入字符串处理分支 - 用字符串的
swapcase()方法:不管原字符串是全小写、全大写还是混合大小写,都能一次性完成所有字符的大小写互转,比手动判断更简洁全面 - 函数只需要接收一个输入参数,调用时直接传入用户输入的字符串即可,避免参数不匹配的问题
补充说明
如果不想用异常处理,也可以用str.isdigit()判断是否是纯数字字符串,但这种方法无法处理负数(比如"-3"的isdigit()结果是False),所以异常处理的方式兼容性更强。
内容的提问来源于stack exchange,提问作者Daniel M_D
相关产品推荐
相关产品推荐

