آموزش پایتون
2 subscribers
3 photos
35 links
Download Telegram
استفاده از بسته

پس از نصب بسته، آماده استفاده از آن هستید. برای استفاده از بسته "camelcase" باید آن را در پروژه خود وارد کنید:

مثال:
وارد کردن و استفاده از بسته "camelcase":

import camelcase

c = camelcase.CamelCase()

txt = "lorem ipsum dolor sit amet"

print(c.hump(txt))

➡️
Lorem Ipsum Dolor Sit Amet


برای پیدا کردن بسته‌های بیشتر می‌توانید به آدرس https://pypi.org/ مراجعه کنید.


حذف بسته

برای حذف بسته از دستور uninstall استفاده کنید:

مثال:

حذف بسته به نام "camelcase":

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip uninstall camelcase

پی اچ پی برای تایید حذف بسته سوال می‌کند.



لیست بسته‌های نصب شده

برای لیست گرفتن از بسته‌های نصب شده در سیستم، از دستور pip list استفاده می‌کنیم.

مثال:

C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip list

این دستور فهرستی از تمام بسته‌های نصب شده در سیستم را به همراه نسخه‌ آن‌ها نمایش می‌دهد.

Package Version
-----------------------
camelcase 0.2
mysql-connector 2.1.6
pip 18.1
pymongo 3.6.1
setuptools 39.0.1

با استفاده از این دستور می‌توان لیست کامل بسته‌های نصب شده را مشاهده کرد.
در پایتون، بلاک try-except برای مدیریت استثناء‌ها (خطاها) استفاده می‌شود.

▫️ بلاک try: این بلاک به شما امکان می‌دهد یک بلاک کد را برای بررسی خطاها تست کنید. در این بلاک، قسمتی از کد که ممکن است خطا ایجاد کند قرار می‌گیرد.

▫️ بلاک except: این بلاک به شما امکان می‌دهد خطاها را مدیریت کنید. وقتی یک خطا در بلاک try رخ می‌دهد، کنترل به بلاک except منتقل می‌شود و کد موجود در این بلاک اجرا می‌شود.

▫️ بلاک else: این بلاک به شما امکان می‌دهد کدی را اجرا کنید که در صورت عدم وجود خطا در بلاک try قرار دارد. به عبارت دیگر، اگر هیچ خطایی در بلاک try رخ ندهد، بلاک else اجرا می‌شود.

▫️ بلاک finally: این بلاک به شما امکان می‌دهد کدی را اجرا کنید که باید در هر صورت، بعد از اجرای بلاک try و except، اجرا شود. بدون توجه به وجود یا عدم وجود خطا، بلاک finally همیشه اجرا می‌شود.

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

ما می‌توانیم استثناها را با استفاده از دستور try-except هندل کنیم:


try:
print(x)
except:
print("An exception occurred")


خروجی:


An exception occurred


در این مثال، دستور print(x) در بلوک try یک استثنا ایجاد می‌کند چون x تعریف نشده است. در نتیجه بلوک except اجرا می‌شود و پیام "An exception occurred" چاپ می‌کند.

با استفاده از دستور try-except ما می‌توانیم استثناها را بگیریم و رفتار مناسبی برای هندل کردن آنها تعریف کنیم تا برنامه متوقف نشود.
بدون بلوک try-except، دستور print(x) مستقیماً یک خطا ایجاد می‌کند چون x تعریف نشده است:


print(x)


خروجی:


Traceback (most recent call last):
File "<stdin>", line 1, in <module>
NameError: name 'x' is not defined


همانطور که مشاهده می‌کنید، یک خطای NameError رخ می‌دهد چون متغیر x تعریف نشده است. این خطا باعث می‌شود برنامه متوقف شود.

اما اگر همین دستور را در بلوک try قرار دهیم، بلوک except اجرا می‌شود و پیام خطا را چاپ می‌کند. بنابراین ادامه برنامه اجرا می‌شود:


try:
print(x)
except:
print("An exception occurred")


خروجی:


An exception occurred


با استفاده از try-except می‌توانیم خطاها را بگیریم و از خراب شدن برنامه جلوگیری کنیم.
می‌توانیم بلاک‌های except متعددی تعریف کنیم تا برای انواع خطاها، کدهای متفاوتی اجرا شود.

به عنوان مثال:


try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")


در این مثال دو بلاک except تعریف شده است:

- اگر خطای NameError رخ دهد، پیام "Variable x is not defined" چاپ می‌شود

- برای سایر خطاها، پیام "Something else went wrong" چاپ می‌شود

خروجی:


Variable x is not defined


در اینجا چون خطای NameError رخ داده، بلاک اول except اجرا می‌شود.

به این ترتیب می‌توانیم برای انواع خطاها، کدهای جداگانه‌ای اجرا کنیم تا رفتار برنامه مناسب‌تر باشد.
می‌توانیم از کلمه‌ی else برای تعریف بلوکی از کد استفاده کنیم که اگر در بلوک try خطایی رخ نداد، اجرا شود


try:
print("Hello")
except:
print("Something went wrong")
else:
print("Nothing went wrong")


خروجی:


Hello
Nothing went wrong


همچنین می‌توانیم از بلوک finally استفاده کنیم که صرف‌نظر از بروز خطا در بلوک try، همیشه اجرا می‌شود


try:
print(x)
except:
print("Something went wrong")
finally:
print("The 'try except' is finished")


خروجی:


Something went wrong
The 'try except' is finished


استفاده از finally مفید است برای بستن منابع و پاکسازی بعد از اتمام بلوک try-except.

مثلا در این مثال، فایل بعد از نوشتن یا خطا بسته می‌شود:


try:
f = open("demofile.txt")
try:
f.write("Lorum Ipsum")
except:
print("Something went wrong when writing to the file")
finally:
f.close()
except:
print("Something went wrong when opening the file")


با استفاده از else و finally می‌توانیم کنترل بیشتری روی برنامه در بلوک‌های try-except داشته باشیم.
می‌توانیم با استفاده از کلمه‌ی raise یک استثنا ایجاد کنیم


x = -1

if x < 0:
raise Exception("Sorry, no numbers below zero")


خروجی:


Exception: Sorry, no numbers below zero


کلمه‌ی raise باعث می‌شود یک استثنا ایجاد شود و برنامه متوقف شود.

همچنین می‌توانیم نوع خطا و متن آن را مشخص کنیم:


x = "hello"

if not type(x) is int:
raise TypeError("Only integers are allowed")



خروجی:


TypeError: Only integers are allowed


با استفاده از raise می‌توانیم در شرایط خاصی استثناهایی را ایجاد کنیم تا رفتار برنامه کنترل شود. این کار باعث می‌شود کد پاک‌تر و خطاها بهتر هندل شوند.
می‌توانیم از کاربر ورودی دریافت کنیم.

روش دریافت ورودی در پایتون 3.6 با 2.7 متفاوت است.

پایتون 3.6 از متد input() استفاده می‌کند.

پایتون 2.7 از متد raw_input() استفاده می‌کند.

مثال زیر ابتدا نام کاربری را درخواست می‌کند، سپس نام کاربری وارد شده را چاپ می‌کند:

پایتون 3.6
username = input("Enter username:")
print("Username is: " + username)

خروجی
Enter username:Alice
Username is: Alice

پایتون 2.7
username = raw_input("Enter username:")
print("Username is: " + username)

خروجی
Enter username:Bob
Username is: Bob

پایتون زمانی که به تابع input() می‌رسد متوقف می‌شود تا کاربر ورودی بدهد، سپس پس از دریافت ورودی اجرا را ادامه می‌دهد.
برای اطمینان از نمایش درست یک رشته، می‌توانیم خروجی را با استفاده از متد format() فرمت کنیم.


فرمت کردن رشته با format()

متد format() به ما اجازه می‌دهد بخش‌های مشخصی از یک رشته را فرمت کنیم.

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

برای کنترل این مقادیر، می‌توان نگهدارنده های مکان (آکولاد {}) در متن اضافه کرد و مقادیر را از طریق متد format() عبور داد:

مثال

price = 49
txt = "The price is {} dollars"
print(txt.format(price))


خروجی:
The price is 49 dollars


می‌توان پارامترهایی درون آکولادها مشخص کرد تا نحوه تبدیل مقدار را تعیین کنیم:

مثال
price = 49
txt = "The price is {:.2f} dollars"
print(txt.format(price))

خروجی:
The price is 49.00 dollars
مقادیر چندگانه

اگر بخواهیم از مقادیر بیشتری استفاده کنیم، کافی است مقادیر بیشتری را به متد format() بدهیم:

print(txt.format(price, itemno, count))

و نگهدارنده مکان بیشتری اضافه کنیم:

مثال

quantity = 3
itemno = 567
price = 49
myorder = "I want {} pieces of item number {} for {:.2f} dollars."
print(myorder.format(quantity, itemno, price))


خروجی:
I want 3 pieces of item number 567 for 49.00 dollars.


پس با اضافه کردن مقادیر بیشتر به متد format() و آکولاد بیشتر، می‌توان مقادیر متعددی را در رشته جایگذاری کرد.
می‌توان از شماره‌های اندیس (عدد داخل آکولاد {0}) برای اطمینان از قرار گرفتن مقادیر در جای درست استفاده کرد

مثال
quantity = 3
itemno = 567
price = 49
myorder = "I want {0} pieces of item number {1} for {2:.2f} dollars."
print(myorder.format(quantity, itemno, price))


خروجی:
I want 3 pieces of item number 567 for 49.00 dollars.


همچنین اگر بخواهیم به یک مقدار بیش از یکبار ارجاع دهیم، از شماره اندیس استفاده می‌کنیم:

مثال
age = 36
name = "John"
txt = "His name is {1}. {1} is {0} years old."
print(txt.format(age, name))


خروجی:
His name is John. John is 36 years old.

پس با شماره‌های اندیس می‌توانیم مطمئن شویم که مقادیر در جای درست قرار می‌گیرند.
شاخص های نامگذاری شده

می‌توان از نام‌های اندیس استفاده کرد، با وارد کردن یک نام داخل آکولادها {carname}، اما در این صورت باید هنگام پاس دادن مقادیر پارامتر از نام‌ها استفاده کرد:
txt.format(carname="Ford")

مثال
myorder = "I have a {carname}, it is a {model}."
print(myorder.format(carname = "Ford", model = "Mustang"))

خروجی
I have a Ford, it is a Mustang.

پس می‌توان با استفاده از نام‌های اندیس ها ، به جای شماره‌های اندیس ها، مقادیر را اختصاص داد.
2⃣ مدیریت فایل
🔰 باز کردن فایل یکی از مهمترین بخش های برنامه نویسی پایتون است.

برای باز کردن فایل در پایتون از تابع open() استفاده میکنیم.

این تابع دو پارامتر دارد:

🟡 نام فایل - نام فایلی که میخواهیم باز کنیم

🟡 حالت - مشخص میکند فایل را به چه صورتی باز کنیم. چهار حالت وجود دارد:


⚫️ "r"
- فقط خواندن. پیش فرض است. اگر فایل وجود نداشته باشد خطا میدهد.

⚫️ "a"
- اضافه کردن. به انتهای فایل اضافه میکند. اگر فایل وجود نداشت یکی جدید میسازد.

⚫️ "w"
- نوشتن. فایل را برای نوشتن باز میکند. اگر فایل وجود داشته باشد جایگزین میشود.

⚫️ "x"
- ایجاد فایل جدید. اگر فایل وجود داشته باشد خطا میدهد.


همچنین میتوان مشخص کرد فایل به صورت متن یا باینری باز شود:

⚪️ "t"
- متن. پیش فرض است.

⚪️ "b"
- باینری. مثلا برای عکس ها.

خلاصه اینکه تابع open() امکانات زیادی برای باز کردن، خواندن، نوشتن و اضافه کردن به فایل ها در پایتون فراهم میکند.

🧩🧩🧩🧩🧩🧩🧩🧩🧩🧩🧩🧩🧩

⭕️ نحوه استفاده

برای باز کردن یک فایل برای خواندن، فقط کافی است نام فایل را مشخص کنیم:

f = open("demofile.txt")

کد بالا معادل است با:

f = open("demofile.txt", "rt")

چون "r" به معنای خواندن و "t" به معنای متن هستند که مقادیر پیش‌فرض هستند، نیازی به مشخص کردن آن‌ها نیست.

🔴 مطمئن شوید فایل وجود دارد، در غیر این صورت خطایی رخ می‌دهد.
🟣 در پایتون برای باز کردن یک فایل از تابع داخلی open() استفاده می‌کنیم.

این تابع یک شیء فایل برمی‌گرداند که دارای روش read() برای خواندن محتوای فایل است:

مثال:
f = open("demofile.txt", "r")
print(f.read())

نتیجه:
Hello! Welcome to demofile.txt
This file is for testing purposes.
Good Luck!

🟪 اگر فایل در مسیر دیگری قرار دارد، باید مسیر کامل فایل را مشخص کنیم:

مثال:
f = open("D:\\myfiles\\welcome.txt", "r")
print(f.read())

نتیجه:

Welcome to this text file!
This file is located in a folder named "myfiles", on the D drive.
Good Luck!

بنابراین با استفاده از تابع open() و مشخص کردن مسیر فایل، می‌توانیم فایل‌ها را در پایتون باز کنیم و محتوای آن‌ها را بخوانیم.
بطور پیش‌فرض، متد read() تمام متن را برمیگرداند. اما شما همچنین می‌توانید تعیین کنید چند کاراکتر را می‌خواهید برگردانید.

مثال:

f = open("demofile.txt", "r")
print(f.read(5))


این کد، 5 کاراکتر اول فایل را برمیگرداند.

نتیجه :
Hello