Python接收多输入进行数学运算出现TypeError报错如何解决
报错原因
input() 函数的返回值默认是字符串类型,调用split()拆分后得到的x、y、z三个变量仍然是字符串格式,字符串和整数无法直接做算术运算,因此会抛出对应类型错误。
修复后的代码
只需要在拆分输入的同时,把三个边长转换为浮点型(兼容整数、小数格式的边长输入)即可,完整代码如下:
import math x, y, z = map(float, input("Enter side lenghts of the triangle: ").split()) s = (x + y + z) / 2 area = math.sqrt(s * (s - x) * (s - y) * (s - z)) print("Area of the triangle is: ", area, ".", sep="")
如果需要适配中文使用场景,也可以把输入、输出的提示文字替换为中文内容。
多输入场景通用处理方法
如果需要处理任意数量的数值输入场景,通用写法是先拆分所有输入内容,再批量转换为数值类型,再做后续运算,示例如下:
# 示例:接收多个数值输入计算平均值 num_list = list(map(float, input("请输入多个数值,空格分隔:").split())) avg = sum(num_list) / len(num_list) print(f"平均值为:{avg}")
内容的提问来源于stack exchange,提问作者Doğa
相关产品推荐
相关产品推荐

