【问题标题】:While Loop Print List formattingWhile 循环打印列表格式
【发布时间】:2014-08-12 20:47:18
【问题描述】:

我想仅使用以下公式从任何给定数字创建一个因子列表。因此,我不允许使用列表,我模仿使用字符串如下:

例如,假设我们选择 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

不使用列表,for循环,int,函数只能使用字符串,

如何格式化循环输出使其看起来像这样?:

[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, ]

谁能帮助或建议我可以将打印状态放在哪里或如何修改它?谢谢!

【问题讨论】:

  • 我想你可能对printing 某事和 REPL 函数returns 某事时显示的内容之间的区别感到困惑。
  • 我想我对计算机如何存储值感到困惑。我真正想要的是这个函数 def factor(num): 使用该代码并返回 [a, b, c, d,] 等。
  • 是的,这就是列表在 REPL 中打印出来时的样子。
  • while 循环中,您可以使用a += str(i) 连接每个str(i)。如果与原始a = str(i) 一起使用,它将每次只为变量a 分配一个新值(丢弃旧值)。然后,你可以在循环之后printa

标签: python string loops python-2.7 while-loop


【解决方案1】:
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)

输出 > [1,2,4]

【讨论】:

  • @SteveZrg 我很久以前就给过你这个答案。有一个错误的缩进。第一次你没有被no lists, for loops, int, function and can only use strings 询问,但我的功能仍然没有使用任何这些。
【解决方案2】:

您可以使用以逗号结尾的打印语句,以便在使用第二个打印语句时不插入新行,然后您只需要确保第一次打印“[”和最后一次打印“ ]"

例如

print "hello ",
print "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

【讨论】:

    【解决方案3】:

    您可以通过+= 将每个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]
    

    【讨论】:

      【解决方案4】:
      def factors(num):
          i = 1
          factors = []
          while i <= num:
              if num % i == 0:
                  factors.append(i)
      
          i += 1
      
          print factors
      
      factors(12)
      

      这会将所有因子添加到一个称为因子的表中,然后当所有因子添加时,将打印出表因子。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2018-05-16
        • 1970-01-01
        • 2014-11-28
        • 2021-08-26
        • 2015-04-03
        • 1970-01-01
        • 2020-07-23
        • 1970-01-01
        相关资源
        最近更新 更多