Python程序给出n值,并使用for循环计算n + nn + nnn的值

时间:2019-05-22 06:59:51

标签: python for-loop

在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。 在这方面可以提供任何帮助,以了解错误以及我所缺的地方。

3 个答案:

答案 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)