【问题标题】:How to write a word using nested loops?如何使用嵌套循环写一个单词?
【发布时间】:2020-05-14 21:48:58
【问题描述】:

我想编写一个代码,当给定一个特定的数字列表时会写一些东西。我知道还有另一种方法是将字符串打印语句乘以每次迭代,但我就是这样做的。

numbers = [10 , 10 , 4 , 4 , 4 , 9 , 9 , 4 , 4 , 4 , 4]
for each_letter in numbers:
    output = ""
    for each_count in range(each_letter):
        output += "F"
    print(output)
This is the output


FFFFFFFFFF
FFFFFFFFFF
FFFF
FFFF
FFFF
FFFFFFFFF
FFFFFFFFF
FFFF
FFFF
FFFF
FFFF

问题是我怎样才能用它们之间的空格来扩展它以仅使用数字列表来形成完整的单词? 例如,我如何写一个完整的单词或一个句子?甚至可能吗?

接受建议...✌

【问题讨论】:

  • 首先,您的程序无法显示不在行首或有间隙的字母(例如 V)。
  • 谢谢-DVZ 我什至没有想到这一点。但这是否意味着单词之间的空格不能显示?如果是这样,有什么方法可以通过编辑我的数字列表来显示空白点?我可以做一些类似另一个 if 语句的事情,它可以在两者之间打印空格以显示间隙。我是一个完整的初学者,所以请不要因为我做了一些如此基本和搞砸的事情而评判我。
  • 可能有多个空格(如 W 或 Q)。这个问题比你想象的要难。

标签: python-3.x for-loop


【解决方案1】:

您可以像以前一样遍历多个列表并打印它们。例如:

def make_row(count):
    r = ""
    for c in range(count):
        r += "F"
    r += " "*(10 - count) # comment this out to see what it does.
    return r

letter_f = [10 , 10 , 4 , 4 , 4 , 9 , 9 , 4 , 4 , 4 , 4]
letter_e = [10 , 10 , 4 , 4 , 4 , 9 , 9 , 4 , 4 , 10 , 10]

for letter_counts in zip(letter_f, letter_e):
    output = ""
    for letter_count in letter_counts:
        output += make_row(letter_count)
        output += "    "
    print(output)

但是,我建议您更改表示字母的方式。正如@DYZ 所说,您不能用这种设计制作所有字母。

【讨论】:

  • 感谢协会。我从来没有那样看它
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-09
相关资源
最近更新 更多