انجمن‌های فارسی اوبونتو

کمک و پشتیبانی => برنامه‌سازی => نویسنده: AAAAAAAAAAAAAAAAAAAA در 23 بهمن 1393، 12:57 ب‌ظ

عنوان: سوال درباره print در پایتون (حل شد)
ارسال شده توسط: AAAAAAAAAAAAAAAAAAAA در 23 بهمن 1393، 12:57 ب‌ظ
اقا چجوری میشه کل متن هایی که تو برنامه print شده رو پاک کرد بعد یه چیز دیگه print کرد ؟
مثل aptitude وقتی که شروع میشه
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: Geek در 23 بهمن 1393، 02:17 ب‌ظ
http://stackoverflow.com/questions/4810537/how-to-clear-the-screen-in-python
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: mehrzadmo در 23 بهمن 1393، 02:25 ب‌ظ
import system
.
.
..
os.system('cls' if os.name == 'nt' else 'clear')


عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: AAAAAAAAAAAAAAAAAAAA در 23 بهمن 1393، 04:09 ب‌ظ
@geek
ممنونم
@mehrzadmo
از شما هم ممنونم
ولی جوری که شما شرطی گذاشتید به نظر میاد پورتابل بودن مد نظر باشه و در این صورت به کار بردن else فکر نکنم خیلی صحیح باشه چون  python با وجود cpython  رو پلتفورم های غیر پازیکس زیادی اجرا میشه و clear روی اون ها کار نمی کنه
ـــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــــ
ولی از همه اینها که بگذریم اصلا منظور من که این نبود! clear میزنه کل ترمینال رو پاک می کنه ! من گفتم :
اقا چجوری میشه کل متن هایی که تو برنامه print شده رو پاک کرد بعد یه چیز دیگه print کرد ؟
مثل aptitude وقتی که شروع میشه

عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: mehrzadmo در 23 بهمن 1393، 08:18 ب‌ظ
اگر شما باهاش موردی داری می تونی به این شکل بنویسی :
if os.name="nt" :
   os.syste("cls")
else:
  os.system("clear")

حتی در صورتی که ممکنه برنامه شما روی پلت فروم دیگه ای ! اجرا بشه هم میتونید خیلی ساده اونو اضافه کنید .
یا حتی از دستور switch استفاده کنید .
برای سادگی کار هم میشه اینو گذاشت تو یه تابع و ...

-----
همچنان هم متوجه نشدم ! یعنی چی تو برنامه پرینت شده ؟ میشه یه مثال بزنی ؟
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: علی ۵۰۰ در 23 بهمن 1393، 10:32 ب‌ظ
سلام
فکر کنم منظورشون اینه که مثلاً جمله‌ای مثل « دو عدد صحیح را وارد کنید » درون خط فرمان چاپ بشه بعدش اگر بخواهیم این جمله را پاک کنیم باید چگونه این کار را انجام دهید. (نکته: فقط همین جمله از خط فرمان پاک بشه نه چیز دیگه)
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: AAAAAAAAAAAAAAAAAAAA در 08 اسفند 1393، 09:52 ق‌ظ
خیلی ببخشید که تاپیک زیر خاکی بالا میارم ولی من هنوز به جواب نرسیدم
اخرش چجوری میشه اینکارو کرد؟
@mehrzadmo
مثل aptitude وقتی اجرا میشه  :'(
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: دانیال بهزادی در 09 اسفند 1393، 12:50 ق‌ظ
apitude روی همون خط دوباره می‌نویسه، چیزی رو پاک نمی‌کنه
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: hare9821 در 09 اسفند 1393، 02:19 ق‌ظ
درود بر شما

اگر درست متوجه شده باشم سوال شما در این مورده که می خواهید به صفحه ترمینال دسترسی تصادفی داشته باشید. یعنی در هر جای صفحه که مایل بودید بتونید بنویسید. به عنوان مثال در بالای صفحه همیشه یک خط شامل تاریخ و ساعت و مثلا نام کاربر چاپ شده باشه و با نوشته شدن خط های جدید به بالا اسکرول نشه.
برای این موضوع می تونید از پکیج Curses استفاده کنید. توصیه می کنم قبل از درگیر شدن با موضوع یک سرچی هم بزنید جون پکیج های مشابه هم هستند که ممکنه به کار شما بیان.

https://docs.python.org/2/howto/curses.html
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: 藤沼 در 09 اسفند 1393، 03:06 ق‌ظ
جواب شما کارکتر کنترلی <CR> (http://en.wikipedia.org/wiki/Carriage_return) هست. لطفاً به مثال زیر توجه کنید:
در برنامهٔ پایین هر بار یک مقدار چاپ و بعد از چرخش دوبارهٔ حلقه پاک و بعد با مقدار جدید جایگزین می‌شه. تابع sleep در خّط آخر تنها به منظور کاهش سرعت جایگزین‌شدن مقادیر اومده.
from time import sleep
for digit in range(50):
    print("{0}\r".format(digit), end='')
    sleep(0.2)
عنوان: پاسخ : سوال درباره print در پایتون
ارسال شده توسط: جادی در 09 اسفند 1393، 10:51 ق‌ظ
من توی کد امروزم چیزی شبیه به این استفاده کردم:
    for row in rows:
        rowCounter += 1
        if not (rowCounter % 1000):
            sys.stdout.write("\rprocessing %s (%d/%d) : %d out of %d, %d%%" % (
                thisCustomerName, customerCounter, len(customers), rowCounter, rowTotal,
                rowCounter * 1.0 / rowTotal * 100))
        sys.stdout.flush()