آموزش پایتون

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

  • از سکوی (framework) فلسک استفاده می‌کنید.در مورد جنگو هم البته داستان کمابیش همین هست. در مورد چری‌پای میتونید با همچین راهنمایی پیش برید یا از کارساز(سرور) وب خود چری‌پای به اسم چروت (cheroot) استفاده کنید.
  • از دبیان (یا توزیع‌هایی که بر پایه دبیان ساخته شدن مثل اوبونتو) و systemd استفاده می‌کنید.
  • میخواهید از انجین‌ایکس(nginx) به عنوان کارساز وب یا وب‌سرور استفاده کنید.
  • تنها از HTTP می‌خواهید استفاده کنید و برای سادگی کار فعلا HTTPS را کنار میگزاریم.
  • قرار هست وب اپلیکیشن شما در ریشه قرار بگیرد. یعنی از طریق آدرسی مثل https://example.com/ قابل دسترسی باشد نه مثلا https://example.com/somewhere

هیچ می‌دونستین که تو پایتون می‌تونین برای لیست ها و توپل ها عبارت هایی مثل [1,2,3]>[0,2,3] نوشت؟ یعنی می‌تونی خیلی راحت لیست ها رو باهم مقایسه کنی.

اخیرا در یکی از پروژه هایی که داشتم نیاز داشتم تا دو مقدار ورژن رو باهم مقایسه کنم تا مثلا اگر نسخه دوم از اولی جدید تر بود برنامه خودش رو آپدیت کنه، برای اینکار از یک امکان زبان پایتون یعنی مقایسه لیست ها در پایتون استفاده کردم. با من بهنام سیم‌جو همراه باش تا برات بگم ماجرا چیه!

امروز، دوشنبه ۲ اسفند ۱۴۰۰،‌ جلسه دوم گروه نرم‌افزار آزاد هرمزگان را با حضور نویسنده این مطلب داشتیم و به پیشنهاد یکی از اعضا، یک بازی جالب کردیم: «به صورت چرخشی در یک دایره هرکس میبایست نام یک ماژول پایتونی، توکار یا غیر تو‌کار،‌ بگوید. نام ماژول‌ها روی تابلو نوشته می‌شود و کسی حق تکرار اسم یک ماژول را ندارد. کسی که ظرف مدت زمان ۳۰ ثانیه نتوانست اسمی پیدا کند، از بازی خارج می‌شود و آخرین نفر باقی مانده در بازی برنده است». روشن است که در بازی حق جستجو کردن، نوشتن یا امثالهم را نداشتیم!

در پایتون ۳.۸ یک عملگر جدید برای انتصاب معرفی شده است.این عملگر جهت انتصاب در عبارات بزرگتر استفاده می‌شود. مثلا:

a = 10
if (b := a) == 10:
    ...

در تکه کد بالا هم‌زمان مقدار b برابر مقدار a می‌شود و هم مقایسه انجام می‌شود.

در نسخه ۳.۱۰ پایتون یک ویژگی جدید و جالب به زبان اضافه شده است: pattern matching. اگر با سوئیچ‌کیس(switch-case) در زبان‌های سی و سی‌پلاس‌پلاس کار کرده‌اید، پترن‌مچینگ یک نسخه پیشرفته‌تر از switch-case مي‌باشد. در پست «از سوییچ‌کیس تا پترن‌مچینگ» از روزبه شریف‌نسب می‌توانید در مورد این ساختار‌ها در زبان‌های مختلف و تاریخچه آن‌ها بخوانید.

help(int)

کلاس int در پایتون که بعضا آن را با تابع اشتباه می‌گیرند،برای تبدیل یک متغیر با نوعی جز نوع عدد صحیح به عدد صحیح کاربرد دارد. شما می‌توانید با استفاده از int در پایتون یک رشته(string) یا یک عدد اعشاری(float) را به عدد صحیح تبدیل کنید.

تقریبا در تمام زبان‌های برنامه‌نویسی از نسل سی، چیزی به اسم آرایه وجود دارد.در زبان سی یک آرایه را می‌توان یک فهرست از متغیر‌های هم‌نوع در نظر گرفت که خانه‌های مجاور حافظه به آن تخصیص داده شده هست. به عنوان یک نمونه، در زبان سی یک آرایه از ۳ عدد صحیح تعریف کرده‌ام:

int my_cool_array[3] = {1, 2, 3};

در پایتون چیزی به اسم آرایه نداریم. خود زبان به صورت ذاتی(منظورم builtin یا توکار هست) چند نوع مخزن دارد که این‌جا من در مورد چهار مورد از آن‌ها برایتان می‌نویسم.

بر خلاف آرایه‌ها در سی که تنها می‌توانند داده‌هایی از یک نوع را در خود نگه دارند، لیست،توپل(تاپل) دیکشنری و مجموعه در پایتون هر کدام می‌توانند هم‌زمان داده‌هایی با نوع‌هایی مختلف را درون خود داشته باشند.