s1 = input("输入一个数:")
s2 = input("输入另一个数:")
s3 = s1 * s2
执行后分别输入两个数,报错TypeError: can’t multiply sequence by non-int of type ‘str’,结果如图:

查阅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("输入另一个数:"))
搞定!
该博客探讨了在Python3中使用input()函数获取用户输入时遇到的TypeError问题。当尝试将字符串相乘而未进行类型转换时,会抛出错误。解决方案是将输入的字符串通过int()函数转换为整数再进行计算。文章强调了理解数据类型和强制类型转换在编程中的重要性。

220

被折叠的 条评论
为什么被折叠?



