مقدمات پایتون
جلسه اول - مقدمات پایتون
مرجع کامل: انواع داده، متغیرها، قواعد نامگذاری، کامنت، توابع type، input و print - کدها قابل کپی هستند.
انواع داده در پایتون
داده (Value) به مقدار واقعیای گفته میشود که یک متغیر نمایانگر آن است.
هر داده بیانگر یک واحد اطلاعاتی است که میتواند عدد، متن، علامت یا ترکیبی از آنها باشد.
در برنامهنویسی، دادهها اساس پردازش و تحلیل اطلاعات را تشکیل میدهند و بدون آنها هیچ محاسبه یا نتیجهای ممکن نیست.
بهطور کلی، value نشاندهندهی محتوای ذخیرهشده در حافظه است که برنامه برای انجام عملیات منطقی و محاسباتی از آن استفاده میکند.
انواع دادههای داخلی در پایتون
- اعداد (Numeric Types)
- متن (Text Type)
- لیستها (List Type)
- تاپلها (Tuple Type)
- مجموعهها (Set Type)
- دیکشنریها (Dictionary Type)
- نوع بولی (Boolean Type)
1. اعداد (Numeric Types)
int
int مخفف integer به معنی «عدد صحیح» است.
در پایتون از نوع دادهی int برای ذخیرهی اعداد بدون قسمت اعشاری استفاده
میشود.
این اعداد میتوانند مثبت، منفی یا صفر باشند. میتوان روی آنها عملیات ریاضی مثل جمع، تفریق و ضرب انجام داد.
نکته: اگر یک عدد اعشاری به int بدهیم، پایتون قسمت اعشاری
را حذف کرده و فقط عدد صحیح را برمیگرداند.
a = 15
b = -10
c = int(2.5) # خروجی فقط قسمت صحیح را نگه میدارد یعنی 2
float
Float (اعشاری)، مخفف عبارت «Floating-point»، یک نوع داده است که برای ذخیره اعداد اعشاری در برنامهنویسی استفاده میشود.
برخلاف اعداد صحیح (Integer) که اعداد کامل را ذخیره میکنند، Float میتوانند مقادیر کسری را نشان دهند و طیف وسیعی از اعداد را پشتیبانی کنند.
نام «Floating-point» از این واقعیت ناشی میشود که نقطه اعشار بسته به مقدار و دقت موردنیاز میتواند به موقعیتهای مختلف در داخل عدد شناور شود.
a = 3.14
b = -2.5
print(a) # output: 3.14
print(b) # output: -2.5
نمایش با تعداد اعشار دلخواه:
c = 0.3
print(f"{c:.2f}") # دو رقم اعشار -> 0.30
print(round(1.23456789, 4)) # گرد کردن تا 4 رقم اعشار -> 1.2346
2. متن (Text Type)
در پایتون، نوع دادهی متنی یا رشتهای با str نمایش داده میشود و برای
ذخیره کردن حروف، کلمات یا جملات استفاده میشود.
رشتهها میتوانند شامل حروف، اعداد، علامتها و فاصلهها باشند و در داخل کوتیشن تکی ' ' یا دوتایی " " نوشته میشوند.
نکات مهم:
- رشتهها قابل تغییر نیستند (immutable)؛ یعنی بعد از ساخت نمیتوان مستقیم کاراکترها را تغییر داد، ولی میتوان رشتهی جدید ساخت.
- میتوان روی رشتهها عملیاتهای مختلف انجام داد، مثل ترکیب کردن (+)، تکرار (*)، برش (slicing) و غیره.
text1 = "hello"
text2 = "world"
print(text1 + " " + text2) # خروجی: hello world
print(text1 * 3) # خروجی: hellohellohello
print(text2[0:2]) # خروجی: wo
قواعد نامگذاری متغیرها در پایتون (Variable Name Rules)
شروع با حرف یا underscore
- نام متغیر باید با حرف (a-z, A-Z) یا خط زیر _ شروع شود.
- نمیتواند با عدد شروع شود.
age = 25 # درست
_name = "Hamid" # درست
# 1st_number = 10 # غلط
استفاده از حروف، اعداد و underscore
بعد از حرف اول میتوان از حروف، اعداد یا _ استفاده کرد.
student1 = "Ali"
score_2025 = 95
نبودن فاصله و کاراکترهای خاص
نام متغیر نباید فضا، علامتگذاری یا کاراکترهای خاص مثل @, #, ! داشته باشد.
# user-name = "Ali" # غلط
user_name = "Ali" # درست
نبودن کلمات کلیدی پایتون
نام متغیر نمیتواند همانند کلمات رزرو شده پایتون باشد (for, if, class, ...).
# for = 10 # غلط
my_for = 10 # درست
حساسیت به حروف بزرگ و کوچک
age و Age دو متغیر متمایز هستند.
💡 نکته: برای خوانایی بهتر، معمولاً از snake_case استفاده میکنند
first_name = "Hamid"
total_score = 100
snake_case یک سبک نامگذاری متغیرها و توابع در برنامهنویسی است که در آن:
- تمام حروف کوچک هستند.
- برای جدا کردن کلمات از underscore استفاده میشود.
مزیت: خوانایی بالا و استاندارد در پایتون و بسیاری از پروژهها
توابع اصلی
تابع type() در پایتون
تابع type() برای مشخص کردن نوع دادهی یک متغیر یا مقدار استفاده میشود.
این متد به شما میگوید که مقدار مورد نظر از چه نوع دادهای است، مثل int، float، str، list و غیره.
به زبان ساده، وقتی میخواهید مطمئن شوید یک متغیر چه نوع دادهای دارد، از type() استفاده میکنید.
x = 10
y = 3.14
name = "Ali"
fruits = ["apple", "banana"]
print(type(x)) # خروجی:
print(type(y)) # خروجی:
print(type(name)) # خروجی:
print(type(fruits)) # خروجی:
تابع input
تابع input() در پایتون برای گرفتن ورودی از کاربر استفاده میشه.
وقتی برنامه به input() میرسه، منتظر میمونه تا کاربر چیزی تایپ کنه و
Enter بزنه، بعد اون مقدار رو به صورت رشته (string) برمیگردونه.
name = input("Enter your name: ")
نکته مهم:
تابع input() ورودی رو همیشه به صورت رشته (str) برمیگردونه. اگر عدد
خواستی، باید تبدیلش کنی به عدد:
age = int(input(prompt="Enter your age: "))
تابع print
تابع print() در پایتون برای نمایش خروجی روی صفحه استفاده میشه.
هر چیزی داخل پرانتز باشه (متن، عدد، متغیر و...) رو چاپ میکنه.
print("Hello, Hamid!")
# خروجی:
# Hello, Hamid!
میتونی چند تا مقدار هم با هم چاپ کنی:
age = int(input(prompt="Enter your age: "))
print("Your age is:", age)
# خروجی:
# Your age is: 18
نکته: تابع print() خودش بین آیتمها یه فاصله (space)
میذاره
انواع فرمتهای خروجی
در پایتون، تابع print() برای نمایش دادهها روی خروجی استفاده میشود.
گاهی لازم است متنها و مقادیر متغیرها را بهصورت قالببندیشده نمایش دهیم، به این کار فرمتدهی (Formatting) گفته میشود.
۱. استفاده از ویرگول (,)
سادهترین روش برای چاپ چند مقدار در کنار هم استفاده از ویرگول است. پایتون بهصورت خودکار بین مقادیر یک فاصله قرار میدهد.
name = "Hamid"
age = 20
print("Name:", name, "Age:", age)
# خروجی:
# Name: Hamid Age: 20
۲. اتصال رشتهها با +
در این روش رشتهها با علامت + به هم متصل میشوند. دقت کنید که همهی اجزای عبارت باید از نوع str
باشند، در غیر این صورت باید با str() تبدیل شوند.
name = "Hamid"
print("Hello " + name + "!")
# خروجی:
# Hello Hamid!
۳. استفاده از f-string (روش جدید و پرکاربرد)
از نسخهی ۳.۶ پایتون به بعد میتوان از f-string استفاده کرد. کافی است پیش از رشته حرف f قرار دهید و
متغیرها را داخل {} بنویسید.
name = "Hamid"
age = 20
print(f"My name is {name} and I am {age} years old.")
# خروجی:
# My name is Hamid and I am 20 years old.
حتی میتوان عملیات ریاضی یا توابع را نیز درون {} نوشت:
print(f"Next year I will be {age + 1}.")
۴. استفاده از متد format()
در این روش، داخل رشته از {} بهعنوان جاینگهدار (Placeholder) استفاده
میشود و مقادیر با متد format() جایگزین میگردند.
name = "Hamid"
age = 20
print("My name is {} and I am {} years old.".format(name, age))
# خروجی:
# My name is Hamid and I am 20 years old.
میتوان از شمارهگذاری یا نامگذاری نیز استفاده کرد:
print("My name is {0} and I am {1}. {0} loves Python.".format(name, age))
print("My name is {n} and I am {a} years old.".format(n=name, a=age))
پارامترهای print()
نکته: تابع print() در پایتون برای نمایش دادهها در خروجی
بهکار میرود، اما عملکرد آن تنها به چاپ ساده محدود نمیشود.
این تابع چندین آرگومان کلیدی (Keyword Argument) دارد که به کمک آنها میتوان نحوهی نمایش خروجی را بهصورت دقیق و دلخواه تنظیم کرد.
شکل کلی:
print(*objects, sep=' ', end='\n')
- *objects
- چیزهایی که میخوای چاپ بشن (میتونی چند تا مقدار با کاما بنویسی)
- sep
- جداکننده بین آیتمها (پیشفرض یک فاصله " ")
- end
- چیزی که در انتهای چاپ میاد (پیشفرض خط جدید "\n")
print("Hi", "Hamid")
# خروجی: Hi Hamid
print("Hi", "Hamid", sep="-")
# خروجی: Hi-Hamid
print("Hi", end="💖")
print("Hamid")
# خروجی: Hi💖Hamid
💡 تمرینها و سوالات
در این بخش 20 سوال از سطح ساده تا پیشرفته آماده شده است. سعی کنید ابتدا خودتان حل کنید و سپس پاسخ را مشاهده کنید.
سوال 1: محاسبه مجموع دو عدد
دو عدد صحیح از کاربر دریافت کنید و مجموع آنها را نمایش دهید.
# نمونه ورودی:
# عدد اول: 5
# عدد دوم: 3
# نمونه خروجی:
# مجموع: 8
# دریافت دو عدد از کاربر
num1 = int(input("عدد اول: "))
num2 = int(input("عدد دوم: "))
# محاسبه مجموع
total = num1 + num2
# نمایش نتیجه
print(f"مجموع: {total}")
سوال 2: تبدیل دما از سلسیوس به فارنهایت
دمای سلسیوس را از کاربر بگیرید و آن را به فارنهایت تبدیل کنید. فرمول: F = C × 9/5 + 32
# نمونه ورودی:
# دمای سلسیوس: 25
# نمونه خروجی:
# دمای فارنهایت: 77.0
# دریافت دمای سلسیوس
celsius = float(input("دمای سلسیوس: "))
# تبدیل به فارنهایت
fahrenheit = celsius * 9/5 + 32
# نمایش نتیجه
print(f"دمای فارنهایت: {fahrenheit}")
سوال 3: محاسبه مساحت مستطیل
طول و عرض یک مستطیل را دریافت کرده و مساحت آن را محاسبه کنید.
# نمونه ورودی:
# طول: 5
# عرض: 3
# نمونه خروجی:
# مساحت: 15
# دریافت طول و عرض
length = float(input("طول: "))
width = float(input("عرض: "))
# محاسبه مساحت
area = length * width
# نمایش نتیجه
print(f"مساحت: {area}")
سوال 4: تشخیص زوج یا فرد
یک عدد از کاربر بگیرید و مشخص کنید زوج است یا فرد.
# نمونه ورودی:
# عدد: 7
# نمونه خروجی:
# عدد فرد است
# دریافت عدد
number = int(input("عدد: "))
# بررسی زوج یا فرد بودن
if number % 2 == 0:
print("عدد زوج است")
else:
print("عدد فرد است")
سوال 5: محاسبه میانگین سه عدد
سه عدد از کاربر دریافت کنید و میانگین آنها را با دو رقم اعشار نمایش دهید.
# نمونه ورودی:
# عدد 1: 10
# عدد 2: 20
# عدد 3: 25
# نمونه خروجی:
# میانگین: 18.33
# دریافت سه عدد
num1 = float(input("عدد 1: "))
num2 = float(input("عدد 2: "))
num3 = float(input("عدد 3: "))
# محاسبه میانگین
average = (num1 + num2 + num3) / 3
# نمایش با دو رقم اعشار
print(f"میانگین: {average:.2f}")
سوال 6: تبدیل ثانیه به ساعت و دقیقه
تعداد ثانیه را از کاربر بگیرید و آن را به ساعت، دقیقه و ثانیه تبدیل کنید.
# نمونه ورودی:
# تعداد ثانیه: 3665
# نمونه خروجی:
# 1 ساعت و 1 دقیقه و 5 ثانیه
# دریافت تعداد ثانیه
total_seconds = int(input("تعداد ثانیه: "))
# محاسبه ساعت، دقیقه و ثانیه
hours = total_seconds // 3600 # تقسیم صحیح بر 3600
minutes = (total_seconds % 3600) // 60 # باقیمانده تقسیم بر 3600، سپس تقسیم بر 60
seconds = total_seconds % 60 # باقیمانده نهایی
# نمایش نتیجه
print(f"{hours} ساعت و {minutes} دقیقه و {seconds} ثانیه")
سوال 7: بررسی مثبت، منفی یا صفر
یک عدد دریافت کنید و مشخص کنید مثبت، منفی یا صفر است.
# نمونه ورودی:
# عدد: -5
# نمونه خروجی:
# عدد منفی است
# دریافت عدد
number = float(input("عدد: "))
# بررسی و نمایش نتیجه
if number > 0:
print("عدد مثبت است")
elif number < 0:
print("عدد منفی است")
else:
print("عدد صفر است")
سوال 8: محاسبه قدرت عدد
دو عدد پایه و توان را دریافت کنید و نتیجه را نمایش دهید.
# نمونه ورودی:
# پایه: 2
# توان: 3
# نمونه خروجی:
# نتیجه: 8
# دریافت پایه و توان
base = int(input("پایه: "))
power = int(input("توان: "))
# محاسبه قدرت
result = base ** power
# نمایش نتیجه
print(f"نتیجه: {result}")
سوال 9: محاسبه درصد
نمره دانشآموز و نمره کل را دریافت کنید و درصد را محاسبه کنید.
# نمونه ورودی:
# نمره کسب شده: 45
# نمره کل: 60
# نمونه خروجی:
# درصد: 75.00%
# دریافت نمرات
score = float(input("نمره کسب شده: "))
total = float(input("نمره کل: "))
# محاسبه درصد
percentage = (score / total) * 100
# نمایش نتیجه
print(f"درصد: {percentage:.2f}%")
سوال 10: معکوس دو عدد
دو عدد a و b را دریافت کنید و مقادیر آنها را بدون استفاده از متغیر سوم معکوس کنید.
# نمونه ورودی:
# a: 5
# b: 10
# نمونه خروجی:
# بعد از معکوس: a = 10, b = 5
# دریافت دو عدد
a = int(input("a: "))
b = int(input("b: "))
# معکوس کردن بدون متغیر سوم (روش Pythonic)
a, b = b, a
# نمایش نتیجه
print(f"بعد از معکوس: a = {a}, b = {b}")
سوال 11: محاسبه محیط دایره
شعاع دایره را دریافت کنید و محیط آن را محاسبه کنید. (π ≈ 3.14)
# نمونه ورودی:
# شعاع: 5
# نمونه خروجی:
# محیط: 31.40
# تعریف عدد پی
pi = 3.14
# دریافت شعاع
radius = float(input("شعاع: "))
# محاسبه محیط (2 * pi * r)
circumference = 2 * pi * radius
# نمایش نتیجه
print(f"محیط: {circumference:.2f}")
سوال 12: بررسی بزرگترین عدد
سه عدد دریافت کنید و بزرگترین آنها را نمایش دهید.
# نمونه ورودی:
# عدد 1: 15
# عدد 2: 32
# عدد 3: 8
# نمونه خروجی:
# بزرگترین: 32
# دریافت سه عدد
num1 = int(input("عدد 1: "))
num2 = int(input("عدد 2: "))
num3 = int(input("عدد 3: "))
# پیدا کردن بزرگترین با شرطهای تو در تو
if num1 >= num2 and num1 >= num3:
max_num = num1
elif num2 >= num1 and num2 >= num3:
max_num = num2
else:
max_num = num3
# نمایش نتیجه
print(f"بزرگترین: {max_num}")
سوال 13: محاسبه BMI
وزن (کیلوگرم) و قد (متر) را دریافت کنید و شاخص توده بدنی (BMI) را محاسبه کنید. فرمول: BMI = وزن / (قد²)
# نمونه ورودی:
# وزن: 70
# قد: 1.75
# نمونه خروجی:
# BMI: 22.86
# دریافت وزن و قد
weight = float(input("وزن (کیلوگرم): "))
height = float(input("قد (متر): "))
# محاسبه BMI
bmi = weight / (height ** 2)
# نمایش نتیجه
print(f"BMI: {bmi:.2f}")
سوال 14: تشخیص سال کبیسه
یک سال را دریافت کنید و مشخص کنید کبیسه است یا خیر. (سالی کبیسه است که بر 4 بخشپذیر باشد اما بر 100 نه، یا بر 400 بخشپذیر باشد)
# نمونه ورودی:
# سال: 2024
# نمونه خروجی:
# سال 2024 کبیسه است
# دریافت سال
year = int(input("سال: "))
# بررسی شرایط کبیسه بودن
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
print(f"سال {year} کبیسه است")
else:
print(f"سال {year} کبیسه نیست")
سوال 15: محاسبه فاکتوریل (الگوریتمی)
یک عدد صحیح مثبت دریافت کنید و فاکتوریل آن را محاسبه کنید. (بدون استفاده از حلقه، فقط با عملگرها)
# نمونه ورودی:
# عدد: 5
# نمونه خروجی:
# فاکتوریل 5 برابر است با: 120
# دریافت عدد
n = int(input("عدد: "))
# محاسبه فاکتوریل برای عدد 5 (مثال ثابت)
# این روش محدود است و فقط برای مثال است
# برای حل کامل نیاز به حلقه داریم که در جلسات بعد یاد میگیریم
if n == 1:
factorial = 1
elif n == 2:
factorial = 2
elif n == 3:
factorial = 6
elif n == 4:
factorial = 24
elif n == 5:
factorial = 120
else:
factorial = "نیاز به حلقه دارد"
print(f"فاکتوریل {n} برابر است با: {factorial}")
سوال 16: تبدیل تومان به دلار
مبلغی به تومان و نرخ دلار را دریافت کنید و معادل دلاری آن را محاسبه کنید.
# نمونه ورودی:
# مبلغ به تومان: 50000
# نرخ دلار: 50000
# نمونه خروجی:
# معادل: 1.00 دلار
# دریافت مبلغ و نرخ
toman = float(input("مبلغ به تومان: "))
rate = float(input("نرخ دلار: "))
# محاسبه معادل دلاری
dollar = toman / rate
# نمایش نتیجه
print(f"معادل: {dollar:.2f} دلار")
سوال 17: محاسبه تخفیف
قیمت اصلی و درصد تخفیف را دریافت کنید و قیمت نهایی را محاسبه کنید.
# نمونه ورودی:
# قیمت اصلی: 1000
# درصد تخفیف: 20
# نمونه خروجی:
# قیمت نهایی: 800.00
# دریافت قیمت و درصد تخفیف
price = float(input("قیمت اصلی: "))
discount_percent = float(input("درصد تخفیف: "))
# محاسبه مبلغ تخفیف
discount_amount = price * (discount_percent / 100)
# محاسبه قیمت نهایی
final_price = price - discount_amount
# نمایش نتیجه
print(f"قیمت نهایی: {final_price:.2f}")
سوال 18: بررسی قابلیت رأی دادن
سن فردی را دریافت کنید و بگویید آیا میتواند رأی دهد یا خیر. (حداقل سن 18 سال)
# نمونه ورودی:
# سن: 16
# نمونه خروجی:
# شما نمیتوانید رأی دهید
# دریافت سن
age = int(input("سن: "))
# بررسی شرایط رأی دادن
if age >= 18:
print("شما میتوانید رأی دهید")
else:
print("شما نمیتوانید رأی دهید")
سوال 19: تشخیص نوع مثلث
سه ضلع مثلث را دریافت کنید و نوع مثلث را مشخص کنید (متساویالاضلاع، متساویالساقین، مختلفالاضلاع).
# نمونه ورودی:
# ضلع 1: 5
# ضلع 2: 5
# ضلع 3: 7
# نمونه خروجی:
# مثلث متساویالساقین
# دریافت سه ضلع
side1 = float(input("ضلع 1: "))
side2 = float(input("ضلع 2: "))
side3 = float(input("ضلع 3: "))
# تشخیص نوع مثلث
if side1 == side2 == side3:
print("مثلث متساویالاضلاع")
elif side1 == side2 or side2 == side3 or side1 == side3:
print("مثلث متساویالساقین")
else:
print("مثلث مختلفالاضلاع")
سوال 20: محاسبه مجموع ارقام یک عدد دو رقمی
یک عدد دو رقمی دریافت کنید و مجموع ارقام آن را محاسبه کنید.
# نمونه ورودی:
# عدد: 47
# نمونه خروجی:
# مجموع ارقام: 11
# دریافت عدد دو رقمی
number = int(input("عدد: "))
# جدا کردن رقم یکان (باقیمانده تقسیم بر 10)
ones = number % 10
# جدا کردن رقم دهگان (تقسیم صحیح بر 10)
tens = number // 10
# محاسبه مجموع
digit_sum = ones + tens
# نمایش نتیجه
print(f"مجموع ارقام: {digit_sum}")
کامنت
در پایتون،
#برای نوشتن توضیح یا کامنت استفاده میشود که توسط برنامه نادیده گرفته میشود و فقط برای خوانایی و توضیح کد به کار میرود.اگر بخواهیم چند خط پشت سر هم کامنت کنیم، میتوانیم قبل از هر خط از
#استفاده کنیم یا از کامنت چندخطی با سهگانه کوتیشن"""یا'''بهره ببریم.کامنتهای چند خطی معمولاً برای توضیح کامل بخشهای بزرگ کد یا مستندسازی کاربرد دارند.