问题描述
我不知道我的教授是如何在函数中得到这个f的。 该程序有效。
因数
from isfactor import is_factor
def factors(n):
factor_list = [1]
for f in range(2, n):
if is_factor(n ,f):
factor_list.append(f)
factor_list.append(n)
return factor_list
第二个文件:isfactor.py
def is_factor(n, possible_factor):
if n% possible_factor == 0:
return True
else:
return False
第三个文件:testfactors.py
from factors import factors
print(factors(12))
print(factors(13))
print(factors(1000))
1楼
假设您有一个清单。 一个简单的清单
var mylist = [10, 11, 12]
凉。
现在,我想在该列表上打印每个数字。
现在,您可以使用括号[#]
来访问python中的列表项,其中#
是索引号(以0开头,因此第一个为0,第二个为1,依此类推)。
所以我可以这样做:
print mylist[0] #or print(mylist[0]) for python 3.x
print mylist[1]
print mylist[2]
但这将是 。
因此,我们可以进行迭代。
用for
循环一个接一个地看起来像这样
for item in mylist
print item
这意味着现在遍历列表中的每个项目,说item = mylist[0]
,然后您就可以执行某些操作。
然后它再次循环,现在item = mylist[1]
等。这是一个临时变量,它使事情变得简单得多,对吧?
现在range是python中的内置函数,它创建一个从x到y的数字列表,即range(1,10)将导致列表[1, 2, 3, 4, 5, 6, 7, 8, 9]
*
因此,当您看到for f in range(2, n)
您会知道现在开始一个循环,每次循环通过时,f等于2,然后等于3,然后等于4 ...直到n
等于a可变的功能factors
接收。
现在更有意义吗?
* ps这不完全是一个列表。 在Python 3.x中,它变成了它自己的类型,我没有涉及它,但是您可以
2楼
考虑以下循环:
输入:
for f in range(2, 10):
print(f)
输出:
2
3
4
5
6
7
8
9
当您for f in range(2, n-1):
调用for f in range(2, n-1):
,实际上是在创建变量f并将其设置为2,运行循环,然后将f设置为3,运行循环,依此类推,直到获得n (然后迭代停止)。