मै मैकॉक्स पर पायथन संस्करण 2.7.3 चला रहा हूं। संख्या 0
4
के माध्यम से एक \n
चरित्र प्रत्येक संख्या के साथ जोड़ दिया साथ:पाइथन प्रिंट स्टेटमेंट्स जिनमें 'end =' तर्क शामिल हैं, जबकि loops में अलग-अलग व्यवहार करते हैं?
from __future__ import print_function
import time
x = 0
while x < 5:
print(x)
x += 1
time.sleep(1)
अगर मैं इस स्क्रिप्ट को चलाने, मैं उत्पादन मैं उम्मीद पर ध्यान दें:
कोड के इस खंड पर विचार करें। फ़्यूथरमोर, प्रत्येक नंबर एक दूसरे विराम के बाद प्रदर्शित होता है।
0
1
2
3
4
अब इस कोड ब्लॉक पर विचार करें:
from __future__ import print_function
import time
x = 0
while x < 5:
print(x, end='')
x += 1
time.sleep(1)
उत्पादन मैं क्या उम्मीद है, \n
के बिना , लेकिन समय अप्रत्याशित है। एक-दूसरे विराम के बाद प्रत्येक अंक को प्रदर्शित करने के बजाय, प्रक्रिया चार सेकंड प्रतीक्षा करती है, फिर सभी पांच संख्याएं प्रदर्शित करती है।
print('string', end='')
से अलग-अलग व्यवहार क्यों करता है? क्या बिना किसी न्यूलाइन के पात्रों को प्रदर्शित करने का कोई तरीका है, एक बार में एक सेकंड? मैंने sys.stdout.write(str(x))
की कोशिश की, लेकिन यह print(end='')
जैसा ही व्यवहार करता है।
पायथन 3.5 'प्रिंट (एक्स, एंड =' ', फ्लश = ट्रू) पर भी काम करेगा – evan54