for in循环只读不写,所以那里写i=...是没用的,可以用下标运算符修改列表:
for i in range(len(ls)):
ls[i] = int(ls[i])
n *= ls[i]
你题目的原意是不是把输入的数字串,转化为各位上数字的列表,然后求出总乘积分别是各元素的倍数
使用map()函数:
ls = list(map(int,input()))
所有元素的积用reduce()函数
from functools import reduce
n = reduce(lambda x,y:x*y,ls)
最后求倍数列表:
lt = list(map(lambda x:n//x, ls))
如有帮助,请给个采纳。谢谢
问题出在第1行。
无论如何,input 函数总是返回 str ,再把 str 转为 list 得到 list[str] ,访问其中的元素时取到的当然是 str 。
Tips 1:请使用代码块功能上传代码
Tips 2:如果某一行报错了,可以试试在报错之前输出这一行用到的变量信息,以便排查 bug