Python中如何将split()分割得到的用户输入转换为int整数类型
问题说明
实现需求:提示用户输入四则运算表达式(输入格式参考1 + 1),将输入拆分为第一个运算数x、运算符y、第二个运算数z三个部分,完成对应运算后输出结果。当前核心问题为拆分得到的x、z是字符串类型,无法直接进行数值计算。
原有问题代码:
x, y, z = input("Expression: ").split() if y == "+": output = x + z print(output) elif y == "-": output = x - z print(output) elif y == "*": output = x * z print(output) elif y == "/": output = x / z print(output)
错误原因
input()方法返回值默认为字符串类型,split()拆分后得到的x、z均为字符串,而非数值:
- 对字符串使用
+运算符会执行字符串拼接,比如输入1 + 1时会输出错误结果11 - 对字符串使用
-/*//运算符会直接触发TypeError,程序直接崩溃
解决方法
拆分输入后,调用int()方法将x、z显式转换为整数类型即可,修复后可正常执行算术运算。
修复后完整代码:
x, y, z = input("Expression: ").split() # 将字符串格式的运算数转为整数 x = int(x) z = int(z) if y == "+": res = x + z elif y == "-": res = x - z elif y == "*": res = x * z elif y == "/": # 要整数除法结果换为//,要浮点结果保留/即可 res = x / z print(res)
扩展提示
- 如果需要支持小数运算,把
int()替换为float()即可 - 上述代码默认用户输入严格符合
运算数 运算符 运算数的空格分隔格式,若需要兼容非法输入,可以额外添加异常捕获、格式校验逻辑
内容的提问来源于stack exchange,提问作者majk
相关产品推荐
相关产品推荐

