You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python自定义函数求助:实现大小写转换及数字加5功能遇报错

问题解决:Python自定义函数实现大小写互转与数字加5

原代码的问题

  1. 函数定义了两个参数vyp(a, b),但调用时只传了一个参数,会直接报参数不匹配的错误
  2. 大小写判断逻辑有漏洞:如果输入是混合大小写的字符串(比如HeLLo),既不满足a == a.lower()也不满足a == a.upper(),会完全不处理
  3. 数字判断的写法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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 11:45:32