Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 求前N个奇数之和的程序_Python_Python 3.x_Loops_For Loop_Sum - Fatal编程技术网

Python 求前N个奇数之和的程序

Python 求前N个奇数之和的程序,python,python-3.x,loops,for-loop,sum,Python,Python 3.x,Loops,For Loop,Sum,我想做一个程序,计算前N个奇数的和。其中N是第一个奇数的个数(例如N=4,则第一个赔率为1,3,5,7) 它应该输出奇数 代码正确吗?(考虑到它需要在一个循环中)或者是否有更好的代码来计算总和? 另外,如何输入和验证负数?我只知道如何处理整数。(输入只需为正整数) 非常感谢您的代码似乎不正确。你正在计算数字之和。相反,您正在计算它遇到的最后一个数字的n²。你的射程不会循环通过奇数 @S3DEV为您提供了一个完全不同(更好)的方法的很好的参考,但您的方法是固定的: numberN=input(“请

我想做一个程序,计算前N个奇数的和。其中N是第一个奇数的个数(例如N=4,则第一个赔率为1,3,5,7)

它应该输出奇数

代码正确吗?(考虑到它需要在一个循环中)或者是否有更好的代码来计算总和? 另外,如何输入和验证负数?我只知道如何处理整数。(输入只需为正整数)


非常感谢

您的代码似乎不正确。你正在计算数字之和。相反,您正在计算它遇到的最后一个数字的n²。你的射程不会循环通过奇数

@S3DEV为您提供了一个完全不同(更好)的方法的很好的参考,但您的方法是固定的:

numberN=input(“请输入正数N:”)
sumofodd=0
尝试:
数字=整数(数字)
除:
打印(“您没有输入整数”)
出口(0)
如果x<0:
弹簧(“给出正数”)
出口(0)
对于范围内的n(1,数字*2,2):
sumofodd+=n
打印(“总和”,数字,“是”,sumofodd)

在@ex4回答之后,您还可以这样做来简化代码并验证负输入:

numberN = abs(int(input("Please enter a positive number N: ")))
sumofodd = 0
for n in range(1,numberN*2,2):
      sumofodd += n
print ("the sum of", numberN, " is ", sumofodd)
abs()
返回绝对值,因为:
abs(int(input(“…”)))
输入被转换为一个正整数

您还可以使用以下选项:

 numberN = abs(int(input("Please enter a positive number N: ")))
 print ("the sum of", numberN, " is ", numberN*numberN)

相同的结果。

可以提供一些指导和优化。包括和。非常感谢“代码正确吗?”-您应该告诉我们。你测试过了吗?它是否为您的测试用例生成了正确的输出?它确实生成了正确的输出,但是代码的“sumofodd=n*n”部分在没有for循环的情况下也可以工作。所以我想知道这种感觉是不是错了。我是新来编码的,这里的循环是不必要的。这是一个计算n个非负奇数之和的程序
print(int(输入(“输入一个数字”))**2)
omg我现在看到了错误,我试图修复错误的代码部分。现在有道理了。多谢各位。是的,只是为非整数输入添加输入验证。而且效果很好。非常感谢。使用算术级数,可以很容易地找到从1到无穷大的奇数之和。所以,只要打印它的平方值,就可以得到n个奇数的和
try:
    n = int(input("Please enter a positive number N: "))
    if n > 0:
        print("the sum of", n, "is", n * n)
except ValueError:
    print("you did not enter a positive integer")
    exit(1)
try:
    n = int(input("Please enter a positive number N: "))
    if n > 0:
        print("the sum of", n, "is", n * n)
except ValueError:
    print("you did not enter a positive integer")
    exit(1)