我只想使用下面的公式创建任何给定数字的因子列表。因此我不允许使用列表,我已经模仿使用字符串如下:
例如,假设我们选择num = 12:
def factors(num):
i=1
while i <= num :
if num % i == 0:
print i
i = i + 1
此代码打印:
1
2
3
4
6
12
不使用list,for循环,int,function,只能使用字符串,
如何格式化循环输出以使其看起来像这样?:
[1, 2, 3, 4 ,6 ,12]
我先尝试这样做:
num = 12
i = 1
while i <= num :
if num % i == 0:
a=str("[")+str(i)+", "+str("]")
print a
i = i + 1
打印:
[1, ]
[2, ]
[3, ]
[4, ]
[6, ]
[12, ]
任何人都可以帮助或建议我可以将打印状态放在哪里或如何修改它?谢谢!
答案 0 :(得分:0)
def factors(num):
i=1
result="["
while i <= num :
if num % i == 0:
result=result+str(i)+","
i+=i
result=result[:-1]+"]"
print result
factors(12)
输出&gt; [1,2,4]
答案 1 :(得分:0)
您可以使用以逗号结尾的print语句,以便在使用第二个print语句时不插入新行,那么您只需要确保第一次打印“[”并且最后一次打印“ ]“
例如
print "hello ",
print "world"
将返回&gt;&gt;&gt; hello world
代码看起来像这样
def factors(num):
i=1
while i <= num :
if i == 1:
if num % i == 0:
print "[",
else:
print "[",
if i == num:
print "%s]"%(i)
elif num % i == 0:
if i == num:
print i,"]"
else:
print "%s,"%(i),
i = i + 1
答案 2 :(得分:0)
您可以按str(i)
将每个a
连接到字符串+=
,
def factors(num):
i = 1
a = "["
while i < num :
if num % i == 0:
a+=str(i)+", "
i = i + 1
print(a + str(num) + str("]"))
factors(12)
输出:
[1, 2, 3, 4, 6, 12]
答案 3 :(得分:0)
def factors(num):
i = 1
factors = []
while i <= num:
if num % i == 0:
factors.append(i)
i += 1
print factors
factors(12)
这会将所有因子添加到名为factors的表中,然后在添加所有因子时,将打印出表因子。