计算机如何通过以下代码获得输出?

时间:2019-06-20 05:59:33

标签: python

我无法理解代码如何获得最终结果。有人可以详细解释python如何解释和执行此操作吗?

counts = [5, 2, 5, 2, 2]
for x_count in counts:
    output=""
    for count in range(x_count):
        output+="x"
    print(output)`

结果:

 xxxxx 
 xx
 xxxxx
 xx
 xx

我看不懂代码。为什么要使用范围(x_count)中的计数,并且输出+ = x应该导致“ 5 + x”而不是“ xxxxx”?通常,要获取“ XXXXX”,我们应该使用print(5 *“ x”),使用+如何给我相同的输出?

范围功能在这里有什么帮助?

3 个答案:

答案 0 :(得分:0)

Colab link for the code

我注释了代码以供您理解。

counts = [5, 2, 5, 2, 2] # Counts of X
for x_count in counts: # For every count value
    output="" # Output holds bunch of X 
    # output is reset at every iteration
    for count in range(x_count):
        output+="x" # Populate output with X values for each count
        # + and += concats strings
    print(output) # print output

一种类似的方法:

counts = [5, 2, 5, 2, 2]
outputs = ["".join(['x'] * count) for count in counts]
for output in outputs:
  print(output)

答案 1 :(得分:0)

counts = [5, 2, 5, 2, 2]                    # counts
for x_count in counts:                      # will loop over each element in count
    output=""                               # variable to hold xs
    for count in range(x_count):            # will loop x_count times
        output+="x"                         # 'x' will be appended to output variable
    print(output)                           # output will be printed

答案 2 :(得分:0)

您的原始清单

counts = [5, 2, 5, 2, 2]

for count in counts:

这意味着要获得计数值,即先选择第一个元素,然后选择第二个元素,然后选择第三个元素 以此类推,直到最后一个元素,即。它先选择5个,然后选择2个,依此类推

original = '' # intialise the element 

这将创建一个值为''的字符串元素,

for value in range(count):

range(count)给出[0,count)范围内的值,即从0到0的数字列表。 计数(独家)

所以for value in [0,1...count]

因此它将选择值形式列表的第一个元素,然后第二个,依此类推

对于要向x添加original的每个值,否,因此for循环将运行计数 时间,然后将x添加到original

print(orignal)

到目前为止将打印origanl的值