在python中,我传递了一个str类型的数字,例如n ='6'。然后想要sum_n = n + nn + nnn
,使用for循环
直到现在我尝试了下面的代码,但它引发了错误。
“ ValueError:以10为底的int()无效文字:”“
n = '6'
sum_n = 0
for i in range(4):
n_itr = n*i
print('printing n_itr', n_itr, type(n_itr))
sum_n = int(sum_n) + int(n_itr)
print('printing sum_n ', sum_n)
我希望该过程为sum_n =(6 + 66 + 666),输出为738。 在这方面可以提供任何帮助,以了解错误以及我所缺的地方。
答案 0 :(得分:1)
只需将范围从range(4)
更改为range(1,4)
。
range(4)
从0开始i
的值,其中n_itr= n*i
的值为空字符串,最终在int(n_intr)
上引发错误。
答案 1 :(得分:0)
尝试以下一种方法:
sum_n = sum(map(int, [n*i for i in range(1,4)]))
输出:
738
您需要对代码进行一次更改:
for i in range(1,4):
int()
方法在尝试将''
转换为整数形式时会产生错误。
答案 2 :(得分:0)
您可以这样更改它:
n = '6'
sum_n = 0
n_itr = ''
for i in range(3):
n_itr = n_itr + n
print('printing n_itr', n_itr, type(n_itr))
sum_n = int(sum_n) + int(n_itr)
print('printing sum_n ', sum_n)
给出以下输出:
('printing n_itr', '6', <type 'str'>)
('printing sum_n ', 6)
('printing n_itr', '66', <type 'str'>)
('printing sum_n ', 72)
('printing n_itr', '666', <type 'str'>)
('printing sum_n ', 738)