Python 3n+;1个带'的序列函数;计数';
这是我现在必须要做的代码Python 3n+;1个带'的序列函数;计数';,python,python-3.x,Python,Python 3.x,这是我现在必须要做的代码 seq3np1函数跟踪并返回计数 要求用户提供范围值的上限 使用范围(包括) 具有将迭代次数作为参数的绘图功能 根据seq3np1返回的最大值绘制结果图并更新世界坐标 在图表上显示目前为止的最大值 但如果我试图在主函数上打印“count”,它会说count是未定义的。在主函数上打印count应该怎么做?函数中定义的变量属于该函数名称空间;在功能的范围之外无法访问它们。(名称空间和范围是您应该在python文档中查找和了解的词) 在main中,必须将seq
- seq3np1函数跟踪并返回计数
- 要求用户提供范围值的上限
- 使用范围(包括)
- 具有将迭代次数作为参数的绘图功能
- 根据seq3np1返回的最大值绘制结果图并更新世界坐标
- 在图表上显示目前为止的最大值
但如果我试图在主函数上打印“count”,它会说count是未定义的。在主函数上打印count应该怎么做?函数中定义的变量属于该函数
名称空间;在功能的范围之外无法访问它们。(名称空间和范围是您应该在python文档中查找和了解的词)
在main
中,必须将seq3np1
返回的结果分配给count
def seq3np1(n):
count = 0
""" Print the 3n+1 sequence from n, terminating when it reaches 1."""
while(n != 1):
if(n % 2) == 0: # n is even
n = n // 2
count += 1
else: # n is odd
n = n * 3 + 1
count += 1
return count
def main():
num=int(input("what number do you want to put?: "))
seq3np1(num)
print("This is the starting number: ", num)
print("Number of iterations:", count)
main()
num=int(输入(“您想输入什么数字?”:”)
count=seq3np1(num)#count在seqnp1函数中定义,当该函数退出时,count变量不再可用
因此,您可以将seqnp1函数的返回值存储到一个变量中,然后使用它
修改主功能中的行:
从
到
它将按预期工作。在main中定义一个变量count
,然后
将seq3np1()
中的返回值存储到该变量
当前唯一的count
变量位于seq3np1
中,它有自己的作用域。
该函数“返回”count
到main,但您没有将其存储在main中的任何位置,因此您丢失了该返回值
在main中,您应该替换函数调用
seq3np1(num)
使用该行
count=seq3np1(num)
请注意,main()
中的新变量count
,与seq3np1()
函数中定义的count
不同
您甚至可以更改main中的count
变量名
因此,您可以通过在main()
中使用以下内容而不是上述修复,来了解它与seq3np1()
中的count
变量的不同之处:
numIterations=seq3np1(num)
然后
print(“迭代次数:”,numIterations)
在main中定义变量count
。当前唯一的count
变量位于seq3np1
中,它有自己的作用域。该函数“返回”计数,但不存储在任何位置。在main中,您应该将函数调用替换为行count=seq3np1(num)
。请注意,此计数与函数中定义的计数不同。为了清晰起见,您甚至可以更改名称:numIterations=seq3np1(num)
和print(“迭代次数:”,numIterations)
。
num=int(input("what number do you want to put?: "))
count = seq3np1(num) # <--- Here
print("This is the starting number: ", num)
print("Number of iterations:", count)
seq3np1(num)
count = seq3np1(num)