python - 通过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
解决方案
您的问题已经得到解答,但我想提一下如何改进您的代码。
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()