مدرس: معین آعلی

Introduction | مقدمه


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

زبان‌های برنامه‌نویسی محبوب در ۲۰۲۵

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

مزایا و معایب پایتون

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

مزایای پایتون

  • سادگی و خوانایی: کد پایتون بسیار ساده و قابل فهم است
  • یادگیری آسان: مناسب برای مبتدیان و برنامه‌نویسان تازه‌کار
  • کتابخانه‌های فراوان: هزاران کتابخانه آماده برای استفاده
  • سازگاری: اجرا روی تمام سیستم‌عامل‌ها
  • جامعه بزرگ: پشتیبانی قوی از جامعه برنامه‌نویسان
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

معایب پایتون

  • سرعت: کندتر از زبان‌های کامپایل شده مثل جاوا و سی و گولنگ
  • مصرف حافظه: مصرف حافظه بیشتر نسبت به زبان‌های دیگر
  • خطاهای Runtime: برخی خطاها فقط در زمان اجرا مشخص می‌شوند
  • محدودیت‌های Mobile: توسعه اپلیکیشن‌های موبایل محدود
  • محدودیت در پردازش موازی
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

کاربردهای پایتون

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

کاربردهای پایتون

  • توسعه وب: Django, Flask, FastAPI
  • علم داده: Pandas, NumPy, Matplotlib
  • هوش مصنوعی: TensorFlow, PyTorch, Scikit-learn
  • اتوماسیون: اسکریپت‌های خودکار
  • توسعه بازی: Pygame, Arcade
  • توسعه دسکتاپ: Tkinter, PyQt, Kivy
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ویژگی‌های پایتون

  • زبان تفسیری: کد خط به خط اجرا می‌شود
  • پویا: نوع داده‌ها در زمان اجرا مشخص می‌شود
  • شیءگرا: پشتیبانی کامل از برنامه‌نویسی شیءگرا
  • تابع‌گرا: پشتیبانی از برنامه‌نویسی تابع‌گرا
  • مدیریت حافظه خودکار: Garbage Collection خودکار
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

محیط‌های توسعه

  • IDLE: محیط پیش‌فرض پایتون
  • PyCharm: محیط حرفه‌ای JetBrains
  • VS Code: ویرایشگر سبک با افزونه‌های قوی
  • Jupyter Notebook: مناسب برای علم داده
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

اولین برنامه

print("Hello, World!")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Variables | متغیرها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

متغیر چیه؟

ظرف‌هایی از جنس‌های مختلف برای نگه‌داری اطلاعات درون خودشان!

چه جنس‌هایی؟

  • اعداد
    • صحیح
    • اعشاری
    • مختلط
  • رشته‌ها
  • منطقی
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

انواع متغیرها

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چطور متغیر تعریف کنیم؟

  • تو پایتون نیازی نیست از کلیدواژه‌ خاصی استفاده کنی!
  • می‌تونیم مثل ریاضی متغیرهاتو نامگذاری و تعریف کنی!

مثلا:

x = 5
y = 3.14
name = "moeein"
flag = True
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چطور متغیر تعریف کنیم؟

نمیشه چندتایی تعریف کرد؟

x, y, z = "Orange", "Banana", "Cherry"
print(x)
print(y)
print(z)
معلومه که میشه!

نمیشه چندتارو همزمان یک مقدار داد؟

x = y = z = "Orange"
print(x)
print(y)
print(z)
معلومه که میشه!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

نامگذاری متغیرها

چیا مجازه؟

  • حروف کوچک و بزرگ
  • آندرلاین (ـ)
  • اعداد

چطور مجازه؟

a1 = 2
first_name = "moeein"
first_name1 = "mamad"
_name = "moeein"
_1 = 2

چطور مجاز نیست؟

عدد اول اسم بیاد!

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

نامگذاری متغیرها

حواستون به بزرگ و کوچیک بودن کارکترها باشه!

a = 2
A = 3
aA = 4
Aa = 5
naMe = "moeein"
namE = "saeed"
NamE = "amir"
nAmE = "amirhossein"
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

نامگذاری متغیرها

چطور نامگذاری کنیم؟

small

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ کردن

چطور مقدار یک متغیر رو چاپ کنیم؟

name = "moeein"
print("moeein")

age = 22
print(age)

flag = True
print(flag)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Printing | چاپ کردن


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ کردن

چطور مقدار یک متغیر رو چاپ کنیم؟

name = "moeein"
print("moeein")

age = 22
print(age)

flag = True
print(flag)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ کردن

فقط چاپ کردن متغیر مجازه؟

print("moeein")

print(-2)

print(True)
معلومه که نه!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ کردن

حتما باید یدونه‌ای چاپ کنیم؟

print("moeein", "amirhossein", "saeed")

print(1, 2, 3)

print(True, False, True, False)
معلومه که نه!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ کردن

نمیشه هم متغیر چاپ کرد هم مقدار؟

name = "moeein"
print(name, "amirhossein", "saeed")

age = 18
print(1, 2, 3, age)

flag = True
print(flag, False)
معلومه که میشه!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

کلیدهای خاص

  • n\ : زدن یک enter (رفتن به خط بعد)

  • t\ : زدن یک tab

  • '\ : یک عدد کوتیشن

  • "\ : یک عدد دبل‌کوتیشن

  • \\ : یک عدد بک‌اسلش

مثال:

print("moeein\naali")

print("1\n2\n3")

print("1\n\n2")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

پایان خاص برای چاپ کردن

پایان معمولی:

print("moeein" , end="\n")

یک پایان خاص:

print("moeein" , end="***\n")

یک پایان خیلی خاص:

print("moeein" , end="\t***\t")
print("saeed" , end="\t***\t")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Comments | کامنت‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

کامنت چیه؟

در پایتون، کامنت (Comment) متنی است که داخل کد نوشته می‌شود ولی توسط مفسر اجرا نمی‌شود.



هدف اصلی کامنت‌ها:

  • توضیح کد برای خودت یا دیگران

  • خواناتر کردن برنامه

  • غیرفعال کردن موقت یک بخش از کد برای تست یا اشکال‌زدایی

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چطور کامنت بذاریم؟

کامنت تک خطی:

# This is a comment

print("Hello, World!")
حتی میشه کامنت رو جلو یک کد نوشت:
print("Hello, World!") # This is a comment 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چطور کامنت بذاریم؟

کامنت چند خطی:

# This is a comment
# written in
# more than one line

print("Hello, World!")
"""
This is a comment
written in
more than one line
"""

print("Hello, World!")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Casting | تبدیل نوع داده


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

یادآوری: انواع داده‌ها در پایتون

  • اعداد صحیح (int)
  • اعداد اعشاری (float)
  • متغیر منطقی (bool)
  • رشته (str)
a = 2 # int

b = 2.2 # float

c = "2" # str

d = "moeein" # str

e = "#$%@#$^%GVEARFHGBEA4534Cfwefgw" # str
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل به int

تبدیل int به int:

x = int(1)   # x will be 1

تبدیل float به int:

y = int(2.9999) # y will be 2

y = int(2.0) # y will be 2

تبدیل str به int:

z = int("3") # z will be 3

z = int("123m") # Error!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل به float

تبدیل int به float:

x = float(1)     # x will be 1.0

تبدیل float به float:

y = float(2.8)   # y will be 2.8

تبدیل str به float:

z = float("3")   # z will be 3.0

w = float("4.2") # w will be 4.2

p = float("4.2m") # Error!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل به str

تبدیل float به str:

a = str(1.2)

تبدیل int به str:

b = str(1)

تبدیل str به str:

b = str("1") 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل به bool

تبدیل str به bool:

print(bool("")) # False
print(bool("others")) # True

تبدیل int به bool:

print(bool(0)) # False
print(bool(1)) # True
print(bool(-1)) # True

تبدیل float به bool:

print(bool(0.0)) # False
print(bool(1.1)) # True
print(bool(-2.1)) # True
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل از bool

تبدیل bool به int:

print(int(True)) # 1
print(int(False)) # 0

تبدیل bool به float:

print(float(True)) # 1.0
print(float(False)) # 0.0

تبدیل bool به str:

print(str(True)) # "True"
print(str(False)) # "False"
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Input | ورودی گرفتن


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ورودی گرفتن تکی

رشته:

name = input() # "moeein aali"
print(name) # "moeein aali"

عدد صحیح:

age = int(input()) # "18"
print(age) # 18

عدد اعشاری:

height = float(input()) # "12.3"
print(height) # 12.3

نکته مهم: همه ورودی‌های کاربر به صورت Str هستند!

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

چاپ راهنما

استفاده از print:

print("please enter your name:")

name = input()

print("Hello",name,end="!\n")

استفاده از آرگومان input:

name = input("please enter your name:")

print("Hello",name,end="!\n")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Split

کاربرد: جداسازی یک Str توسط یک Str دیگر بر حسب یک الگوی مشخص

مثال ۱:
full_name = "moeein aali"
first_name, last_name = full_name.split(" ")
مثال ۲:
names = "moeein amirhossein saeed"
name1 , name2 , name3 = names.split(" ")
مثال ۳:
names = "moeein amirhossein saeed"
name1 , name2 , name3 = names.split()
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Split

مثال ۴:
names = "moeein|amirhossein|saeed"
name1 , name2 , name3 = names.split("|")
مثال ۵:
names = "moeein|amirhossein|saeed"
seperator = "|"
name1 , name2 , name3 = names.split(seperator)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Split: جدا کردن به تعداد محدود

نمونه:

txt = "apple#banana#cherry#orange"

a , b = txt.split("#", 1) # apple , banana#cherry#orange

m , n , p = txt.split("#", 2) # apple , banana , cherry#orange
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ورودی گرفتن چندتایی

رشته:

name1 , name = input().split()

عدد صحیح:

num1 , num2 = int(input().split()) # Error!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Map

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Map

num1 , num2 = map(int , input().split())

num3 , num4 = map(float , input().split())

نکات مهم:

  • اگه ورودی‌ها عدد نباشن کد خطا میده!
  • اگه به جای چند تا متغیر، یدونه متغیر قرار بدیم،‌همه ورودی‌ها در قالب یک لیست ذخیره می‌شن. در فصل‌های بعد با لیست و کاربردهای اون آشنا می‌شیم...
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Operators | عملگر‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای محاسباتی

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای انتسابی

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای مقایسه‌ای

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای منطقی

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای منطقی

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای هویت

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای هویت

مثال:

a = True 

print(a is True) # True
print(a is not False) # False
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای عضویت

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای عضویت

good_numbers = [1,2,3,4]

print(1 in good_numbers) # True

print(5 not in good_numbers) # True

print(5 in good_numbers) # False

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

عملگرهای بیتی (معرفی)

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Math Library | کتابخانه ریاضی


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

توابع آماده ریاضیاتی پایتون

  • تابع min‌ و max
x = min(5, 10, 25)
y = max(5, 10, 25)

print(x) # 5
print(y) # 25
  • تابع قدرمطلق (abs)
x = abs(-7.25)
y = abs(0)
z = abs(2)

print(x) # 7.25
print(y) # 0
print(z) # 2
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

توابع آماده ریاضیاتی پایتون

  • تابع توان (pow)
x = pow(4, 3)

print(x) # 4 * 4 * 4 = 64
  • تابع رند کردن (round)
print(round(1.2)) # 1
print(round(1.9)) # 2
print(round(-1.9)) # -2
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Import Library

  • کل کتابخانه:
import math
  • تعدادی از توابع:
from math import sqrt
from math import sin, tan
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

sqrt

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

sqrt

import math

x = math.sqrt(64)

print(x) # 8
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ceil and floor

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ceil and floor

  • براکت: floor
  • سقف: ceil
import math

x = math.ceil(1.0001)
y = math.floor(1.99999)

print(x) # 2
print(y) # 1 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

ثابت‌های ریاضی

  • عدد پی (π): math.pi
  • عدد نپر (e): math.e
  • بی‌نهایت: math.inf
  • منفی بی‌نهایت: -math.inf
import math

print(f"عدد پی: {math.pi}") # 3.141592653589793
print(f"عدد نپر: {math.e}") # 2.718281828459045
print(f"بی‌نهایت: {math.inf}") # inf
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

توابع مثلثاتی

  • سینوس: math.sin(x)
  • کسینوس: math.cos(x)
  • تانژانت: math.tan(x)
import math

angle_degrees = 30
angle_radians = math.radians(angle_degrees)

sin_value = math.sin(angle_radians)
cos_value = math.cos(angle_radians)
tan_value = math.tan(angle_radians)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تبدیل زاویه

  • درجه به رادیان: math.radians(degrees)
  • رادیان به درجه: math.degrees(radians)
import math

degrees = 180
radians = math.radians(degrees)

radians = math.pi
degrees = math.degrees(radians)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

توابع لگاریتمی

  • لگاریتم طبیعی: math.log(x)
  • لگاریتم بر پایه ۱۰: math.log10(x)
  • لگاریتم بر پایه ۲: math.log2(x)
import math

x = 100
y = 8

ln_x = math.log(x)      
log10_x = math.log10(x) 
log2_y = math.log2(y)   
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

توابع گرد کردن

  • گرد کردن: round(x) - گرد کردن به نزدیک‌ترین عدد صحیح
  • گرد کردن به بالا: math.ceil(x) - گرد کردن به عدد صحیح بزرگتر
  • گرد کردن به پایین: math.floor(x) - گرد کردن به عدد صحیح کوچکتر
import math

x = 3.7
y = 3.2
z = -3.7

print(round(x)) 
print(round(y))
print(math.ceil(x))
print(math.floor(x))
print(math.floor(z)) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

تابع فاکتوریل

import math

n = 5

factorial_n = math.factorial(n) 
# n! = 1 * 2 * ... * (n-1) * n
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Conditions | شرط‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

if

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

if + else

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

if + elif + else

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

if + else

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

if + elif + else

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

nested if

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

nested if

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Match Statement

  • به جای نوشتن تعداد زیادی if و elif می‌تونی از این سختار استفاده کنی!
day = 4
match day:
  case 1:
    print("Monday")
  case 2:
    print("Tuesday")
  case 3:
    print("Wednesday")
  case 4:
    print("Thursday")
  case 5:
    print("Friday")
  case 6:
    print("Saturday")
  case 7:
    print("Sunday")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Default Value in Match Statement

مقدار پیش‌فرض

  • با استفاده از _ می‌توانید حالتی را در نظر بگیرید که هیچ کدام از case ها با مقدار متغیر match نمی‌شوند!
day = 4
match day:
  case 6:
    print("Today is Saturday")
  case 7:
    print("Today is Sunday")
  case _:
    print("Looking forward to the Weekend")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Combine Values in Match Statement

ترکیب مقادیر

  • از کاراکتر پایپ | به عنوان عملگر or در ارزیابی case برای بررسی تطابق بیش از یک مقدار در یک case استفاده کنید:
day = 4
match day:
  case 1 | 2 | 3 | 4 | 5:
    print("Today is a weekday")
  case 6 | 7:
    print("I love weekends!")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Lists | لیست‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Lists

کاربرد:

  • ذخیره‌ی تعدادی داده، داخل یک متغیر
items = ["apple", "banana", "cherry"]
print(items)

items2 = ["moeein", 1, True, -1.1]
print(items2)

خصوصیات:

  • ترتیب ثابت
  • آیتم‌های قابل تغییر
  • امکان وجود آیتم تکراری
  • امکان وجود آیتم‌ها با تایپ‌های مختلف
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Lists

center2

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

List Length

  • به دست آوردن تعداد عضوهای یک لیست
  • به دست آوردن طول یک لیست
thislist = ["apple", "banana", "apple"]

print(len(thislist)) # 3
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Access List Items

  • دسترسی به عضو nام از یک لیست

نکته: شروع indexها از 0 است.

thislist = ["apple", "banana", "cherry"]

print(thislist[0]) # banana
print(thislist[1]) # apple
print(thislist[2]) # cherry
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Negative Indexing

ایندکس منفی

  • شروع از انتها
    • ایندکس 1- یعنی عضو آخر لیست
    • ایندکس 2- یعنی عضو یکی مانده به آخر لیست
    • ...
thislist = ["apple", "banana", "cherry"]

print(thislist[-1]) # cherry
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Range of Indexes

  • list[start:end]
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5]) # ["cherry", "orange", "kiwi"]
  • list[start:end:index]
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:5]) # ["cherry", "orange", "kiwi"]
  • list[start:]
thislist = ["apple", "banana", "cherry", "orange", "kiwi", "melon", "mango"]
print(thislist[2:]) # ["cherry", "orange", "kiwi", "melon", "mango"]
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Change Item Value

  • برای تغییر دادن یک آیتم‌ خاص از لیست، کافیه که مثل متغیرها به اون آیتم مقدار جدید assign کنیم.
thislist = ["apple", "banana", "cherry"]

thislist[1] = "blackcurrant"

print(thislist)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Change a Range of Item Values

  • برای تغییر دادن یک رنج از لیست، نیازه که یک لیست جدید با طول برابر با رنج مورد نظر با مقادیر جدید ایجاد کنیم. سپس آن رنج را در لیست مد نظر assign کنیم.

thislist = ["apple", "banana", "cherry", "orange", "kiwi", "mango"]

thislist[1:3] = ["blackcurrant", "watermelon"]

print(thislist)
  • دقت کنید که طول رنج انتخاب شده با طول لیست جدید یکی باشد!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Append Items

  • این متد، مقدار جدید را به انتهای لیست اضافه می‌کند.
thislist = ["apple", "banana", "cherry"]

thislist.append("orange")

print(thislist) # ['apple', 'banana', 'cherry', 'orange']
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Insert Items

  • این متد، مقدار جدید را دقیقا در ایندکس مورد نظر قرار می‌دهد و باقی اعضای لیست را شیفت می‌دهد.
thislist = ["apple", "banana", "cherry"]

thislist.insert(2, "watermelon")

print(thislist) # ['apple', 'banana', 'watermelon', 'cherry']
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Extend List

  • این متد یک لیست دیگر را به انتهای لیست فعلی اضافه می‌کند. عملکرد مشابه به append دارد با این تفاوت که ورودی آن به یک مقدار، لیستی از مقادیر است.
list1 = ["apple", "banana", "cherry"]

list2 = ["mango", "pineapple", "papaya"]

list1.extend(list2)

print(list1) # ['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya']
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Extend List

  • روش دوم:
list1 = ["apple", "banana", "cherry"]

list2 = ["mango", "pineapple", "papaya"]

list3 = list1 + list2

print(list3) # ['apple', 'banana', 'cherry', 'mango', 'pineapple', 'papaya']
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Remove Specified Item

  • برای این کار از متد remove استفاده می‌کنیم.
thislist = ["apple", "banana", "cherry"]

thislist.remove("banana")

print(thislist)
  • اگر بیشتر از یک مقدار وجود داشته باشد که با ورودی remove‌ یکی باشد، این متد فقط اولین عضو را عضو می‌کند.
thislist = ["apple", "banana", "cherry", "banana", "kiwi"]

thislist.remove("banana")

print(thislist)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Remove Specified Index

  • برای این کار از متد pop استفاده می‌کنیم.
  • این متد مقدار عضو شده را return هم می‌کند.
thislist = ["apple", "banana", "cherry"]
a = thislist.pop(1)

print(thislist) # ["apple", "cherry"]
print(a) # banana
  • اگر به این متد ورودی ندیم، آخرین عضو لیست را حذف می‌کند.
thislist = ["apple", "banana", "cherry"]
a = thislist.pop()

print(a) # cherry
print(thislist) # ["apple", "banana"]
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Clear the List

  • متد clear تمامی عضوهای لیست را عضو می‌کند.
thislist = ["apple", "banana", "cherry"]

thislist.clear()

print(thislist) # []
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Sort Lists

  • مرتب‌سازی برحسب حروف و اعداد (صعودی):
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]

thislist.sort()

print(thislist) # ['banana', 'kiwi', 'mango', 'orange', 'pineapple']
  • برعکس(نزولی):
thislist = ["orange", "mango", "kiwi", "pineapple", "banana"]

thislist.sort(reverse = True)

print(thislist) # ['pineapple', 'orange', 'mango', 'kiwi', 'banana']
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Copy Lists

thislist = ["apple", "banana", "cherry"]
  • روش اول:
mylist = thislist.copy()
print(mylist)
  • روش دوم:
mylist = list(thislist)
print(mylist)
  • روش سوم:
mylist = thislist[:]
print(mylist)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

another methods

  • count

    • تعداد آیتم‌هایی که برابر با مقدار ورودی باشن.
  • index

    • ایندکس اولین آیتمی که برابر باشه با مقدار ورودی
  • reverse

    • لیست را برعکس می‌کند و روی همان ذخیره می‌کند
  • reversed()

    • برعکس‌شده‌ی یک لیست را برمی‌گرداند.
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Loops | حلقه‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

for loop

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

while loop

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

while

سینتکس:

while <bool>:
  your codes...
  • این حلقه تا وقتی که شرط جلوی آن true است اجرا می‌شود!
i = 1
while i < 6:
  print(i)
  i += 1

نکته: اگه مقدار i رو زیاد نکنید، برنامه تا ابد داخل یک حلقه‌ی بی‌نهایت گیر خواهد کرد!

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

break Statement

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

break Statement

  • با استفاده از break می‌توانیم حتی اگر شرط جلوی حلقه همچنان true است، عملکرد حلقه را متوقف کنیم.
  • دقت کنید که هر جایی از کد break اجرا شود، دیگر کدهای داخل حلقه اجرا نمی‌شوند و همان لحظه از حلقه خارج خواهیم شد!
مثال:
i = 1
while i < 6:
  print(i)
  if i == 3:
    break
  i += 1 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

continue Statement

center

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

continue Statement

  • می‌توانیم با استفاده از دستور continue ادامه‌ی اجرای دور فعلی را متوقف کنیم و به دور بعدی برویم!
i = 0
while i < 6:
  i += 1
  if i == 3:
    continue
  print(i)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

for

  • این نوع از حلقه، برای پیمایش بر روی یک توالی (رشته، لیست، بازه‌ای از اعداد و...) استفاده می‌شود.

پیمایش روی یک لیست:

fruits = ["apple", "banana", "cherry"]

for x in fruits:
  print(x)

پیمایش روی یک رشته:

for x in "banana":
  print(x)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

break and continue

break:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    break
  print(x)

continue:

fruits = ["apple", "banana", "cherry"]
for x in fruits:
  if x == "banana":
    continue
  print(x)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

range function

  • تابع range یک توالی از اعداد صحیح را برمی‌گرداند.
for x in range(6):
  print(x) # 0,1,2,3,4,5
  • range from to
for x in range(2, 6): 
  print(x) # 2,3,4,5
  • range from to with step
for x in range(2, 30, 3):
  print(x) # 2,5,8,11,14,17,20,23,26,29
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

nested loop

مثال: جدول ضرب ۱۰ در ۱۰

for i in range(1,11):
    for j in range(1,11):
        print(i,"*",j,"=",i*j)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Strings | رشته‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Multiline Strings

مثال ۱:

a = """Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua."""

print(a)

مثال ۲:

a = '''Lorem ipsum dolor sit amet,
consectetur adipiscing elit,
sed do eiusmod tempor incididunt
ut labore et dolore magna aliqua.'''

print(a) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Strings as Lists

دسترسی به ایندکس n ام:

a = "Hello, World!"
print(a[1])

پیمایش روی لیست‌ها:

for i in "moeein":
  print(i)

طول یک رشته:

a = "moeein"
print(len(a)) # 6
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Membership in Strings

txt = "The best things in life are free!"

print("free" in txt) # True
print("moeein" in txt) # False
txt = "The best things in life are free!"

if "free" in txt:
  print("Yes")
txt = "The best things in life are free!"

if "expensive" not in txt:
  print("No")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Slicing Strings

  • slice from to
b = "Hello, World!"
print(b[2:5]) # llo 
  • slice from start
b = "Hello, World!"
print(b[:5]) # Hello
  • slice to end
b = "Hello, World!"
print(b[2:]) # llo, World!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

String Concatenation

  • می‌تونیم از عملگر + برای concat کردن رشته‌ها استفاده کنیم:
a = "Hello"
b = "World"

c = a + " " + b

print(c) # Hello World
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

F-Strings

روش نادرست:

age = 22
print("My name is Moeein, I am " + age) # Error!

روش درست:

age = 22
txt = f"My name is Moeein, I am {age}"
print(txt)

price = 59.999999
txt = f"The price is {price:.2f} dollars"
print(txt)

txt = f"The price is {20 * 59} dollars"
print(txt)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • upper: همگی حروف بزرگ
a = "Hello, World!"
print(a.upper()) # HELLO, WORLD!
  • lower: همگی حروف کوچک
a = "Hello, World!"
print(a.lower()) # hello, world!
  • strip: حذف کردن اسپیس‌ از اول و اخر
a = " Hello, World!  "
print(a.strip()) # Hello, World!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • replace: جایگزین کردن در سرتاسر رشته
a = "moeein aali"
a.replace("moeein", "mohammad")
print(a)
  • split: جداکننده
a = "moeein-saeed-amirhossein"
print(a.split("-")) # ['moeein','saeed','amirhossein']
  • capitalize: فقط کارکتر اول را بزرگ می‌کند
a = "hello world!"
print(a.capitalize()) # Hello world!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • count(input): شمردن تعداد input ها در سرتاسر رشته
a = "moeein1 moeein2 moeein wfqefqew"
print(a.count("moeein")) # 3
  • endswith(input): اگر رشته با input تمام شود، مقدار True را برمی‌گرداند
a = "moeein1 moeein2 moeein finish"
print(a.endswith("finish")) # True
  • find(input): به دنبال input در رشته می‌گردد و index آن را برمی‌گرداند
a = "moeein1 moeein2 moeein finish"
print(a.find("moeein2")) # 8
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • startswith(input): اگر رشته با input شروع شود، مقدار True را برمی‌گرداند
a = "hello world, how are you?"
print(a.startswith("hello")) # True
  • isalpha: اگر رشته فقط شامل حروف باشد، مقدار True را برمی‌گرداند
b = "Hello123"
print(b.isalpha()) # False
  • isdigit: اگر رشته فقط شامل اعداد باشد، مقدار True را برمی‌گرداند
b = "123abc"
print(b.isdigit()) # False
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • title: اولین حرف هر کلمه را بزرگ می‌کند
a = "hello world python"
print(a.title()) # Hello World Python
  • swapcase: حروف بزرگ را کوچک و حروف کوچک را بزرگ می‌کند
a = "Hello World"
print(a.swapcase()) # hELLO wORLD
  • isspace: اگر رشته فقط شامل فاصله باشد، مقدار True را برمی‌گرداند
a = "   "
print(a.isspace()) # True
b = "hello world"
print(b.isspace()) # False
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • isalnum(): اگر رشته شامل حروف و اعداد باشد، مقدار True را برمی‌گرداند
a = "Hello123"
print(a.isalnum()) # True
b = "Hello World"
print(b.isalnum()) # False
  • lstrip(): حذف کردن اسپیس از سمت چپ رشته
a = "   Hello World"
print(a.lstrip()) # Hello World
  • rstrip(): حذف کردن اسپیس از سمت راست رشته
a = "Hello World   "
print(a.rstrip()) # Hello World
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Modify Strings

  • rfind(input): به دنبال input در رشته می‌گردد و آخرین index آن را برمی‌گرداند
a = "hello world hello python"
print(a.rfind("hello")) # 12
  • index(input): مشابه find اما اگر input پیدا نشود، خطا می‌دهد
a = "hello world"
print(a.index("world")) # 6
  • join(iterable): رشته‌ها را با separator مشخص شده به هم متصل می‌کند
words = ["hello", "world", "python"]
result = "-".join(words)
print(result) # hello-world-python
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Dictionaries | دیکشنری‌ها


مدرس: معین آعلی

تابستان ۱۴۰۴

کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Dictionary

از دیکشنری‌ها برای ذخیره مقادیر داده در جفت‌های key:value استفاده می‌شود.

testdict = {
  "name": "moeein",
  "age": 22,
  "family": "aali",
  "married": False,
  "friends": ["saeed", "amirhossein"]
}
print(testdict["name"]) # moeein
print(testdict["age"]) # 22
print(testdict["family"]) # aali
print(testdict["married"]) # False
  • در دیکشنری‌ها ترتیب ثابت است.
  • در دیکشنری‌ها مقادیر قابل تغییر هستند.
  • در دیکشنری‌ها کلید تکراری مجاز نیست!
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Dictionary Length

  • تابع len برای دیکشنری‌ها تعداد کلیدها را برمی‌گرداند:
testdict = {
  "name": "moeein",
  "age": 22,
  "family": "aali",
  "married": False
}

print(len(testdict))  # 4
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Accessing Items

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

روش اول:

x = thisdict["model"]

روش دوم:

x = thisdict.get("model")
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Get Keys and Values

testdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
  • Get Keys:

mykeys = testdict.keys()

print(mykeys) # dict_keys(['brand', 'model', 'year'])
  • Get Values:

x = car.values() 

print(x) # dict_values(['Ford', 'Mustang', 1964])
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Change & Add Items

  • Change Values

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict["year"] = 2018
  • Update Dictionary

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
thisdict.update({"year": 2020, "brand": "bmw"}) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Remove Items

  • pop(input): این متد کلید input را حذف می‌کند.
thisdict = {
  "brand": "Ford",
  "model": "Mustang"
}
thisdict.pop("model")
print(thisdict) 
  • clear: این متد تمامی کلید‌ها را پاک می‌کند
thisdict = {
  "brand": "Ford",
  "model": "Mustang"
}
thisdict.clear()
print(thisdict) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Loop Dictionaries

loop on keys:

  • روش اول:
for x in thisdict:
  print(x) 
  • روش دوم:
for x in thisdict.keys():
  print(x) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Loop Dictionaries

loop on values:

  • روش اول:
for x in thisdict:
  print(thisdict[x]) 
  • روش دوم:
for x in thisdict.values():
  print(x) 
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Loop Dictionaries

loop on keys and values:

for x, y in thisdict.items():
  print(x, y) 
  • در ادامه با خروجی متد items که از نوع tupple است، آشنا خواهیم شد...
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Copy Dictionaries

روش اول: استفاده از متد copy

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = thisdict.copy()

روش دوم: استفاده از dict

thisdict = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}
mydict = dict(thisdict)
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Nested Dictionaries

myfamily = {
  "child1" : {
    "name" : "Emil",
    "year" : 2004
  },
  "child2" : {
    "name" : "Tobias",
    "year" : 2007
  },
  "child3" : {
    "name" : "Linus",
    "year" : 2011
  }
} 
Access Items:
print(myfamily["child2"]["name"])
کارسوق ملی فراگیر | کد مخفی
مدرس: معین آعلی

Dictionary Methods

  • fromkeys(keys,values): یک دیکشنری جدید با استفاده از کلیدها و مقادیر داده شده می‌سازد:
dict3 = dict.fromkeys(dict1.keys(), dict2.values())
  • setdefault(key,defaultValue): اگر کلید داده شده در دیکشنری وجود داشته باشد، مقدار آن را برمی‌گرداند. در غیر این صورت مقدار دیفالت داده شده را برای آن ثبت می‌کند.
car = {
  "brand": "Ford",
  "model": "Mustang",
  "year": 1964
}

x = car.setdefault("color", "white")

print(x) # white
کارسوق ملی فراگیر | کد مخفی