python之报错TypeError: can‘t multiply sequence by non-int of type ‘str‘

s1 = input("输入一个数:")
s2 = input("输入另一个数:")
s3 = s1 * s2

执行后分别输入两个数,报错TypeError: can’t multiply sequence by non-int of type ‘str’,结果如图:

python之报错TypeError: can‘t multiply sequence by non-int of type ‘str‘_第1张图片
查阅python文档可知,Python3.x 中 input() 函数接受一个标准输入数据,返回为 string 类型。

>>>a = input("input:")
input:123                  # 输入整数
>>> type(a)
<class 'str'>              # 字符串
>>> a = input("input:")    
input:runoob              # 正确,字符串表达式
>>> type(a)
<class 'str'>             # 字符串

在键盘输入的数我们以为是整数,实际上在内存里并不是正整数,而是字符串,所以在进行s3 = s1 * s2计算时报错(字符串不可以相乘啊)。

解决思路:强制类型转换。

#1.代码中计算部分修改为: 
 s3=int(s1) * int(s2)

或者

s1 = int(input("输入一个数:"))
s2 = int(input("输入另一个数:"))

搞定!

你可能感兴趣的:(python)