Python中按输入变量次数重复字符串报错问题求助
解决Python字符串重复时的TypeError问题
嘿,这个问题我之前也碰到过!咱们来一步步拆解解决它~
为啥会报错?
你看到的TypeError: can't multiply sequence by non-int of type 'str',本质原因是从输入里拆分出来的number是字符串类型。Python里只有整数才能和字符串相乘实现重复效果,字符串和字符串之间可没法这么玩哦。
看你的代码:
s = raw_input() p = s.split(" ") mystr = p[0] number = p[1] print mystr * number
这里p[1]取到的是输入里的"5"(带引号的字符串),不是整数5,所以执行乘法时直接触发错误了。
修复后的代码
只需要给number做个类型转换,用int()把字符串转成整数就行:
s = raw_input() p = s.split(" ") mystr = p[0] number = int(p[1]) # 关键:把字符串转成整数 print mystr * number
现在输入abcdefg 5,就能得到你想要的重复结果啦。
更简洁的写法(可选)
可以用解包的方式简化代码,看起来更清爽:
mystr, num_str = raw_input().split() number = int(num_str) print mystr * number
甚至可以把转换和输出合并成更短的写法:
mystr, number = raw_input().split() print mystr * int(number)
额外小提示(处理异常)
如果担心用户输入格式不对(比如输了多于两个内容、第二个不是数字),可以加个异常处理,让程序更健壮:
try: mystr, num_str = raw_input().split() number = int(num_str) print mystr * number except (ValueError, IndexError): print("请输入正确格式:<目标字符串> <重复次数(整数)>")
内容的提问来源于stack exchange,提问作者Chica_Programmador
相关产品推荐
相关产品推荐

