1

嗨,我正在自学python,已经下载了3.4,正在使用Think python。我遇到的问题是打印网格。我不会把整个代码放上去,但这一点是个问题。

定义do_twice(f):f()f()定义print_beam():打印(“+---”,)定义打印束():do_twice(打印光束)打印(“+”)

现在调用这个函数时应该打印这样的梁+

然而,实际输出是
+ - - - -
+ - - - -
+

我花了整整两个小时写这本书,但我使用的python版本与我正在写的书不同。有人能帮我解决这个问题吗?

4
  • 你使用的是什么版本?如果你不确定,试试导入系统;打印(系统版本)
    – 凯文
    评论 2016年3月4日19:52
  • 您正在阅读Python2教程并在Python3上运行它。这就是问题所在。 评论 2016年3月4日19:54
  • 3.4.4但这本书可能与3.2有所不同 评论 2016年3月4日19:55
  • 1
    如果你的书建议在打印语句以禁止换行,那么几乎可以肯定它是为2.7或更低版本编写的。我想这就是为什么你在你的打印光束功能?
    – 凯文
    评论 2016年3月4日19:56

3个答案

重置为默认值
5

问题是,默认情况下打印函数在其输出的末尾创建新行。这里有一个简单的解决方法。

定义do_twice(f):f()f()定义print_beam():print(“+---”,end='')#不要创建新行。定义打印束():do_twice(打印光束)打印(“+”)
2
  • 谢谢你的帮助,加雷斯马上就修好了。我很高兴来到这里,而不是再敲了两个小时的头。非常感谢! 评论 2016年3月4日19:58
  • 2
    @MarkNolan别忘了把这个作为路过的人的答案!
    – 加雷思
    评论 2016年3月4日20:04
1

使用python 3防止打印换行字符集end=“”如此:

打印(“+---”,结束=“”)

您可以阅读有关此的文档在这里

0

打印带参数的语句(end),让您继续下一行。我使用的是python 3.8版本

定义print_beam():打印('+',end='')打印('-','-'、'-'和'-')打印('+',end='')print('-','-','-','-','-',end='')打印('+')定义print_column():打印('|',end='')打印(“”,“”,'','',end='')打印(“|”,结束=“”)打印('','','','',end='')打印(“|”)
1
  • 1
    这并不能回答他的问题 评论 2020年3月23日13:04

你的答案

单击“发布您的答案”,表示您同意我们的服务条款并确认您已阅读我们的隐私政策.

不是你想要的答案吗?浏览标记的其他问题问你自己的问题.