🟠 در الگوهای منظم در براکت مربعی [] مجموعهای از کاراکترها قرار داده میشود که معنای خاصی دارند:
🔸 [arn]:
بازگردان مطابقت با کاراکترهای a, r و n
🔸 [a-n]:
بازگردان مطابقت با هر کاراکتر کوچک بین a تا n در الفبا
🔸 [^arn]:
بازگردان مطابقت بجز کاراکترهای a, r و n
🔸 [0123]:
بازگردان مطابقت با اعداد 0, 1, 2, 3
🔸 [0-9]:
بازگردان مطابقت با اعداد میان 0 تا 9
🔸 [0-5][0-9]:
بازگردان مطابقت با اعداد دو رقمی از 00 تا 59
🔸 [a-zA-Z]:
بازگردان مطابقت با حروف بزرگ یا کوچک الفبا
🔸 [+]:
بازگردان مطابقت با کاراکتر + زیرا در مجموعههای براکتی + کاراکتر ویژه نیست
🔸 [arn]:
بازگردان مطابقت با کاراکترهای a, r و n
🔸 [a-n]:
بازگردان مطابقت با هر کاراکتر کوچک بین a تا n در الفبا
🔸 [^arn]:
بازگردان مطابقت بجز کاراکترهای a, r و n
🔸 [0123]:
بازگردان مطابقت با اعداد 0, 1, 2, 3
🔸 [0-9]:
بازگردان مطابقت با اعداد میان 0 تا 9
🔸 [0-5][0-9]:
بازگردان مطابقت با اعداد دو رقمی از 00 تا 59
🔸 [a-zA-Z]:
بازگردان مطابقت با حروف بزرگ یا کوچک الفبا
🔸 [+]:
بازگردان مطابقت با کاراکتر + زیرا در مجموعههای براکتی + کاراکتر ویژه نیست
تابع findall() در ماژول re پایتون، لیستی از تمام موارد مطابقت یافته را برمیگرداند.
به عنوان مثال:
لیست تمام موارد مطابقت را چاپ کنید:
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
➡️
['ai', 'ai']
این تابع findall تمام زیررشتههای "ai" در متن را پیدا میکند و در یک لیست برمیگرداند.
اگر مطابقتی پیدا نشود، لیست تهی برگردانده میشود:
import re
txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
if (x):
print("Yes, there is at least one match!")
else:
print("No match")
➡️
[]
No match
به عنوان مثال:
لیست تمام موارد مطابقت را چاپ کنید:
import re
txt = "The rain in Spain"
x = re.findall("ai", txt)
print(x)
➡️
['ai', 'ai']
این تابع findall تمام زیررشتههای "ai" در متن را پیدا میکند و در یک لیست برمیگرداند.
اگر مطابقتی پیدا نشود، لیست تهی برگردانده میشود:
import re
txt = "The rain in Spain"
x = re.findall("Portugal", txt)
print(x)
if (x):
print("Yes, there is at least one match!")
else:
print("No match")
➡️
[]
No match
تابع search() در ماژول re پایتون رشته را به دنبال الگوی مورد نظر جستجو میکند و در صورت یافتن مطابقت، شیء مربوطه را برمیگرداند.
اگر چندین مورد مطابقت وجود داشته باشد، تنها اولین مورد برگردانده میشود:
import re
txt = "The rain in Spain"
x = re.search("\s", txt)
print("The first white-space character is located in position:", x.start())
➡️
The first white-space character is located in position: 3
این برنامه مکان اولین کاراکتر فاصله در متن را چاپ میکند.
اگر مطابقتی پیدا نشود None برمیگردد:
import re
txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)
➡️
None
این جستجو هیچ مطابقتی ندارد و None چاپ میشود.
اگر چندین مورد مطابقت وجود داشته باشد، تنها اولین مورد برگردانده میشود:
import re
txt = "The rain in Spain"
x = re.search("\s", txt)
print("The first white-space character is located in position:", x.start())
➡️
The first white-space character is located in position: 3
این برنامه مکان اولین کاراکتر فاصله در متن را چاپ میکند.
اگر مطابقتی پیدا نشود None برمیگردد:
import re
txt = "The rain in Spain"
x = re.search("Portugal", txt)
print(x)
➡️
None
این جستجو هیچ مطابقتی ندارد و None چاپ میشود.
تابع split() در ماژول re پایتون رشته را بر اساس الگوی مطابقت به لیستی تبدیل میکند.
برای مثال:
import re
txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
➡️
['The', 'rain', 'in', 'Spain']
این دستور متن را بر اساس فواصل در یک لیست قرار میدهد.
میتوان تعداد جداسازیها را با پارامتر maxsplit کنترل کرد:
import re
txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
➡️
['The', 'rain in Spain']
این دستور متن را فقط بر اساس اولین فاصله به دو زیررشته تقسیم میکند
برای مثال:
import re
txt = "The rain in Spain"
x = re.split("\s", txt)
print(x)
➡️
['The', 'rain', 'in', 'Spain']
این دستور متن را بر اساس فواصل در یک لیست قرار میدهد.
میتوان تعداد جداسازیها را با پارامتر maxsplit کنترل کرد:
import re
txt = "The rain in Spain"
x = re.split("\s", txt, 1)
print(x)
➡️
['The', 'rain in Spain']
این دستور متن را فقط بر اساس اولین فاصله به دو زیررشته تقسیم میکند
تابع sub() در ماژول re پایتون، موارد مطابقت را با رشته مورد نظر جایگزین میکند.
برای مثال:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
➡️
The9rain9in9Spain
این دستور همه فواصل را با عدد 9 جایگزین میکند.
تعداد جایگزینیها را میتوان با آرگومان count مشخص کرد:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
➡️
The9rain9in Spain
این دستور تنها دو مورد اول را جایگزین میکند.
برای مثال:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt)
print(x)
➡️
The9rain9in9Spain
این دستور همه فواصل را با عدد 9 جایگزین میکند.
تعداد جایگزینیها را میتوان با آرگومان count مشخص کرد:
import re
txt = "The rain in Spain"
x = re.sub("\s", "9", txt, 2)
print(x)
➡️
The9rain9in Spain
این دستور تنها دو مورد اول را جایگزین میکند.
یک "شیء مطابق" (Match Object) یک شیء است که حاوی اطلاعاتی درباره جستجو و نتیجه آن است.
توجه: اگر مطابقتی وجود نداشته باشد، به جای شیء مطابق، مقدار None برگردانده خواهد شد.
برای مثال، جستجویی را انجام دهید که یک شیء مطابق برگرداند:
import re
txt = "The rain in Spain"
x = re.search("ai", txt)
print(x)
➡️
<re.Match object; span=(5, 7), match='ai'>
شیء مطابق دارای ویژگیها و روشهایی است که برای بازیابی اطلاعات درباره جستجو و نتیجه آن استفاده میشود:
- .span()
یک tuple حاوی موقعیت شروع و پایان مطابقت را برمیگرداند.
- .string
رشتهای که به تابع منتقل شده را برمیگرداند.
- .group()
قسمتی از رشته که مطابقت داشته را برمیگرداند.
برای مثال، موقعیت (شروع و پایان) اولین وقوع مطابقت را چاپ کنید.
عبارت منظم به دنبال هر کلمهای است که با "S" حروف بزرگ شروع میشود:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
➡️
(12, 17)
برای مثال، رشتهای که به تابع منتقل شده را چاپ کنید:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
➡️
The rain in Spain
برای مثال، قسمتی از رشته که مطابقت داشته را چاپ کنید.
عبارت منظم به دنبال هر کلمهای است که با "S" حروف بزرگ شروع میشود:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
➡️
Spain
توجه: اگر مطابقتی وجود نداشته باشد، به جای شیء مطابق، مقدار None برگردانده خواهد شد.
توجه: اگر مطابقتی وجود نداشته باشد، به جای شیء مطابق، مقدار None برگردانده خواهد شد.
برای مثال، جستجویی را انجام دهید که یک شیء مطابق برگرداند:
import re
txt = "The rain in Spain"
x = re.search("ai", txt)
print(x)
➡️
<re.Match object; span=(5, 7), match='ai'>
شیء مطابق دارای ویژگیها و روشهایی است که برای بازیابی اطلاعات درباره جستجو و نتیجه آن استفاده میشود:
- .span()
یک tuple حاوی موقعیت شروع و پایان مطابقت را برمیگرداند.
- .string
رشتهای که به تابع منتقل شده را برمیگرداند.
- .group()
قسمتی از رشته که مطابقت داشته را برمیگرداند.
برای مثال، موقعیت (شروع و پایان) اولین وقوع مطابقت را چاپ کنید.
عبارت منظم به دنبال هر کلمهای است که با "S" حروف بزرگ شروع میشود:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.span())
➡️
(12, 17)
برای مثال، رشتهای که به تابع منتقل شده را چاپ کنید:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.string)
➡️
The rain in Spain
برای مثال، قسمتی از رشته که مطابقت داشته را چاپ کنید.
عبارت منظم به دنبال هر کلمهای است که با "S" حروف بزرگ شروع میشود:
import re
txt = "The rain in Spain"
x = re.search(r"\bS\w+", txt)
print(x.group())
➡️
Spain
توجه: اگر مطابقتی وجود نداشته باشد، به جای شیء مطابق، مقدار None برگردانده خواهد شد.
پایپ (PIP) چیست؟
پایپ (PIP) مدیریت بسته های پایتون است. بسته ها شامل تمام فایل هایی هستند که برای اضافه کردن یک ماژول (کتابخانه کد) به پروژه پایتون نیاز دارید.
ماژول ها کتابخانه های کد هستند که می توانید در پروژه خود استفاده کنید.
تشخیص نصب شدن پایپ
برای تشخیص اینکه آیا پایپ نصب شده است یا خیر، می توانید به مسیر اسکریپت های پایتون بروید و دستور زیر را وارد کنید:
مثال:
C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip --version
که نسخه پایپ را چک می کند.
پایپ (PIP) مدیریت بسته های پایتون است. بسته ها شامل تمام فایل هایی هستند که برای اضافه کردن یک ماژول (کتابخانه کد) به پروژه پایتون نیاز دارید.
ماژول ها کتابخانه های کد هستند که می توانید در پروژه خود استفاده کنید.
تشخیص نصب شدن پایپ
برای تشخیص اینکه آیا پایپ نصب شده است یا خیر، می توانید به مسیر اسکریپت های پایتون بروید و دستور زیر را وارد کنید:
مثال:
C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip --version
که نسخه پایپ را چک می کند.
نصب PIP
اگر پایپ روی سیستم شما نصب نیست، میتوانید آن را از این صفحه دانلود و نصب کنید: https://pypi.org/project/pip/
دانلود ماژول
دانلود کردن یک بسته بسیار ساده است. باید خط فرمان را باز کنید و به پایپ بگویید که بسته مورد نظر را دانلود کند.
به مسیر اسکریپتهای پایتون بروید و دستور زیر را وارد کنید:
مثال:
C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip install camelcase
با این دستور، بستهای به نام "camelcase" دانلود و نصب میشود. این اولین بستهای است که شما دانلود و نصب کردهاید.
اگر پایپ روی سیستم شما نصب نیست، میتوانید آن را از این صفحه دانلود و نصب کنید: https://pypi.org/project/pip/
دانلود ماژول
دانلود کردن یک بسته بسیار ساده است. باید خط فرمان را باز کنید و به پایپ بگویید که بسته مورد نظر را دانلود کند.
به مسیر اسکریپتهای پایتون بروید و دستور زیر را وارد کنید:
مثال:
C:\Users\Your Name\AppData\Local\Programs\Python\Python36-32\Scripts>pip install camelcase
با این دستور، بستهای به نام "camelcase" دانلود و نصب میشود. این اولین بستهای است که شما دانلود و نصب کردهاید.
PyPI
pip
The PyPA recommended tool for installing Python packages.
استفاده از بسته
پس از نصب بسته، آماده استفاده از آن هستید. برای استفاده از بسته "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
با استفاده از این دستور میتوان لیست کامل بستههای نصب شده را مشاهده کرد.
پس از نصب بسته، آماده استفاده از آن هستید. برای استفاده از بسته "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
با استفاده از این دستور میتوان لیست کامل بستههای نصب شده را مشاهده کرد.
PyPI
PyPI · The Python Package Index
The Python Package Index (PyPI) is a repository of software for the Python programming language.
در پایتون، بلاک try-except برای مدیریت استثناءها (خطاها) استفاده میشود.
▫️ بلاک try: این بلاک به شما امکان میدهد یک بلاک کد را برای بررسی خطاها تست کنید. در این بلاک، قسمتی از کد که ممکن است خطا ایجاد کند قرار میگیرد.
▫️ بلاک except: این بلاک به شما امکان میدهد خطاها را مدیریت کنید. وقتی یک خطا در بلاک try رخ میدهد، کنترل به بلاک except منتقل میشود و کد موجود در این بلاک اجرا میشود.
▫️ بلاک else: این بلاک به شما امکان میدهد کدی را اجرا کنید که در صورت عدم وجود خطا در بلاک try قرار دارد. به عبارت دیگر، اگر هیچ خطایی در بلاک try رخ ندهد، بلاک else اجرا میشود.
▫️ بلاک finally: این بلاک به شما امکان میدهد کدی را اجرا کنید که باید در هر صورت، بعد از اجرای بلاک try و except، اجرا شود. بدون توجه به وجود یا عدم وجود خطا، بلاک finally همیشه اجرا میشود.
این بلاکها در مجموعهای از کدها استفاده میشوند تا کنترل برنامه در مواقعی که خطا رخ میدهد، به دست بگیرد و اقدامات مناسب برای مدیریت خطا انجام شود.
▫️ بلاک try: این بلاک به شما امکان میدهد یک بلاک کد را برای بررسی خطاها تست کنید. در این بلاک، قسمتی از کد که ممکن است خطا ایجاد کند قرار میگیرد.
▫️ بلاک except: این بلاک به شما امکان میدهد خطاها را مدیریت کنید. وقتی یک خطا در بلاک try رخ میدهد، کنترل به بلاک except منتقل میشود و کد موجود در این بلاک اجرا میشود.
▫️ بلاک else: این بلاک به شما امکان میدهد کدی را اجرا کنید که در صورت عدم وجود خطا در بلاک try قرار دارد. به عبارت دیگر، اگر هیچ خطایی در بلاک try رخ ندهد، بلاک else اجرا میشود.
▫️ بلاک finally: این بلاک به شما امکان میدهد کدی را اجرا کنید که باید در هر صورت، بعد از اجرای بلاک try و except، اجرا شود. بدون توجه به وجود یا عدم وجود خطا، بلاک finally همیشه اجرا میشود.
این بلاکها در مجموعهای از کدها استفاده میشوند تا کنترل برنامه در مواقعی که خطا رخ میدهد، به دست بگیرد و اقدامات مناسب برای مدیریت خطا انجام شود.
در پایتون وقتی خطایی رخ میدهد، یک استثنا (exception) ایجاد میشود که معمولا باعث متوقف شدن برنامه میشود.
ما میتوانیم استثناها را با استفاده از دستور try-except هندل کنیم:
خروجی:
در این مثال، دستور print(x) در بلوک try یک استثنا ایجاد میکند چون x تعریف نشده است. در نتیجه بلوک except اجرا میشود و پیام "An exception occurred" چاپ میکند.
با استفاده از دستور try-except ما میتوانیم استثناها را بگیریم و رفتار مناسبی برای هندل کردن آنها تعریف کنیم تا برنامه متوقف نشود.
ما میتوانیم استثناها را با استفاده از دستور 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 تعریف نشده است:
خروجی:
همانطور که مشاهده میکنید، یک خطای NameError رخ میدهد چون متغیر x تعریف نشده است. این خطا باعث میشود برنامه متوقف شود.
اما اگر همین دستور را در بلوک try قرار دهیم، بلوک except اجرا میشود و پیام خطا را چاپ میکند. بنابراین ادامه برنامه اجرا میشود:
خروجی:
با استفاده از try-except میتوانیم خطاها را بگیریم و از خراب شدن برنامه جلوگیری کنیم.
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 متعددی تعریف کنیم تا برای انواع خطاها، کدهای متفاوتی اجرا شود.
به عنوان مثال:
در این مثال دو بلاک except تعریف شده است:
- اگر خطای NameError رخ دهد، پیام "Variable x is not defined" چاپ میشود
- برای سایر خطاها، پیام "Something else went wrong" چاپ میشود
خروجی:
در اینجا چون خطای NameError رخ داده، بلاک اول 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 خطایی رخ نداد، اجرا شود
خروجی:
همچنین میتوانیم از بلوک finally استفاده کنیم که صرفنظر از بروز خطا در بلوک try، همیشه اجرا میشود
خروجی:
استفاده از finally مفید است برای بستن منابع و پاکسازی بعد از اتمام بلوک try-except.
مثلا در این مثال، فایل بعد از نوشتن یا خطا بسته میشود:
با استفاده از else و finally میتوانیم کنترل بیشتری روی برنامه در بلوکهای try-except داشته باشیم.
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 یک استثنا ایجاد کنیم
خروجی:
کلمهی raise باعث میشود یک استثنا ایجاد شود و برنامه متوقف شود.
همچنین میتوانیم نوع خطا و متن آن را مشخص کنیم:
خروجی:
با استفاده از 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() میرسد متوقف میشود تا کاربر ورودی بدهد، سپس پس از دریافت ورودی اجرا را ادامه میدهد.
روش دریافت ورودی در پایتون 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()
متد 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