python - 如何编写一个迭代函数,使用 for 循环计算返回 1 + 3 + .... + (2n - 1) 的前 n 个奇数之和?
问题描述
假设这n
是一个正整数
这是我的代码:
def sum_odd_n(n):
x =1
for x in range(n):
if x%2==1:
continue
return x + 2
但是当我在 Python 上运行它时,它给了我答案2
。你能帮我告诉我出了什么问题以及我应该怎么做来解决这个问题吗?
解决方案
由于您想找到第一个“n”个奇数的总和,我建议您使用 step=2 的 range 函数。我会详细说明:
def sum_n(n):
addition=0
for x in range(1,2*n,2):
addition+=x
return addition
s=sum_n(5)
print(s)
这给出了输出:25
这里,在 range 函数中,第 1 个属性提供起点,第 2 个属性提供终点,第 3 个属性提供序列中每个数字之间的差值。我希望这有帮助。
推荐阅读
- numpy - numpy/scipy 中的异形渐变填充
- sed - 使用 sed 在数字文本周围加引号
- javascript - 选中单选按钮时更改不同元素的类名
- android-file - 为什么我不能在 android 10 中使用 whit 文件?
- amazon-web-services - 为 EC2 实例的非特权用户承担角色“拒绝访问”
- python - 如何单击“下一步”并使用 Selenium 浏览所有页面?
- amazon-web-services - AWS SSM、AutoScalingGroup 和 LoadBalancer
- android - Android上的条码扫描?
- android - 获取相机/麦克风权限时出错 - 但已授予权限 - 带有 webview 的 Android Studio 应用
- r - 如何更好地控制 R Markdown 中的目录?