【问题标题】:How to make for loop only go to next line only when it finds a \n [duplicate]如何使for循环仅在找到\\n时才转到下一行[重复]
【发布时间】:2023-01-02 08:50:57
【问题描述】:

标题^

所以我有这段代码:

from colorama import Fore, Back, Style

#(我猜网站有点出问题是因为所有这些特殊字符所以这就是为什么它不在```中)

file_contents = " ^^ @@@@@@@@\n ^^ ^^ @@@@@@@@@@@@@\n @@@@@@@@@@@@@@ @@@^^\n @@@@@@@@@@@@@@@@@\n~~~~~~~~~~~~~~~~~~~~~ &&&&&&&&&&&&&&& ~~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~ ~~~~~\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n~~~~ ~~~~~~~~~~~~~~~~~~~~\n~~~~~~~~~~~~~~~~~~~~\n~~~~~~~ ~\n"

#(这应该是日落的 ascii 文本艺术)

for x in file_contents:
  if x == "~":
    print(Fore.RED + x)
  elif x == "&":
    print(Fore.CYAN + x)
  elif x == "@":
    print(Fore.YELLOW + x)
  elif x == "v" or x == "^":
    print(Fore.BLACK + x)

虽然它确实按预期工作,但它会在换行符中打印每个字符,如果我输入 ,end = '',它会在同一行中打印所有内容。那么我怎样才能让它只在找到\n 时才转到换行符?

(是的,我知道我可以在技术上手动但我很懒,这会花很长时间)

【问题讨论】:

  • 再次将 end 设置为空,以与检查其他字符相同的方式检查 \n ,并在看到换行符时打印它。

标签: python for-loop


【解决方案1】:
  • 为您已有的所有打印语句设置end=''
  • 添加
    elif x == "
":
        print('')

【讨论】:

  • 谢谢,我以前试过,但由于某种原因它没有用,但现在可以了吗?我不知道,但无论如何,我只需要添加 elif x == " ": print(" ") 来解释空格,现在一切正常了!
  • 我很高兴它奏效了!
  • else: print(x) 可能更好
【解决方案2】:

您可以使用部分和路径打印功能: (要小心!)

from functools import partial
print = partial(print, end='')

【讨论】:

  • 路径 -> 猴子补丁。但为什么?
猜你喜欢
  • 1970-01-01
  • 2021-08-27
  • 1970-01-01
  • 2020-02-21
  • 2021-01-25
  • 1970-01-01
  • 1970-01-01
  • 2019-09-01
  • 2011-04-25
相关资源
最近更新 更多