【发布时间】:2021-03-01 17:58:49
【问题描述】:
我正在尝试制作一个计算前 N 个奇数之和的程序。其中N是第一个奇数的个数(例如N=4,那么第一个赔率是1,3,5,7)
它应该输出奇数。
代码正确吗? (考虑到它需要在一个循环中)还是有更好的代码来计算总和? 另外,如何输入验证负数?我只知道如何处理整数。 (输入只需为正整数)
numberN=input("Please enter a positive number N: ")
sumofodd = 0
try:
digit = int(numberN)
if digit > 0:
for n in range (0,digit+1,1):
sumofodd = n*n
print("the sum of", digit, " is ", sumofodd)
except ValueError:
print("you did not enter a positive integer")
exit(1)
非常感谢
【问题讨论】:
-
This post 可以提供一些指导和优化。包括short code和pure math。
-
非常感谢????
-
"代码正确吗?" - 你是应该告诉我们的人。你测试了吗?它是否为您的测试用例产生正确的输出?
-
它确实产生了正确的输出,但是代码的 ''' sumofodd = n*n ''' 部分在没有 for 循环的情况下也可以工作。所以我想知道它是否是错误的。我是编码新手
-
因为这里的循环是不必要的。这是一个计算n个非负奇数之和的程序
print(int(input("Enter a number : ")))**2)
标签: python python-3.x loops for-loop sum