গতিশীলভাবে একটি লাইনে মুদ্রণ করুন


306

আমি বেশ কয়েকটি বিবৃতি দিতে চাই যা স্টেটমেন্টের মধ্যে নতুন লাইন না দেখে স্ট্যান্ডার্ড আউটপুট দেয়।

বিশেষত, ধরুন আমার কাছে রয়েছে:

for item in range(1,100):
    print item

ফলাফল হলো:

1
2
3
4
.
.
.

পরিবর্তে এটি দেখতে কীভাবে পাবেন:

1 2 3 4 5 ...

আরও ভাল, শেষ সংখ্যাটির চেয়ে একক সংখ্যাটি কী মুদ্রণ করা সম্ভব , তাই একবারে কেবলমাত্র একটি নম্বর পর্দায় থাকে?


উত্তর:


482

এতে পরিবর্তন print itemকরুন:

  • print item, পাইথন ২.7 এ
  • print(item, end=" ") পাইথন 3 এ

আপনি যদি ডেটা প্রিন্ট করতে চান তবে গতিসম্পন্ন নিম্নলিখিত সিনট্যাক্সটি ব্যবহার করুন:

  • print(item, sep=' ', end='', flush=True) পাইথন 3 এ

থেকে http://docs.python.org/reference/simple_stmts.html#print :> একটি '\n'চরিত্র যদি না শেষে লেখা আছে, printবিবৃতি প্রান্ত একটি কমা দিয়ে। যদি বিবৃতিতে কেবল কীওয়ার্ড থাকে তবে এটি কেবলমাত্র পদক্ষেপ print
ewall

5
এফওয়াইআই: মুদ্রণ (আইটেম, শেষ = "") পাইথন 2.7 এ ফাইলের শীর্ষে ' ভবিষ্যতের আমদানি প্রিন্ট_ফংশন থেকে' যোগ করে ব্যবহার করা যেতে পারে ।
Hec

2
তবে দুর্ভাগ্যক্রমে flushকাজ করে না from __future__ import print_function
টিম্ম্ম্ম

যদি আমি কি করতে ছিল @ewall print(item, end=", ")তাহলে এছাড়াও যোগ করা ,শেষ আইটেমে কিভাবে করতে হবে এটি যোগ করা থেকে বিরত ,গত আইটেমে
MarcoBianchi

@ সমীরটেন্ডুলকার আপনি যদি মূল প্রশ্নের মতো কোনও লুপ ব্যবহার করেন তবে আপনি তালিকার শেষ আইটেমটি
অন্যভাবে

156

যাইহোক ...... কীভাবে প্রতিবার এটি রিফ্রেশ করা যায় তাই এটি এক জায়গায় মাইল ছাপায় কেবল সংখ্যা পরিবর্তন করুন।

সাধারণভাবে, পথ যে কাজ করতে সাথে আছেন টার্মিনাল নিয়ন্ত্রণ কোড । এটি একটি খুব সাধারণ কেস, যার জন্য আপনার কেবলমাত্র একটি বিশেষ চরিত্র প্রয়োজন: ইউ + 000 ডি ক্যারিএজ রিটার্ন, যা '\r'পাইথন (এবং অন্যান্য অনেক ভাষায়) তে লেখা আছে। আপনার কোডের উপর ভিত্তি করে এখানে একটি সম্পূর্ণ উদাহরণ:

from sys import stdout
from time import sleep
for i in range(1,20):
    stdout.write("\r%d" % i)
    stdout.flush()
    sleep(1)
stdout.write("\n") # move the cursor to the next line

এটি সম্পর্কে কিছু বিষয় যা অবাক হতে পারে:

  • \rযাতে স্ট্রিং এর শুরুতে যায়, যখন প্রোগ্রাম চলছে, কার্সার সর্বদা নম্বরের পরে হতে হবে। এটি কেবল প্রসাধনী নয়: আপনি যদি অন্য উপায়ে এটি করেন তবে কিছু টার্মিনাল এমুলেটর খুব বিভ্রান্ত হন।
  • আপনি যদি সর্বশেষ লাইনটি অন্তর্ভুক্ত না করেন, তবে প্রোগ্রামটি শেষ হওয়ার পরে, আপনার শেলটি তার প্রম্পটটি সংখ্যার শীর্ষে মুদ্রণ করবে।
  • stdout.flushকিছু সিস্টেমে প্রয়োজনীয় হয়, অথবা যদি আপনি কোন আউটপুট পাবেন না। অন্যান্য সিস্টেমে এটির প্রয়োজন নাও হতে পারে তবে এটি কোনও ক্ষতি করে না।

যদি আপনি দেখতে পান যে এটি কাজ করে না, তবে আপনার প্রথমে সন্দেহ হওয়া উচিত আপনার টার্মিনাল এমুলেটরটি বগি। Vttest প্রোগ্রাম আপনি এটি পরীক্ষা সাহায্য করতে পারেন।

আপনি stdout.writeএকটি printবিবৃতি দিয়ে প্রতিস্থাপন করতে পারে তবে আমি printফাইল অবজেক্টের সরাসরি ব্যবহারের সাথে মিশ্রিত করতে পছন্দ করি না ।


কি মীন ফ্লাশ () ফাংশন? এটি যে ফাংশন ছাড়া আমার জন্য এটি কাজ!
পোল

1
সাধারণত পাইথনের ফাইল অবজেক্টগুলি ডেটা সংগ্রহ করে যাতে তারা এটিকে বড় অংশগুলিতে অপারেটিং সিস্টেমে প্রেরণ করতে পারে। আপনি সাধারণত ডিস্কের ফাইলগুলিতে অ্যাক্সেস পেতে চান এটি তবে এটি এই ধরণের কাজে হস্তক্ষেপ করে। flush()একটি ফাইলকে এখনই অপারেটিং সিস্টেমে যা পাওয়া গেছে তা প্রেরণে বাধ্য করে। আমি অবাক হয়েছি এটি ছাড়া এটি আপনার পক্ষে কাজ করে - এটি যুক্ত না করা পর্যন্ত এটি আমার পক্ষে কাজ করে না।
zwol

1
@ user1995839 কার্সারটি লুকানোর জন্য নিয়ন্ত্রণ কোড রয়েছে, তবে আপনি যদি এটি করতে যাচ্ছেন তবে আমি আপনাকে দৃ strongly়ভাবে ncursesএটি ব্যবহার করার পরামর্শ দিচ্ছি ।
zwol

1
sys.stdout.flush()আমার Freebsdসাথে এটি সংযোজনীয় বলে মনে হচ্ছেPython 2.7
হাকিম

1
নোট করুন যে গাড়ীর রিটার্ন পাইথন আরপিএলে (কমপক্ষে আমার জন্য উবুন্টুতে) সঠিকভাবে কাজ করে না; এগুলির যে কোনও একটির কাজ করার জন্য আপনাকে কেবল একটি REPL কমান্ড চালানো নয়, একটি স্ক্রিপ্ট কার্যকর করতে হবে ।
মার্ক

50

print item,নতুন লাইনটি বাদ দিতে মুদ্রণ বিবৃতি তৈরি করতে ব্যবহার করুন ।

পাইথন 3 এ, এটি print(item, end=" ")

আপনি যদি প্রতিটি নম্বর একই জায়গায় প্রদর্শন করতে চান তবে উদাহরণস্বরূপ (পাইথন ২.7) ব্যবহার করুন:

to = 20
digits = len(str(to - 1))
delete = "\b" * (digits + 1)
for i in range(to):
    print "{0}{1:{2}}".format(delete, i, digits),

পাইথন 3 এ এটি কিছুটা জটিল; এখানে আপনার ফ্লাশ করা দরকার sys.stdoutবা লুপ শেষ হওয়ার আগ পর্যন্ত এটি কোনও কিছুই মুদ্রণ করবে না:

import sys
to = 20
digits = len(str(to - 1))
delete = "\b" * (digits)
for i in range(to):
   print("{0}{1:{2}}".format(delete, i, digits), end="")
   sys.stdout.flush()

আসলে, আমার কাছে মনে হচ্ছে আপনার সমাধানটি প্রতিবার একই সংখ্যক ব্যাকস্পেসগুলি মুদ্রণ করবে। সুতরাং, যদি 20 হয়, এটি অঙ্কের প্রিন্ট করার সময় একটি অতিরিক্ত ব্যাকস্পেস মুদ্রণ করবে 1..9। আপনি কি লুপের ভিতরে অঙ্কগুলি গণনা করবেন না এবং এটির i এর মানটি বেজ করবেন না?
অ্যাডাম ক্রসল্যান্ড

এটি সংখ্যাটিকে ন্যায়সঙ্গত করে তোলে এবং সর্বদা সবকিছু মুছে দেয়। এটি করা দ্রুত বা প্রতিটি পুনরাবৃত্তিতে এখনই কতগুলি অঙ্ক মুছতে হবে তা গণনা করার জন্য আমি পরীক্ষা করিনি।
টিম পিটজ্যাকার

অথবা, যখন অঙ্কগুলির সংখ্যা পরিবর্তন হয় তখন অ্যাকাউন্টের জন্য i এর পূর্ববর্তী মানটির ভিত্তিতে এটি বেস করুন।
অ্যাডাম ক্রসল্যান্ড

হ্যাঁ, হ্যাঁ, আমি সঠিক-ন্যায়বিচারকে ওভার-সন্ধান করেছি। ভাল সমাধান।
অ্যাডাম ক্রসল্যান্ড

মোটামুটি জটিল মনে হচ্ছে। এখন থেকে এক বছর আমার কোডটি যদি দেখতে হয় তবে আমি সম্ভবত সেখানে কী করেছি তা বুঝতে পারি না। (২০০ Just সালে আমি একটি প্রোগ্রাম লিখেছিলাম - আমি পাইথনে এটি লিখেছি বলে আমি খুব আনন্দিত))
টিম পিটজেকার

16

অন্যান্য উদাহরণগুলির মতো,
আমি একই পদ্ধতির ব্যবহার করি তবে শেষ আউটপুট দৈর্ঘ্য ইত্যাদি গণনা করে সময় ব্যয় না করে,

আমি কেবল এএনএসআই কোডের পলায়নগুলি লাইনের শুরুতে ফিরে যেতে ব্যবহার করি এবং তারপরে আমার বর্তমান স্থিতির আউটপুট প্রিন্ট করার আগে সেই সম্পূর্ণ লাইনটি সাফ করি।

import sys

class Printer():
    """Print things to stdout on one line dynamically"""
    def __init__(self,data):
        sys.stdout.write("\r\x1b[K"+data.__str__())
        sys.stdout.flush()

আপনার পুনরাবৃত্তির লুপটি ব্যবহার করতে আপনি কেবল এমন কিছু কল করবেন:

x = 1
for f in fileList:
    ProcessFile(f)
    output = "File number %d completed." % x
    Printer(output)
    x += 1   

আরও এখানে দেখুন


14

প্রতিটি পুনরাবৃত্তিতে একটি নতুন লাইনের পরিবর্তে একটি স্থান মুদ্রণ করতে আপনি আপনার মুদ্রণ বিবৃতিতে একটি ট্রেলিং কমা যোগ করতে পারেন:

print item,

বিকল্প হিসাবে, আপনি যদি পাইথন ২.6 বা তার পরে ব্যবহার করছেন তবে আপনি নতুন মুদ্রণ ফাংশনটি ব্যবহার করতে পারেন, যা আপনাকে নির্দিষ্ট করে দেওয়ার অনুমতি দেয় যে প্রতিটি আইটেম মুদ্রিত হওয়ার শেষে একটি স্থানও আসা উচিত নয় (বা আপনাকে শেষের দিকে নির্দিষ্ট করার অনুমতি দেয়) চান):

from __future__ import print_function
...
print(item, end="")

অবশেষে, সিস মডিউল থেকে এটি আমদানি করে আপনি সরাসরি স্ট্যান্ডার্ড আউটপুটে লিখতে পারেন, যা কোনও ফাইলের মতো বস্তুটি দেয়:

from sys import stdout
...
stdout.write( str(item) )

13

পরিবর্তন

print item

প্রতি

print "\033[K", item, "\r",
sys.stdout.flush()
  • "\ 033 [কে" লাইনের শেষ পর্যন্ত সাফ করে
  • \ r, লাইনের শুরুতে ফিরে আসে
  • ফ্লাশ বিবৃতি নিশ্চিত করে তোলে এটি অবিলম্বে প্রদর্শিত হবে যাতে আপনি আসল-সময় আউটপুট পান।

এটি পাইথন ২.7 এর জন্য দুর্দান্ত। আপনি \033[Kকোড সম্পর্কে কোথা থেকে শিখেছিলেন সে সম্পর্কে একটি রেফারেন্স সরবরাহ করতে পারেন ? আমি তাদের সম্পর্কে আরও জানতে চাই।
ক্লিক

printইতিমধ্যে অভ্যন্তরীণভাবে flushes। এটি কল করার দরকার নেই। আপনাকে স্ক্রিনে ফ্লাশ করতে হবে এমন জায়গা printথেকে আলাদাsys.stdout.write()
গ্যাব্রিয়েল ফেয়ার

5

আমি মনে করি একটি সহজ যোগদানের কাজ করা উচিত:

nl = []
for x in range(1,10):nl.append(str(x))
print ' '.join(nl)

4
একজন ধী ভাল পড়তে হবে এবং সম্ভবত দ্রুততর হবে: print ' '.join(str(x) for x in range(1, 10))
মিউ মাইন্ড

আমি একটি তালিকা বোধগম্যতা ব্যবহার দ্বিতীয়। এই ক্ষেত্রে এটি পড়া সহজ করে তোলে।
অস্টিন হেনলি

5

আর একটি উত্তর যা আমি ২.7 ব্যবহার করছি যেখানে আমি কেবল একটি "মুদ্রণ করছি"। প্রতিবার একটি লুপ চলে (ব্যবহারকারীকে বোঝাতে যে জিনিসগুলি এখনও চলছে) এটি হ'ল:

print "\b.",

এটি প্রিন্ট করে " প্রত্যেকের মধ্যে ফাঁকা ছাড়াই অক্ষর। এটি কিছুটা ভাল দেখায় এবং বেশ ভালভাবে কাজ করে। এই বিস্ময়করদের জন্য। বি একটি ব্যাকস্পেস চরিত্র।


4

এত জটিল উত্তর। যদি অজগর 3 থাকে \rতবে মুদ্রণের শুরুতে কেবল end='', flush=Trueএটিকে যুক্ত করুন এবং এতে যুক্ত করুন:

import time

for i in range(10):
    print(f'\r{i} foo bar', end='', flush=True)
    time.sleep(0.5)

এটি লিখতে হবে 0 foo bar, তারপর 1 foo barইত্যাদি।


আপনাকে ধন্যবাদ, আমার প্রয়োজন মতো print('\r' + filename + " ", end = '', flush=True)
এটিই

3

নম্বরগুলি একে অপরকে ওভাররাইট করতে, আপনি এই জাতীয় কিছু করতে পারেন:

for i in range(1,100):
    print "\r",i,

এটি প্রথম কলামে সংখ্যাটি মুদ্রিত হওয়া অবধি কাজ করা উচিত।

সম্পাদনা: এখানে এমন একটি সংস্করণ রয়েছে যা এটি প্রথম কলামে না ছাপা হলেও এটি কাজ করবে।

prev_digits = -1
for i in range(0,1000):
    print("%s%d" % ("\b"*(prev_digits + 1), i)),
    prev_digits = len(str(i))

আমার নোট করা উচিত যে এই কোডটি পরীক্ষা করা হয়েছিল এবং উইন্ডোজ কনসোলে উইন্ডোজে পাইথন 2.5 তে ঠিক কাজ করে। অন্য কারও মতে, ফলাফল দেখতে স্টাডাউট ফ্লাশিংয়ের প্রয়োজন হতে পারে। YMMV।


3

"যাইহোক ...... প্রতিবার কীভাবে এটি রিফ্রেশ করবেন যাতে এটি মাইল এক জায়গায় প্রিন্ট করে কেবল সংখ্যা পরিবর্তন করে।"

এটি আসলেই জটিল বিষয়। জ্যাকটি কী পরামর্শ দিয়েছে (আউটপুট কনসোল নিয়ন্ত্রণ কোডগুলি) এটি অর্জনের এক উপায়।

আপনি (এন) অভিশাপ ব্যবহার করতে পারেন, তবে এটি মূলত * নিক্সে কাজ করে।

উইন্ডোজে (এবং এখানে আকর্ষণীয় অংশটি রয়েছে) যা খুব কমই উল্লেখ করা হয়েছে (কেন আমি বুঝতে পারি না) আপনি উইনপিআইতে পাইথন বাইন্ডিং ব্যবহার করতে পারেন ( http://sourceforge.net/projects/pywin32/ এছাড়াও ডিফল্টরূপে অ্যাক্টিভ পাইথন সহ) - এটি না যে হার্ড এবং ভাল কাজ করে। এখানে একটি ছোট উদাহরণ:

import win32console, time

output_handle = win32console.GetStdHandle(  win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]

for i in "\\|/-\\|/-":
    output_handle.WriteConsoleOutputCharacter( i, pos )
    time.sleep( 1 )

বা, আপনি যদি ব্যবহার করতে চান print(বিবৃতি বা ফাংশন, কোনও পার্থক্য নেই):

import win32console, time

output_handle = win32console.GetStdHandle(  win32console.STD_OUTPUT_HANDLE )
info = output_handle.GetConsoleScreenBufferInfo()
pos = info["CursorPosition"]

for i in "\\|/-\\|/-":
    print i
    output_handle.SetConsoleCursorPosition( pos )
    time.sleep( 1 )

win32console মডিউল আপনাকে উইন্ডোজ কনসোল দিয়ে আরও অনেক আকর্ষণীয় কাজ করতে সক্ষম করে ... আমি উইনাপির কোনও বড় অনুরাগী নই, তবে সম্প্রতি আমি বুঝতে পেরেছিলাম যে এর প্রতি আমার প্রতিরোধের কমপক্ষে অর্ধেকটি সিটিতে উইনিপিআই কোড লেখার কারণে হয়েছিল - পাইথোনিক বাইন্ডিংগুলি ব্যবহার করা অনেক সহজ।

অন্য সমস্ত উত্তর অবশ্যই দুর্দান্ত এবং পাইথনিক, তবে ... তবে যদি আমি মুদ্রণ করতে চাইতাম আগের লাইনে ? বা একাধিক পাঠ্য লিখুন, এটি পরিষ্কার করার চেয়ে আবার একই লাইনগুলি লিখুন? আমার সমাধান এটি সম্ভব করে তোলে।



1
In [9]: print?
Type:           builtin_function_or_method
Base Class:     <type 'builtin_function_or_method'>
String Form:    <built-in function print>
Namespace:      Python builtin
Docstring:
    print(value, ..., sep=' ', end='\n', file=sys.stdout)

Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep:  string inserted between values, default a space.
end:  string appended after the last value, default a newline.

0

আপনি যদি কেবল সংখ্যাগুলি মুদ্রণ করতে চান তবে আপনি লুপটি এড়াতে পারবেন।

# python 3
import time

startnumber = 1
endnumber = 100

# solution A without a for loop
start_time = time.clock()
m = map(str, range(startnumber, endnumber + 1))
print(' '.join(m))
end_time = time.clock()
timetaken = (end_time - start_time) * 1000
print('took {0}ms\n'.format(timetaken))

# solution B: with a for loop
start_time = time.clock()
for i in range(startnumber, endnumber + 1):
    print(i, end=' ')
end_time = time.clock()
timetaken = (end_time - start_time) * 1000
print('\ntook {0}ms\n'.format(timetaken))

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 21.1986929975ms নিয়েছে

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 46 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 491.466823551 মিমি নিয়েছে


পরিবর্তে তালিকা বোঝার সাথে আরও দ্রুত হওয়া উচিত map
সিজিআই

হ্যাঁ ভাল উদাহরণ। আমি এটি পছন্দ করি তবে আমার পার্সিংয়ের ফলাফলটি দেখাতে হবে। প্রথমে আমি আইটেম ডাটাবেসগুলি গণনা করি তার চেয়ে বেশি কী মুদ্রণ করে।
পোল

0

এটি সম্পাদন করার সর্বোত্তম উপায় হ'ল \rচরিত্রটি ব্যবহার করা

কেবল নীচের কোডটি চেষ্টা করুন:

import time
for n in range(500):
  print(n, end='\r')
  time.sleep(0.01)
print()  # start new line so most recently printed number stays

0

পাইথন 3 এ আপনি এটি এইভাবে করতে পারেন:

for item in range(1,10):
    print(item, end =" ")

আউটপুট:

1 2 3 4 5 6 7 8 9 

টিপল: আপনি একই জিনিস টিপল দিয়ে করতে পারেন:

tup = (1,2,3,4,5)

for n in tup:
    print(n, end = " - ")

আউটপুট:

1 - 2 - 3 - 4 - 5 - 

আরেকটি উদাহরণ:

list_of_tuples = [(1,2),('A','B'), (3,4), ('Cat', 'Dog')]
for item in list_of_tuples:
    print(item)

আউটপুট:

(1, 2)
('A', 'B')
(3, 4)
('Cat', 'Dog')

আপনি নিজের টিপলটিকেও এভাবে আনপ্যাক করতে পারেন:

list_of_tuples = [(1,2),('A','B'), (3,4), ('Cat', 'Dog')]

# Tuple unpacking so that you can deal with elements inside of the tuple individually
for (item1, item2) in list_of_tuples:
    print(item1, item2)   

আউটপুট:

1 2
A B
3 4
Cat Dog

আরেকটি প্রকরণ:

list_of_tuples = [(1,2),('A','B'), (3,4), ('Cat', 'Dog')]
for (item1, item2) in list_of_tuples:
    print(item1)
    print(item2)
    print('\n')

আউটপুট:

1
2


A
B


3
4


Cat
Dog

আমি এখানে সমস্ত উদাহরণ চেষ্টা করেছি এবং অজগর 3.8 এ কোনওটিই কাজ করে না দয়া করে আরও উত্তর পান।
KOTZ

আমি এটি অজগর 3.7 দিয়ে পরীক্ষা করেছি
স্ট্রাইকার

আমি যা বলতে চাইছি তা হ'ল এই বিকল্পগুলির কোনওটিই শেষ সংখ্যাটি মুছে ফেলার মতো নয় যেমনটি প্রশ্নের শেষে পরামর্শ দেওয়া হয়েছিল।
কোটজেড

0

মুদ্রণ বিবৃতিটির শেষে একটি কমা নতুন লাইনটি বাদ দেয়।

for i in xrange(1,100):
  print i,

কিন্তু এটি ওভাররাইট করে না।


0

আমি যেমন সংগ্রাম করেছিলাম তাদের পক্ষে, আমি নিম্নলিখিতগুলি নিয়ে এসেছি যা অজগর 3.7.4 এবং 3.5.3 উভয় ক্ষেত্রেই কাজ করে বলে মনে হচ্ছে।

আমি 100 থেকে 1,000,000 পর্যন্ত রেঞ্জটি প্রসারিত করেছি কারণ এটি খুব দ্রুত চলে এবং আপনি আউটপুটটি দেখতে পাবেন না। এটি কারণ সেটিং এর এক পার্শ্ব প্রতিক্রিয়া end='\r'হ'ল চূড়ান্ত লুপ পুনরাবৃত্তি সমস্ত আউটপুট পরিষ্কার করে। এটি কাজ করে তা প্রমাণ করার জন্য একটি দীর্ঘ সংখ্যার প্রয়োজন হয়েছিল। এই ফলাফলটি সব ক্ষেত্রেই কাম্য নাও হতে পারে তবে তা আমার পক্ষে ভাল ছিল, এবং ওপি কোনও উপায় বা অন্য কোনও নির্দিষ্ট করে নি। আপনি সম্ভবত একটি if স্টেটমেন্টের সাহায্যে এটিকে অবরুদ্ধ করতে পারেন যা অ্যারের দৈর্ঘ্যটি পুনরাবৃত্তি হওয়ার বিষয়টি মূল্যায়ন করে ইত্যাদি ইত্যাদি। এটি আমার ক্ষেত্রে এটি কাজ করার মূল চাবিকাঠিটি বন্ধনীর "{}"সাথে দম্পতি করা ছিল.format() । অন্যথায়, এটি কাজ করে না।

নীচে যেমনটি কাজ করা উচিত:

#!/usr/bin/env python3

for item in range(1,1000000):
    print("{}".format(item), end='\r', flush=True)

0
for item in range(1,100):
    if item==99:
        print(item,end='')
    else:
        print (item,end=',')

আউটপুট: 1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,15,16,17,18,19,20,21,22,23,24, 25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48,49, 50,51,52,53,54,55,56,57,58,59,60,61,62,63,64,65,66,67,68,69,70,71,72,73,74, 75,76,77,78,79,80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98,99


আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.