줄 바꿈이나 공백 없이 인쇄하는 방법
C의 예:
for (int i = 0; i < 4; i++)
printf(".");
출력:
....
Python의 경우:
>>> for i in range(4): print('.')
.
.
.
.
>>> print('.', '.', '.', '.')
. . . .
Python, Python의 print
will will will will will will 。\n
또는 공백입니다.떻게하 하할 ?할? ????문자열을 추가하는 방법을 알고 싶습니다.stdout
.
에서는 Python 3을 할 수 .sep=
★★★★★★★★★★★★★★★★★」end=
함수의 파라미터:
문자열 끝에 새 행을 추가하지 않으려면:
print('.', end='')
인쇄하는 모든 함수 인수 사이에 공백을 추가하지 않으려면 다음 절차를 수행합니다.
print('a', 'b', 'c', sep='')
어느 파라미터에도 임의의 문자열을 전달할 수 있으며 두 파라미터를 동시에 사용할 수 있습니다.
가 있는 수 .flush=True
다음 중 하나:
print('.', end='', flush=True)
Python 2.6 및 2.7
2.에서 Python 2.6 Import를 수 .print
다음 모듈을 사용하여 Python 3에서 기능을 수행합니다.
from __future__ import print_function
위의 Python 3 솔루션을 사용할 수 있습니다.
이 경우 다음과 같은 해 주십시오.flush
는, 할 수 없습니다.print
에서 __future__
Python 2 서 3 3 Python 3 python python python python python 。3.3으로 하다에서는 여전히 sys.stdout.flush()
또한 이 Import를 수행하는 파일의 다른 모든 인쇄문도 다시 써야 합니다.
또는 를 사용할 수 있습니다.
import sys
sys.stdout.write('.')
전화도 필요하실 수 있습니다.
sys.stdout.flush()
stdout
는 즉시 플래시 됩니다.
Python 2 이전 버전에서는 Guido van Rossum의 "How do one print without a CR?" (파라프레이스 첨부) 참조와 같이 간단해야 합니다.
캐리지 리턴을 자동으로 붙이지 않고 인쇄할 수 있습니까?
예, 인쇄할 마지막 인수 뒤에 쉼표를 추가합니다.예를 들어 이 루프는 숫자0 을 출력합니다.9는 공백으로 구분된 선상에 있습니다.마지막 줄바꿈을 추가하는 파라미터가 없는 "인쇄"에 주의하십시오.
>>> for i in range(10):
... print i,
... else:
... print
...
0 1 2 3 4 5 6 7 8 9
>>>
주의: 이 질문의 제목은 "How to printf in Python"과 같은 것이었습니다.
제목에 따라 사람들이 찾아올 수 있기 때문에 Python은 printf 스타일의 대체 기능도 지원합니다.
>>> strings = [ "one", "two", "three" ]
>>>
>>> for i in xrange(3):
... print "Item %d: %s" % (i, strings[i])
...
Item 0: one
Item 1: two
Item 2: three
또한 문자열 값을 쉽게 곱할 수 있습니다.
>>> print "." * 10
..........
Python 2.6+용 Python 3 스타일 인쇄 기능을 사용합니다(같은 파일에 있는 기존의 키워드 인쇄 문장이 깨집니다).
# For Python 2 to use the print() function, removing the print keyword
from __future__ import print_function
for x in xrange(10):
print('.', end='')
2 키워드를 의 Python 2 print를 .printf.py
삭제:
# printf.py
from __future__ import print_function
def printf(str, *args):
print(str % args, end='')
그런 다음 파일에서 사용합니다.
from printf import printf
for x in xrange(10):
printf('.')
print 'done'
#..........done
printf 스타일을 표시하는 다른 예:
printf('hello %s', 'world')
printf('%i %f', 10, 3.14)
#hello world10 3.140000
같은 행으로 인쇄하는 방법:
import sys
for i in xrange(0,10):
sys.stdout.write(".")
sys.stdout.flush()
print
3.인 Python 3.x가 .end
할 수 .
print("HELLO", end="")
print("HELLO")
출력:
안녕하세요 안녕하세요.
그리고 또sep
분분: :
print("HELLO", "HELLO", "HELLO", sep="")
출력:
안녕하세요, 안녕하세요, 안녕하세요.
Python 2.x 에서 이것을 사용하고 싶은 경우는, 파일의 선두에 이것을 추가해 주세요.
from __future__ import print_function
functools.partial을 사용하여 printf라는 새로운 함수를 만듭니다.
>>> import functools
>>> printf = functools.partial(print, end="")
>>> printf("Hello world\n")
Hello world
이 방법은 함수를 기본 매개 변수로 래핑하는 간단한 방법입니다.
Python 3+에서는 이 함수입니다.전화할 때
print('Hello, World!')
Python이 번역하면
print('Hello, World!', end='\n')
수 요.end
원하는 대로 할 수 있어
print('Hello, World!', end='')
print('Hello, World!', end=' ')
2.에서는 Python 2.x 를 추가할 수 있습니다.,
print
새로운 행에 인쇄되지 않습니다.
Python 3:
print('.', end='')
Python 2.6+:
from __future__ import print_function # needs to be first statement in file
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 3.x에서 줄 바꿈 없이 인쇄
뒤에 도 붙이지 을 '\n'을 '\n'으로 하세요.end=''
, 다음과 같이 합니다.
>>> print('hello')
hello # Appending '\n' automatically
>>> print('world')
world # With previous '\n' world comes down
# The solution is:
>>> print('hello', end='');print(' world'); # End with anything like end='-' or end=" ", but not '\n'
hello world # It seems to be the correct output
루프의 다른 예:
for i in range(1,10):
print(i, end='.')
Python 2.x에서 줄 바꿈 없이 인쇄
에 를 붙이면 과 같이 됩니다.인쇄 후 합니다.\n
.
>>> print "hello",; print" world"
hello world
루프의 다른 예:
for i in range(1,10):
print "{} .".format(i),
이 링크에 접속할 수 있습니다.
다음 작업을 수행할 수 있습니다.
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')
나도 최근에 같은 문제가 있었어...
다음 방법으로 해결했습니다.
import sys, os
# Reopen standard output with "newline=None".
# in this mode,
# Input: accepts any newline character, outputs as '\n'
# Output: '\n' converts to os.linesep
sys.stdout = os.fdopen(sys.stdout.fileno(), "w", newline=None)
for i in range(1,10):
print(i)
이것은 Unix 와 Windows 모두에서 동작합니다만, Mac OS X 에서는 테스트하지 않았습니다.
다음과 같이 Python 3에서도 동일한 작업을 수행할 수 있습니다.
#!usr/bin/python
i = 0
while i<10 :
print('.', end='')
i = i+1
그것을 해 주세요.python filename.py
★★★★★★★★★★★★★★★★★」python3 filename.py
.
이 대답들 중 많은 것들이 약간 복잡해 보인다.Python 3.x에서는 다음과 같이 간단하게 실행할 수 있습니다.
print(<expr>, <expr>, ..., <expr>, end=" ")
은 end 입니다."\n"
, , 할 수도 있습니다end=""
이 printf
보통 그래요.
오른쪽의 for 루프로 인쇄하고 싶지만 매번 새로운 행으로 인쇄하고 싶지 않습니다.
예를 들어 다음과 같습니다.
for i in range (0,5):
print "hi"
OUTPUT:
hi
hi
hi
hi
hi
근데 이렇게 인쇄하고 싶죠?하이하이하이하이 맞죠???
"hi"를 쓴 후에 쉼표를 넣기만 하면 됩니다.
예:
for i in range (0,5):
print "hi",
출력:
hi hi hi hi hi
위의 답변이 모두 옳다는 것을 알 수 있습니다.단, 마지막에 항상 "end=" 파라미터를 쓰는 단축키를 만들고 싶었습니다.
다음과 같은 함수를 정의할 수 있습니다.
def Print(*args, sep='', end='', file=None, flush=False):
print(*args, sep=sep, end=end, file=file, flush=flush)
모든 매개 변수 수를 수용할 수 있습니다.파일, 플러시 등 다른 모든 파라미터와 같은 이름을 사용할 수 있습니다.또, 같은 이름의 파라미터도 사용할 수 있습니다.
lenooh는 내 질문을 만족시켰다.python suppress newline'을 검색하다가 이 기사를 발견했습니다.PuTTY용 Python 3.2를 개발하기 위해 Rasberry Pi에서 IDLE 3을 사용하고 있습니다.
PuTTY 명령줄에 진행 표시줄을 만들고 싶었습니다.나는 그 페이지가 스크롤되는 것을 원하지 않았다.프로그램이 멈추지도 않고, 즐거운 무한 루프에 보내지도 않았다는 사실에 놀라지 않도록 가로줄을 치고 싶었다.-'나는 괜찮지만, 이것은 텍스트의 진행 막대처럼 인터랙티브한 메시지다.
그print('Skimming for', search_string, '\b! .001', end='')
는 다음 화면 쓰기를 준비하여 메시지를 초기화합니다.이 화면 쓰기는 3개의 백스페이스를 "001"로 인쇄하고 마침표를 지우고 마침표를 확장합니다.
끝나고search_string
앵무새 사용자 입력,\b!
내 느낌표를 자릅니다.search_string
텍스트가 공백 위로 되돌아가는 경우print()
그렇지 않으면 구두점을 올바르게 배치하여 강제합니다.그 뒤에 공백과 시뮬레이션 중인 '진행률 막대'의 첫 번째 '점'이 나옵니다.
불필요하게, 메세지는 페이지 번호(선행 0이 붙은 3 의 길이 형식)로 프라이밍 되어, 진척이 처리되고 있는 것을 유저로부터 주의해 주세요.또, 이 페이지 번호에는 나중에 우측에 작성되는 기간의 카운트도 반영됩니다.
import sys
page=1
search_string=input('Search for?',)
print('Skimming for', search_string, '\b! .001', end='')
sys.stdout.flush() # the print function with an end='' won't print unless forced
while page:
# some stuff…
# search, scrub, and build bulk output list[], count items,
# set done flag True
page=page+1 #done flag set in 'some_stuff'
sys.stdout.write('\b\b\b.'+format(page, '03')) #<-- here's the progress bar meat
sys.stdout.flush()
if done: #( flag alternative to break, exit or quit)
print('\nSorting', item_count, 'items')
page=0 # exits the 'while page' loop
list.sort()
for item_count in range(0, items)
print(list[item_count])
#print footers here
if not (len(list)==items):
print('#error_handler')
프로그레스 바 고기는sys.stdout.write('\b\b\b.'+format(page, '03'))
줄. 먼저 왼쪽으로 지우려면 "\b\b\b"가 "out"인 세 개의 숫자 위에 커서를 백업하고 새 마침표를 드롭하여 진행 표시줄 길이에 추가합니다.그리고 지금까지 진행되었던 페이지의 세 자리 숫자를 씁니다.왜냐면sys.stdout.write()
는 풀 닫힐 .sys.stdout.flush()
즉시 쓰기를 강제합니다. sys.stdout.flush()
의 끝에 내장되어 있다.print()
는 ""로 됩니다.print(txt, end='' )
그 후, 코드는, 통상적인 시간을 소비하는 조작을 루프 해, 아무것도 인쇄하지 않고, 여기에 돌아와, 3 자리수를 소거해, 마침표를 추가하고, 3 자리수를 다시 기입합니다.
세하지 않습니다. 이 세 자릿수를 입니다. 이치노sys.stdout.write()
vs 대 print()
소거할 수 , 백스페이스 않음)를 수 시-b 백스페이스(물론 포맷된 페이지 수도 쓰지 않음)를 쉽게 잊을 수 있습니다.sys.stdout.write('.'); sys.stdout.flush()
pair.pair.pair.pair.
Rasberry Pi IDLE 3 Python 쉘은 백스페이스를 rub roubout으로 하지 않고 공간을 인쇄하여 분율 목록을 만듭니다.
end
" 또는 ="sep
=
>>> for i in range(10):
print('.', end = "")
출력:
.........
쓰세요.end=''
for i in range(5):
print('a',end='')
# aaaaa
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i)
위의 코드는 다음과 같은 출력을 제공합니다.
0
1
2
3
4
그러나 이러한 출력을 모두 일직선으로 인쇄하려면 end()라는 속성을 추가하여 인쇄하기만 하면 됩니다.
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i, end=" ")
출력:
0 1 2 3 4
공백뿐만 아니라 출력에 다른 엔딩을 추가할 수도 있습니다.예를들면,
for i in range(0, 5): #setting the value of (i) in the range 0 to 5
print(i, end=", ")
출력:
0, 1, 2, 3, 4,
주의:
Note: The [for variable in range(int_1, int_2):] always prints till the variable is 1
less than it's limit. (1 less than int_2)
또는 다음과 같은 기능이 있습니다.
def Print(s):
return sys.stdout.write(str(s))
그럼 지금:
for i in range(10): # Or `xrange` for the Python 2 version
Print(i)
출력:
0123456789
for i in xrange(0,10): print '\b.',
이 기능은 2.7.8과 2.5.2(각각 구입한 Canopy와 OS X 터미널) 모두에서 작동했습니다.모듈의 Import나 시간 이동은 불필요합니다.
Python3 :
print('Hello',end='')
예:
print('Hello',end=' ')
print('world')
★★★★★Hello world
이 메서드는 제공된 텍스트 사이에 창자를 추가합니다.
print('Hello','world',sep=',')
★★★★★★Hello,world
라이브러리는 Import 할 필요가 없습니다.삭제 문자만 사용합니다.
BS = u'\0008' # The Unicode point for the "delete" character
for i in range(10):print(BS + "."),
그러면 줄 바꿈과 공백(^_^)*이 제거됩니다.
언급URL : https://stackoverflow.com/questions/493386/how-to-print-without-a-newline-or-space
'programing' 카테고리의 다른 글
"사용" 문은 C#에서 VB로 어떻게 변환됩니까? (0) | 2023.05.14 |
---|---|
코코파드:GitHub에 연결하여 코코아 포드/사양 보고서를 업데이트하지 못했습니다. (0) | 2023.05.14 |
Windows 7에서 mysql 서버 재시작 (0) | 2023.02.03 |
JSON 데이터와 함께 POST를 통해 파일을 다운로드하는 JavaScript/jQuery (0) | 2023.02.03 |
안드로이드 개발을 위해 구글 구아바 라이브러리를 사용하는 것이 좋은 생각인가요? (0) | 2023.02.03 |