پایتون ترفند

بسم الله الرحمن الرحیم

پایتون ترفند

بسم الله الرحمن الرحیم

سلام خوش آمدید

بسم الله الرحمن الرحیم

سلام دوستان!

امروز میخوایم بگیم چیکار باید کرد تا برنامه پایتون بعد از اجرا، بسته نشه.

من چند ترفند رو می نویسم، اما شما میتونید اونا رو با هم ترکیب کنید و حتی روش های جدید بیابید!

فقط باید کمی دقت کنید و بگردید!

فرض کنیم که کد ساده زیر را نوشته ایم (چون این فقط یک مثال برای جلوگیری از بسته شدن کد است،کد پیچیده ای را نمی نویسیم) :

def add(a,b):
    return a+b

print(add(2,3))
#5

 

چنین کد ساده ای برای مثال ما کافیه. یه تابعه که دو تا عددو میگیره و جمعشون رو به ما میده. بعدم چاپش کردیم.

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

چندین راه حل برای این کار وجود داره. من چندتاش که پرکاربرد ترن رو می نویسم. می توانید هر کدام را در آخر کدتون اضافه کرده و امتحانش بکنید.

 

روش اول:

input()

استفاده از تابع داخلی input ، ساده ترین (و احتمالا پرکاربرد ترین) روشه.

این تابع برای وقتی که خواستیم خودمان کد را اجرا کنیم خوب است. اما برای دیگران؟ فکر نکنم.

چرا؟ فرض کنید ما اونو آخر کد گذاشتیم.

از اونجایی که کلید enter از پر کاربرد ترین دکمه های روی صفحه کلیده، پس احتمال زدنش توسط کاربر

هست، حتی ممکنه کاربر که چیزی نمیدونه به قصد اونو فشار بده( البته میشه تو تابع input توضیحی بدیم و کاربر رو آگاه کنیم)

 

روش دوم:

while True:
    pass

این روش هم مرسوم است، اما باعث داغ کردن سیستم میشه. همچنین اگر بخواین یه حلقه بینهایت

داشته باشین فشار مضاعف به رایانه شما میاره. پس آنچنان روش خوبی نیست.

چرا؟ چون یه حلقه بینهایت خودش به تنهایی فشار میاره، اگه کاری هم انجام نشه و از pass استفاده کنیم که بدتر...

 

روش سوم:

import time
time.sleep(1000000000000000000)

استفاده از تابع sleep از کتابخانه time هم ایده خوبیه، اما ما باید در نهایت یک زمان طولانی رو بدیم، پس بالاخره تمام خواهد شد اما نه حالا حالا ها. این روش گزینه پیشنهادی برخی از افرادی است که منتقد روش دوم هستند. اما به نظرم اینم روش خوبی نیست چون بالاخره تموم میشه.

 

روش چهارم:

import time
while True:
    time.sleep(1)

این روش ترکیبی از روش دوم و سوم هست. این روش هم مانند روش سوم به وارد کردن کتابخانه نیاز داره.

هرچند که کتابخانه time از کتابخانه های استاندارد پایتونه و نیاز به نصب نداره.

این روش هم به سیستم فشار می آورد اما نه مثل روش دوم. و توسط برخی استفاده میشه.

ولی بازم به نظرم خوب نمیاد.

 

 

روش پنجم:

while True:
    input()

این روش ترکیبی از روش اول و دوم است. ممکنه بهینه باشه.و جایگزین خوبی برای روش اوله.

فشار آنچنانی به سیستم نمیاره. اما بازم خوب نیست. چرا؟

چون تموم نمیشه! ما به روشی نیاز داریم که کنترلش کامل دست خودمون باشه. اگه بخوایم یه کد بنویسیم که مخفیانه رو سیستم اجرا بشه همین روش خوبه. اما اگه بخوایم یه برنامه رو امتحان کنیم نه. بهتره یه فکر دیگه کنیم.

 

روش ششم:

while 1:
    string = input("write exit,quit,end or \ to exit.").strip()
    if string in [r"\","end","quit","exit"]:
        break

اینجا چیکار کردیم؟ یه حلقه بینهایت نوشتیم و شرطش رو ۱ قرار دادیم(باعث میشه حلقه با سرعت بیشتری اجرا بشه، سعی کنین جای while True از while 1 استفاده کنید، البته جای ۱ هر عدد بزرگتر از صفر میتونید بذارید و در کل چیزی که مساوی True باشه).

بعد گفتیم یه ورودی از کاربر بگیر و در متغیر string ذخیره کن. استفاده از متد strip باعث میشه فاصله های قبل و بعد از ورودی حذف بشه.

حالا اومدم گفتم اگه ورودی تو چیزایی که خودمون تو لیست نوشتیم باشه، از حلقه خارج شو و برنامه رو ببند، در غیر این صورت از اول شروع کن.( میشد جای لیست از رشته هم استفاده کرد.)

اون r که قبل از "\" نوشتم چیه؟ در حالت عادی پایتون \ ها رو به عنوان آغازگر حروف ویژه در رشته در نظر میگیره(مثل \n و \t و ...(البته اینجا فکر کنم برعکس نمایش داده بشن)) 

حالا اگه قبل رشته r بذاریم، پایتون دیگه حروف ویژه رو در نظر نمیگیره! به همین سادگی!

جمع بندی:

من شش روش رو گفتم. اما این به معنی این نیست که روش دیگه ای وجود نداره. خودتون دنبالش بگردید و اگه پیدا کردید خوشحال میشم تو دیدگاه ها بنویسید.

 

فعلا خدانگهدار!!!

نظرات (۰)

هیچ نظری هنوز ثبت نشده است

ارسال نظر

ارسال نظر آزاد است، اما اگر قبلا در بیان ثبت نام کرده اید می توانید ابتدا وارد شوید.
شما میتوانید از این تگهای html استفاده کنید:
<b> یا <strong>، <em> یا <i>، <u>، <strike> یا <s>، <sup>، <sub>، <blockquote>، <code>، <pre>، <hr>، <br>، <p>، <a href="" title="">، <span style="">، <div align="">
تجدید کد امنیتی

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

آخرین نظرات