首页 > 解决方案 > 通过for循环制作数字平方的问题

问题描述

我正在学习 python,现在我正在学习 for 和 while,我正在做的练习要求我使用 for 循环制作数字的平方。所以我正在努力实现它,但我不知道如何解决问题,我知道它为什么存在,但我不知道如何解决它。

无论如何,这是代码

def main():
    #start
    givn_n = eval(input("Tell me the number:\n"))
    for i in givn_n:
        #start
        double_givn_n = givn_n ** 2
        print(double_givn_n)
        #end
     return
     #end

main()

错误是:

Traceback (most recent call last):
  File "C:\Users\Simone\Desktop\progetto python\Tutorial-python\w ext libraries\somma_quadrati.py", line 12, in <module>
    main()
  File "C:\Users\Simone\Desktop\progetto python\Tutorial-python\w ext libraries\somma_quadrati.py", line 6, in main
    for i in givn_n:
TypeError: 'int' object is not iterable

标签: pythonfor-loop

解决方案


您的问题已经得到解答,但我想提一下如何改进您的代码。

eval是一个危险的功能。我建议你不要使用它。在你的情况下,int可以调用。

别的东西呢。简单的。试试ast.literal_eval。进行评估的安全方式。

def main():
    # start
    givn_n = int(input("Tell me the number:\n"))
    for i in range(givn_n):
        # start
        double_givn_n = givn_n ** 2
        print(double_givn_n)
        #end
     return # Your code already ends, I think no need to return :)
     #end

main()

推荐阅读