ده ترفندن پایتونی (۲)

چسباندن دو دیکشنری به یکدیگرتو این پست ۵ ترفند کد نویسی با پایتون رو معرفی می کنم. پنج تایی اولی رو می تونید تو لینک زیر ببینیدقسمت اول مقالهعملگر ترنریدر حالت معمول اگر بخواهیم شرطی بنویسیم که فقط if و else داشته باشه می تونیم به صورت زیر عمل کنیم:condition = True if condition: message = 'Hi ...' else: message = 'Bye.' print(message) # output Hi ...پایتون روشی رو برای ما فراهم میکنه که با استفاده از اون می تونیم کد بالا رو در یک خط بنویسیم. در زبانهای دیگه همین عمل رو با استفاده از عملگری که به نام عملگر ترنری می شناسیم انجام میدن. عملگر ترنری در زبانهای خانواده سی با علامت ؟ نشون داده میشه. در پایتون عملگر مخصوصی برای اینکار نداریم اما می تونیم کاربر این عملگر رو به صورت زیر در پایتون شبیه سازی کنیم:condition = True message = 'Hi ...' if condition else 'Bye' print(x) # output # Hi ...جداسازی اعداد برای خوانایی بیشتر و نمایش بهتروقتی تعداد ارقام یک مقدار بیشتر می شود ممکن است خوانایی آن سخت شود. مانند مثال زیر که به خاطر وجود صفر زیاد خواندن در یک نگاه سخت است:num1 = 10000000 num2 = 1000000000 total = num1 + num2 print(total) # output # 1010000000در پایتون با استفاده از علامت زیر خط می تونیم ارقام اعداد رو برای افزایش خوانایی از هم جدا کنیم. همچنین با استفاده از فرمت بندی جدید که در پایتون ۳.۷ ارائه شده برای نمایش اعداد که هر سه رقم با کاما از هم جدا شده اند، می تونیم به صورت زیر عمل کنیم:num1 = 10_000_000 num2 = 1_000_000_000 total = num1 + num2 print(f'{total:,}') # Python 3.7 # output # 1,010,000,000مدیریت محتوادر حالت معمول برای خواندن یک فایل و جدا کردن کلمات و شمارش آنها می تونیم به صورت زیر عمل کنیم: #somefile.txt This is a simple text file.f = open('somefile.txt', 'r') content = f.read() f.close() words = content.split(' ') print(len(words)) #output 7همونطور که ملاحضه می کنید در کد بالا به صورت دستی خودمون بعد از اینکه کارمون با فایل تموم شد اون رو می بندیم. اما ممکنه این دستور رو فراموش کنیم به خاطر همین دستور with در پایتون ۳.۶ برای مدیریت منابع ارائه شد.کد بالا رو می تونیم به صورت زیر بنویسیم:with open('somefile.txt', 'r') as f: content = f.read() words = content.split(' ') print(len(words)) #output 7همچنین از منابعی مثل سوکت و یا دیتا بیس رو می تونیم با دستور with مدیریت کنیم.تابع enumerateبرای اینکه محتوای لیست رو به همراه شماره ایندکس اون نشون بدیم در حالت معمول می تونیم به صورت زیر عمل کنیم:cites = ['Ardabil', 'Tabriz', 'Tehran', 'Esfehan', 'Shiraz'] index = 0 for city in cites: print(index, city) index += 1 # output 0 Ardabil 1 Tabriz 2 Tehran 3 Esfehan 4 Shirazاما تابع enumerate کار ما رو راحتر می کنه:cites = ['Ardabil', 'Tabriz', 'Tehran', 'Esfehan', 'Shiraz'] for index, city in enumerate(cites): print(index, city) # output 0 Ardabil 1 Tabriz 2 Tehran 3 Esfehan 4 Shirazآن پک کردن مقادیر (Unpacking)اگر یک توپل یا لیستی شامل اسامی اشخاص به همراه مقادیر دیگری در لیست داشته باشیم و اگر بخواهیم آنها را جداگانه در متغییرهایی ذخیره کنیم می تونیم به صورت زیر عمل کنیم:names = ('Joe', 'John', 'Jean', '??', '!!') name1 = names[0] name2 = names[1] name3 = names[2] ch1 = names[3] ch2 = name[4]اما ویژگی unpack کردن در پایتون کار ما رو راحتر می کنید. در این کد اولین، دومین و سومین مقدار به ترتیب در name2, name1, و name3 قرار می گیره و مابقی مقادیر به متغییر _ تخصیص داده می شه. دقت کنید که نام متغییر می تونه کارکتر زیر خط باشه و در پایتون به طور معمولا در بین برنامه نویسها به عنوان متغییر موقت یا یکبار مصرف استفاده میشه. هر چند با متغییرهای دیگه هیچ فرقی نداره.names = ('Joe', 'John', 'Jean', '??', '!!') name1, name2, name3, *_ = ('Joe', 'Jean', 'John', '??', '!!')ترفند های بیشتر رو می تونید تو وب سایت زیر پیدا کنید ترفندهای بیشتر با پایتونکد گذاشتن تو ویرگول چقدر تو مُخِ!! و سینتکس رو هم هایلایت نمیکنه.