【问题标题】:How to manage while-loop to reverse this print如何管理 while-loop 以反转此打印
【发布时间】:2020-09-23 12:10:23
【问题描述】:

我最近开始编码,目前我正在做一个练习,我需要创建一个打印“15、14、12、9、5”的程序。该程序应使用代码中提供的部分创建。 这意味着我只能移动这些代码行,但不能更改它们或添加新代码。我已经到了可以打印“5、9、12、14、15”的地步,但我不知道如何用这些“拼图”来扭转这一点。有人可以帮帮我吗?

编辑:得到答案,谢谢!

i = 0
MAX = 5
sum = 0
j = MAX
while j > i:
    while i < MAX:
        sum += j
        print(sum)
        j -= 1
        i += 1

【问题讨论】:

  • 请包括您尝试过的内容并发布相关图像的文本版本。
  • 你可以试试itertools.permutations 和exec :-P
  • @superbrain 不幸的是,我必须在练习中使用这些确切的代码行并且无法添加任何新内容。
  • @coderfrombiz 你误会了。我建议测试线条的所有排列以找到有效的排列。
  • @superbrain 啊,对!其实我从来没有这样做过。感谢您的提示,我会熟悉它。

标签: python while-loop


【解决方案1】:

这似乎有效

i = 0
MAX = 5
while i < MAX:    
  sum = 0
  j = MAX
  while j > i:
    sum += j
    j -= 1
  i += 1
  print(sum)

他们给了你非常有趣的任务:)

【讨论】:

  • 不允许他们更改线条。你改变了缩进。
  • @superbrain 我们被允许更改缩进。我也应该提到这一点!
【解决方案2】:

试试这个

sum = 15
i = 1
while sum > 0:
    print(sum)
    sum -= i
    i += 1

编辑:

i = 0
MAX = 5
while i < MAX:
    sum = 0
    j = MAX
    while j > i:
        sum += j
        j -= 1
    i += 1
    print(sum)

【讨论】:

  • 他只能移动代码行,不能改变它们
  • 哦,我刚刚看到你说你只能移动这些代码行,但不能更改它们或添加新代码。
  • 是的,我首先不清楚并对其进行了编辑。还是谢谢你!
【解决方案3】:

如果不使用while:

在字符串上使用split()将其转换为列表,然后使用[::-1]反转列表,然后使用replace()删除重复的分隔符“,,”

",".join("15, 14, 12, 9, 5".split()[::-1]).replace(",,",",")

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-08-10
    • 1970-01-01
    • 1970-01-01
    • 2021-06-24
    • 1970-01-01
    • 1970-01-01
    • 2023-03-03
    • 1970-01-01
    相关资源
    最近更新 更多