Python程序运行报pow相关TypeError错误,请问问题出在哪里?
错误原因
- 元素录入逻辑错误:你在获取输入元素时写了
ele=[input("Enter element of list 1 :")],外层多套了一层方括号,导致每次存入list1的是单元素列表而非单个元素,后续遍历list1时拿到的i是列表类型,无法作为pow的参数和整数做幂运算,这就是抛出TypeError: unsupported operand type(s) for ** or pow(): 'list' and 'int'的直接原因。 - 输入类型未转换:
input函数返回值默认是字符串类型,即使去掉外层方括号,字符串也无法直接做平方运算,需要显式转换为数值类型(int/float)。
修复方案
修改元素录入部分的代码,去掉多余的方括号,同时将输入转为整数类型即可,修复后完整代码如下:
num1=int(input("Enter Number of Elements For first list :")) list1=[] for i in range(num1): ele=int(input("Enter element of list 1 :")) list1.append(ele) new_list = [(i,pow(i,2)) for i in list1] print(list1) print(new_list)
运行示例
输入元素个数为3,依次输入2、3、4,输出结果为:
[2, 3, 4] [(2, 4), (3, 9), (4, 16)]
内容的提问来源于stack exchange,提问作者NIlesh
相关产品推荐
相关产品推荐

