python換行符號 - 如何在沒有換行符或空格的情況下打印?




python字串換行符號 (18)

一般方法

import sys
sys.stdout.write('.')

您可能還需要致電

sys.stdout.flush()

確保stdout立即刷新。

Python 2.6+

從Python 2.6中,您可以從Python 3導入print功能:

from __future__ import print_function

這使您可以使用下面的Python 3解決方案。

Python 3

在Python 3中, print語句已被更改為函數。 在Python 3中,您可以改為:

print('.', end='')

這也適用於Python 2,前提是您已經使用from __future__ import print_function

如果您在緩衝時遇到問題,可以通過添加flush=True關鍵字參數來刷新輸出:

print('.', end='', flush=True)

問題在於標題。

我想用python來做。 我在這個例子中想要做的是在c :

#include <stdio.h>

int main() {
    int i;
    for (i=0; i<10; i++) printf(".");
    return 0;
}

輸出:

..........

在Python中:

>>> for i in xrange(0,10): print '.'
.
.
.
.
.
.
.
.
.
.
>>> for i in xrange(0,10): print '.',
. . . . . . . . . .

在Python print會添加一個\n或一個空格,我該如何避免這種情況? 現在,這只是一個例子。 不要告訴我,我可以先建立一個字符串然後打印出來。 我想知道如何“追加”字符串到stdout


...你不需要導入任何庫。 只需使用刪除字符即可:

BS=u'\0008' # the unicode for "delete" character
for i in range(10):print(BS+"."),

這將刪除換行符和空格(^ _ ^)*


python 2.6+

from __future__ import print_function # needs to be first statement in file
print('.', end='')

python 3

print('.', end='')

python <= 2.5

import sys
sys.stdout.write('.')

如果每次打印後額外的空間都可以,請在python 2中打印

print '.',

在python 2中誤導 - 避免

print('.'), # avoid this if you want to remain sane
# this makes it look like print is a function but it is not
# this is the `,` creating a tuple and the parentheses enclose an expression
# to see the problem, try:
print('.', 'x'), # this will print `('.', 'x') `

python中的print功能自動生成一個新行。 你可以嘗試:

print("Hello World", end="")


Python的代碼3.6.1

for i in range(0,10): print('.' , end="")

產量

..........
>>>

以下是不插入換行符的一般打印方法。

Python 3

for i in range(10):
  print('.',end = '')

在Python 3中,實現起來非常簡單


你可以試試:

import sys
import time
# Keeps the initial message in buffer.
sys.stdout.write("\rfoobar bar black sheep")
sys.stdout.flush()
# Wait 2 seconds
time.sleep(2)
# Replace the message with a new one.
sys.stdout.write("\r"+'hahahahaaa             ')
sys.stdout.flush()
# Finalize the new message by printing a return carriage.
sys.stdout.write('\n')

你好名字姓! 當打印​​這個如果一個拳頭名字和B是姓氏,但打印姓名時最後添加一個空格

a="Firstname"
b="Lastname"
print("Hello",a,b+"!")

你會注意到所有上述答案都是正確的。 但是我想製作一個捷徑,最後總是寫出“end =''”參數。

你可以定義一個函數

def Print(*args,sep='',end='',file=None,flush=False):
    print(*args,sep=sep,end=end,file=file,flush=flush)

它會接受所有參數的數量。 即使它會接受所有其他參數,如文件,刷新等,並具有相同的名稱。


使用functools.partial創建一個名為printf的新函數

>>> import functools

>>> printf = functools.partial(print, end="")

>>> printf("Hello world\n")
Hello world

使用默認參數輕鬆包裝功能。


其中許多答案似乎有點複雜。 在Python 3.X中,您只需執行此操作,

print(<expr>, <expr>, ..., <expr>, end=" ")

結束的默認值是“\ n”。 我們只是簡單地將它改為空格,或者也可以使用end =“”。


在Python 3中,打印是一項功能。 你打電話時

print ('hello world')

Python將其翻譯為

print ('hello world', end = '\n')

你可以改變任何你想要的。

print ('hello world', end = '')
print ('hello world', end = ' ')

您可以在print功能的最後添加,因此它不會在新行上打印。


您可以在python3中執行相同的操作,如下所示:

#!usr/bin/python

i = 0
while i<10 :
    print('.',end='')
    i = i+1

並用python filename.pypython3 filename.py執行它


我的理解是逗號壓制了空間這3個點是解釋者的遺跡

因為我在範圍內(0,10):print“。\ n”,...。 。 。 。 。 。 。 。 。 。


新的(從Python 3.0開始的) print函數有一個可選的end參數,可以讓你修改結尾字符。 還有隔離器。



for i in xrange(0,10): print '\b.',

這在2.7.8和2.5.2(分別為Canopy和OSX終端)中都有效 - 無需導入模塊或時間。





newline