آموزش پایتون
2 subscribers
3 photos
35 links
Download Telegram
The strftime() Method

شیء datetime دارای یک متد برای قالب‌بندی شیء‌های تاریخ به رشته‌های قابل خواندن است.

این متد strftime() نام دارد و یک پارامتر به نام format را می‌گیرد که برای مشخص کردن قالب رشته برگردانده شده استفاده می‌شود:

مثال
نام ماه را نمایش دهید:


import datetime

x = datetime.datetime(2018, 6, 1)

print(x.strftime("%B"))


خروجی:


June


پارامتر format می‌تواند ترکیبی از کدهای قالب‌بندی مختلف را شامل شود برای نمایش قسمت‌های مختلف تاریخ و زمان مانند سال، ماه، روز، ساعت، دقیقه و غیره.
این فرمت های قانونی برای نمایش تاریخ و زمان در پایتون هستند:

%a -
نام روز هفته به صورت کوتاه (مثل Wed)
%A -
نام روز هفته به صورت کامل (مثل Wednesday)
%w -
شماره روز هفته به صورت 0 تا 6 که 0 یکشنبه است
%d -
شماره روز ماه به صورت 01 تا 31
%b -
نام ماه به صورت کوتاه (مثل Dec)
%B -
نام ماه به صورت کامل (مثل December)
%m -
شماره ماه به صورت 01 تا 12
%y -
سال به صورت دو رقمی بدون قرن (مثل 18)
%Y -
سال کامل به صورت چهار رقمی (مثل 2018)
%H -
ساعت به صورت 00 تا 23
%I -
ساعت به صورت 00 تا 12
%p -
نمایش AM/PM
%M -
دقیقه به صورت 00 تا 59
%S -
ثانیه به صورت 00 تا 59
%f -
میکروثانیه 000000 تا 999999
%z -
اختلاف زمانی نسبت به UTC
%Z -
منطقه زمانی مثل CST
%j -
شماره روز سال به صورت 001 تا 366
%U -
شماره هفته سال با شروع از یکشنبه، 00 تا 53
%W -
شماره هفته سال با شروع از دوشنبه، 00 تا 53
%c -
نمایش محلی تاریخ و زمان
%C -
قرن به صورت عدد (مثل 20 برای قرن 21)
%x -
نمایش محلی تاریخ
%X -
نمایش محلی زمان
%% -
نمایش خود کاراکتر درصد %
%G -
سال به صورت ISO 8601
%u -
روز هفته به صورت ISO 8601 (1 تا 7)
%V -
شماره هفته سال به صورت ISO 8601 (01 تا 53)
توابع ریاضی درون‌ساخته در پایتون

پایتون دارای مجموعه‌ای از توابع ریاضی درون‌ساخته است که شامل ماژول ریاضی گسترده‌ای می‌شود. این توابع اجازه می‌دهند عملیات ریاضی روی اعداد انجام دهید.

توابع ریاضی درون‌ساخته

🔹توابع min() و max() برای پیدا کردن کوچکترین و بزرگترین مقدار در یک دنباله استفاده می‌شوند:

مثال:

x = min(5, 10, 25)
y = max(5, 10, 25)

print(x)
خروجی 5
print(y)
خروجی 25


🔹تابع abs() مقدار مطلق (مثبت) عدد مشخص شده را برمی‌گرداند:

مثال:

x = abs(-7.25)
print(x)
خروجی 7.25

🔹تابع pow(x, y) مقدار x به توان y را برمی‌گرداند.

مثال:

مقدار 4 به توان 3 (معادل 4 * 4 * 4) را برمی‌گرداند:

x = pow(4, 3)
print(x)
خروجی 64

به این ترتیب توابع ریاضی درون‌ساخته پایتون به راحتی انجام عملیات ریاضی پیچیده را ممکن می‌سازند.
🔵 ماژول math

پایتون دارای یک ماژول درون‌ساخته به نام math است که لیست توابع ریاضی را گسترش می‌دهد.

برای استفاده از آن باید ماژول math را import کنید:

import math

وقتی ماژول math را import کردید، می‌توانید از متدها و ثابت‌های آن استفاده کنید.

برای مثال متد math.sqrt() جذر یک عدد را برمی‌گرداند:

مثال:

import math

x = math.sqrt(64)

print(x)
خروجی: 8

متد math.ceil() یک عدد را به بالاترین عدد صحیح می‌رساند و متد math.floor() آن را به پایین‌ترین عدد صحیح می‌رساند:

مثال:

import math

x = math.ceil(1.4)
y = math.floor(1.4)

print(x)
خروجی: 2
print(y)
خروجی: 1

ثابت math.pi مقدار عدد پی (3.14...) را برمی‌گرداند:

مثال:

import math

x = math.pi

print(x)
خروجی: 3.141592653589793

با استفاده از ماژول math می‌توان عملیات پیچیده ریاضی را به راحتی انجام داد.
math.acos()
آرک کسینوس یک عدد را برمی‌گرداند
math.acosh()
آرک کسینوس معکوس هایپربولیک یک عدد را برمی‌گرداند
math.asin()
آرک سینوس یک عدد را برمی‌گرداند
math.asinh() -
آرک سینوس معکوس هایپربولیک یک عدد را برمی‌گرداند
math.atan()
آرک تانژانت یک عدد را به رادیان برمی‌گرداند
math.atan2()
آرک تانژانت y/x را به رادیان برمی‌گرداند
math.atanh()
آرک تانژانت معکوس هایپربولیک یک عدد را برمی‌گرداند
math.ceil()
یک عدد را به بالاترین عدد صحیح می‌رساند
math.comb()
تعداد راه‌های انتخاب k مورد از n مورد بدون تکرار و ترتیب را برمی‌گرداند
math.copysign()
عددی متشکل از مقدار پارامتر اول و علامت پارامتر دوم را برمی‌گرداند
math.cos()
کسینوس یک عدد را برمی‌گرداند
math.cosh()
کسینوس هایپربولیک یک عدد را برمی‌گرداند
math.degrees()
زاویه‌ای را از رادیان به درجه تبدیل می‌کند
math.dist()
فاصله اقلیدسی بین دو نقطه p و q را برمی‌گرداند
math.erf()
تابع خطای یک عدد را برمی‌گرداند
math.erfc()
تابع خطای مکمل یک عدد را برمی‌گرداند
math.exp()
این متد E به توان x را برمی‌گرداند
math.expm1()
این متد Ex - 1 را برمی‌گرداند
math.fabs()
مقدار مطلق یک عدد را برمی‌گرداند
math.factorial()
فاکتوریل یک عدد را برمی‌گرداند
math.floor()
یک عدد را به پایین‌ترین عدد صحیح می‌رساند
math.fmod()
باقی‌مانده تقسیم x/y را برمی‌گرداند
math.frexp()
مانتیس و نماینده یک عدد مشخص را برمی‌گرداند
math.fsum()
مجموع همه موارد در هر قابل تکراری (تاپل، آرایه، لیست و غیره) را برمی‌گرداند
math.gamma()
تابع گاما در x را برمی‌گرداند
math.gcd()
بزرگ‌ترین مقسوم‌علیه مشترک دو عدد صحیح را برمی‌گرداند
math.hypot()
نرم اقلیدسی را برمی‌گرداند
math.isclose()
بررسی می‌کند دو مقدار به هم نزدیک هستند یا خیر
math.isfinite()
بررسی می‌کند عدد متناهی است یا خیر
math.isinf()
بررسی می‌کند عدد بی‌نهایت است یا خیر
math.isnan()
بررسی می‌کند مقدار یک عدد نیست یا خیر
math.isqrt()
یک عدد ریشه‌دوم را به پایین‌ترین عدد صحیح می‌رساند
math.ldexp()
معکوس math.frexp یعنی x * (2**i) اعداد داده شده x و i را برمی‌گرداند
math.lgamma()
مقدار لگاریتم گامای x را برمی‌گرداند
math.log()
لگاریتم طبیعی یک عدد یا لگاریتم عدد بر پایه را برمی‌گرداند
math.log10()
لگاریتم پایه 10 x را برمی‌گرداند
math.log1p()
لگاریتم طبیعی 1+x را برمی‌گرداند
math.log2()
لگاریتم پایه 2 x را برمی‌گرداند
math.perm()
تعداد راه‌های انتخاب k مورد از n مورد با ترتیب و بدون تکرار را برمی‌گرداند
math.pow()
مقدار x به توان x را برمی‌گرداند
math.prod()
حاصلضرب همه عناصر در یک قابل تکرار را برمی‌گرداند
math.radians()
یک مقدار درجه را به رادیان تبدیل می‌کند
math.remainder()
نزدیک‌ترین مقداری که می‌تواند صورت را کاملاً قابل قسمت بر مخرج کند برمی‌گرداند
math.sin()
سینوس یک عدد را برمی‌گرداند
math.sinh()
سینوس هایپربولیک یک عدد را برمی‌گرداند
math.sqrt()
ریشه دوم یک عدد را برمی‌گرداند
math.tan()
تانژانت یک عدد را برمی‌گرداند
math.tanh()
تانژانت هایپربولیک یک عدد را برمی‌گرداند
math.trunc()
اعداد صحیح قطع شده یک عدد را برمی‌گرداند
ثابت های ریاضی:

math.e
عدد اویلر (2.7182...) را برمی‌گرداند
math.inf
بی‌نهایت مثبت شناور را برمی‌گرداند
math.nan
مقدار شناور NaN (عدد نیست) را برمی‌گرداند
math.pi
عدد پی (3.1415...) را برمی‌گرداند
math.tau
عدد تائو (6.2831...) را برمی‌گرداند
🔵 JSON

جیسون یک نوع سینتکس برای ذخیره کردن و تبادل اطلاعات است. JSON در واقع متنی است که با استفاده از شیء جاوا اسکریپت نوشته شده است.

برای کار با داده‌های JSON در پایتون از ماژول json استفاده می‌شود.

مثال:
ابتدا ماژول json را وارد کنید:


import json


🔹 تجزیه JSON - تبدیل از JSON به پایتون
اگر یک رشته JSON دارید، می‌توانید آن را با استفاده از متد json.loads() تجزیه کنید.

نتیجه یک دیکشنری پایتون خواهد بود.

مثال:
تبدیل از JSON به پایتون:


import json

#یک_رشته_JSON:
x = '{ "name":"John", "age":30, "city":"New York"}'

#_تجزیه_x:
y = json.loads(x)

#_نتیجه_یک_دیکشنری_پایتون_است:
print(y["age"])


خروجی:

30


در این مثال، یک رشته JSON به نام x داریم. سپس از متد json.loads() استفاده می‌کنیم تا آن را تجزیه کنیم و در متغیر y ذخیره کنیم. سپس مقدار سن (age) را از دیکشنری پایتون در متغیر y چاپ می‌کنیم.


🔹 تبدیل یک شیء پایتون به یک رشته JSON با استفاده از متد json.dumps()

مثال:

import json

#_یک_شیء_پایتون_(دیکشنری):
x = {
"name": "John",
"age": 30,
"city": "New York"
}

#_تبدیل_به_JSON:
y = json.dumps(x)

#_نتیجه_یک_رشته_JSON_است:
print(y)


خروجی:

{"name": "John", "age": 30, "city": "New York"}


در این مثال، یک شیء پایتون به نام x داریم که یک دیکشنری است. سپس از متد json.dumps() استفاده کرده و آن را به یک رشته JSON تبدیل می‌کنیم و در متغیر y ذخیره می‌کنیم. سپس مقدار y را چاپ می‌کنیم که نتیجه یک رشته JSON است.
تبدیل اشیاء پایتون به رشته‌های JSON و چاپ مقادیر:

import json

print(json.dumps({"name": "John", "age": 30}))
print(json.dumps(["apple", "bananas"]))
print(json.dumps(("apple", "bananas")))
print(json.dumps("hello"))
print(json.dumps(42))
print(json.dumps(31.76))
print(json.dumps(True))
print(json.dumps(False))
print(json.dumps(None))


خروجی:

{"name": "John", "age": 30}
["apple", "bananas"]
["apple", "bananas"]
"hello"
42
31.76
true
false
null


هر نوع اشیاء پایتون (دیکشنری، لیست، تاپل، رشته، عدد صحیح، عدد اعشاری، True، False و None) به نوع متناظر در JSON تبدیل می‌شوند.
☑️ وقتی از پایتون به JSON تبدیل می‌کنید، اشیاء پایتون به معادل JSON (JavaScript) تبدیل می‌شوند:

🔸 دیکشنری (dict) به Object تبدیل می‌شود.
🔸 لیست (list) به Array تبدیل می‌شود.
🔸 تاپل (tuple) به Array تبدیل می‌شود.
🔸 رشته (str) به String تبدیل می‌شود.
🔸 عدد صحیح (int) به Number تبدیل می‌شود.
🔸 عدد اعشاری (float) به Number تبدیل می‌شود.
🔸 و True به true تبدیل می‌شود.
🔸 و False به false تبدیل می‌شود.
🔸 و None به null تبدیل می‌شود.


این تبدیل ها نشان می‌دهند که پایتون و JSON در بیان داده‌ها تفاوت‌هایی دارند. وقتی اشیاء پایتون را به JSON تبدیل می‌کنید، سعی می‌شود معادل JSON متناظر با هر نوع پایتونی ایجاد شود تا بتوانید آن را در سایر زبان‌ها و پلتفرم‌ها که از JSON پشتیبانی می‌کنند، استفاده کنید.
مثال زیر نمونه‌ای است که یک شیء پایتونی حاوی تمام انواع مجاز داده‌ها را به JSON تبدیل می‌کند:

import json

x = {
"name": "John",
"age": 30,
"married": True,
"divorced": False,
"children": ("Ann", "Billy"),
"pets": None,
"cars": [
{"model": "BMW 230", "mpg": 27.5},
{"model": "Ford Edge", "mpg": 24.1}
]
}

print(json.dumps(x))


خروجی:

{"name": "John", "age": 30, "married": true, "divorced": false, "children": ["Ann", "Billy"], "pets": null, "cars": [{"model": "BMW 230", "mpg": 27.5}, {"model": "Ford Edge", "mpg": 24.1}]}


در این مثال، یک شیء پایتونی به نام x تعریف شده است که حاوی تمام انواع مجاز داده‌ها است، از جمله رشته، عدد صحیح، مقدار بولی، تاپل، None و لیستی از دیکشنری‌ها است. با استفاده از json.dumps()، این شیء به یک رشته JSON تبدیل شده و چاپ می‌شود.
مثال بالا یک رشته JSON را چاپ می‌کند، اما با عدم وجود تورفتگی و شکست خطوط، خوانایی آن به مراتب کاهش می‌یابد.

متد json.dumps() دارای پارامترهایی است که امکان بهبود خوانایی خروجی را فراهم می‌کنند:

مثال
از پارامتر indent برای تعیین تعداد فاصله‌های تورفتگی استفاده کنید:

json.dumps(x, indent=4)


همچنین می‌توانید جداکننده‌ها را تعیین کنید، مقدار پیش‌فرض (", ", ": ") است که به معنی استفاده از کاما و یک فاصله برای جدا کردن هر شیء، و نقطه و یک فاصله برای جدا کردن کلیدها از مقادیر است:

مثال
از پارامتر separators برای تغییر جداکننده‌های پیش‌فرض استفاده کنید:

json.dumps(x, indent=4, separators=(". ", " = "))


ترتیب کلیدها را مشخص کنید
متد json.dumps() دارای پارامترهایی است که امکان مشخص کردن ترتیب کلیدها در خروجی را فراهم می‌کنند:

مثال
از پارامتر sort_keys برای مشخص کردن اینکه خروجی باید مرتب شود یا خیر استفاده کنید:


json.dumps(x, indent=4, sort_keys=True)
برای استفاده از اکسپرسیون‌های منظم یا رگکس در پایتون باید از ماژول re استفاده کنیم.

ماژول re در پایتون ساخته شده تا کار با اکسپرسیون‌های منظم را آسان کند.

برای استفاده از این ماژول باید آن را وارد کنیم:


import re


سپس می‌توانیم اکسپرسیون‌های منظم را در پایتون مورد استفاده قرار دهیم.

به عنوان مثال می‌خواهیم ببینیم آیا متنی شامل "The rain in Spain" است یا خیر:


txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)


این دستور re.search را اجرا می‌کند تا ببیند آیا متن شروع با "The" و پایان با "Spain" است یا خیر.
import re

txt = "The rain in Spain"
x = re.search("^The.*Spain$", txt)

if x:
print("YES! We have a match!")
else:
print("No match")

➡️
YES! We have a match!
در ماژول re پایتون، توابع مختلفی وجود دارد که امکان جستجو در متن را برای یافتن الگوهای مناسب فراهم می‌کنند:

- findall:
لیستی از تمام موارد مطابقت یافته را برمی‌گرداند

- search:
اگر مطابقتی پیدا کرد ، شیء مطابقت را برمی‌گرداند. الگو در هر کجای متن پیدا شده باشد

- split:
متن را بر اساس هر الگوی مطابقت پیدا شده به لیستی تبدیل و برمی‌گرداند

- sub:
یک یا چند مورد از مطابقت‌ها را با یک رشته جایگزین می‌کند

این توابع امکان جستجو در متن و پردازش الگوهای منظم را فراهم می‌آورند.
🔴در اکسپرسیون‌های منظم، کاراکترهای ویژه‌ای وجود دارند که معنای خاصی دارند:

🔻 [] :
مجموعه‌ای از کاراکترها را مشخص می‌کند

🔻 \ :
رشته‌ای ویژه را نشان می‌دهد یا می‌تواند برای فرار از کاراکترهای ویژه مورد استفاده قرار گیرد

🔻 . :
هر کاراکتر (بجز کاراکتر بازگشت به ابتدا) را نشان می‌دهد

🔻 ^ :
شروع با

🔻 $ :
پایان با

🔻 * :
صفر یا بیشتر بار تکرار

🔻 + :
یک یا بیشتر بار تکرار

🔻 ? :
صفر یا یک بار تکرار

🔻 {} :
تعداد دقیق تکرار

🔻 | :
یا

🔻 ():
گروه‌بندی و الگویی برای برداشتن


این کاراکترها معنای ویژه‌ای در الگوهای منظم دارند.
🔵 در اکسپرسیون‌های منظم، دنباله‌های ویژه‌ای وجود دارند که شامل \ و سپس یکی از کاراکترهای زیر هستند و معنای خاصی دارند:


🔹 \A:
مطابقت با شروع رشته

🔹 \b:
مطابقت با شروع یا پایان کلمه

🔹 \B:
مطابقت با کاراکترهای موجود در کلمه اما نه در شروع یا پایان

🔹 \d:
شامل رقم

🔹 \D:
شامل رقم نیست

🔹 \s:
شامل کاراکتر فاصله

🔹 \S:
شامل کاراکتر فاصله نیست

🔹 \w:
شامل کاراکترهای الفبایی و رقمی

🔹 \W:
شامل کاراکترهای الفبایی و رقمی نیست

🔹 \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