2024-10-01 04:53:07 发布
网友
number_of_terms = 5 sum1=0 for i in range (1,number_of_terms+1): num=eval('2'*i) sum1+=num print(sum1)
所以上面给出的代码是有效的。这个过程就像2+22+222+2222+..n次。我无法用不同的方法解决它,所以我使用了eval()函数,但我试图避免使用它。你能告诉我没有eval()我怎么做吗? 带有number_of_terms5的预期输出为24690
eval()
number_of_terms
您可以将sum与嵌套列表理解一起使用,如下所示:
sum
n = 2 # one digit number for usage count = 5 # count of numbers required from series my_sum = sum(sum(n*10**j for j in range(i)) for i in range(1, count+1)) # my_sum holds: 24690
它基于算术计算,不需要从字符串到int的类型转换,因此性能更高效
您不需要eval,只需使用int:
eval
int
number_of_terms = 5 sum1=0 for i in range (1, number_of_terms + 1): sum1 += int('2' * i) print(sum1)
或者,您可以按如下方式制作发电机:
print(sum(int('2' * (i + 1)) for i in range(number_of_terms)))
两个代码都输出:
24690
您可以将
sum
与嵌套列表理解一起使用,如下所示:它基于算术计算,不需要从字符串到int的类型转换,因此性能更高效
您不需要
eval
,只需使用int
:或者,您可以按如下方式制作发电机:
两个代码都输出:
相关问题 更多 >
编程相关推荐