برنامه‌نویسی پایتون فهرست مطالب
فصل ۱

اولین قدم‌ها

هر برنامه‌ای در دنیا سه کار انجام می‌دهد: چیزی می‌گیرد، کاری روی آن انجام می‌دهد و چیزی برمی‌گرداند. در این فصل هر سه را یاد می‌گیرید.

در این فصل می‌خوانید
  1. دستور print
  2. پارامترهای sep و end
  3. توضیحات
  4. متغیرها
  5. قوانین نام‌گذاری
  6. چهار نوع داده پایه
  7. تابع type
  8. گرفتن ورودی از کاربر
  9. تبدیل نوع
  10. اولین برنامه واقعی

۱. دستور print

print یک تابع است. تابع یعنی دستوری که یک اسم دارد و بعد از اسمش پرانتز می‌گذاریم و چیزی را داخل پرانتز به آن می‌دهیم. کار این یکی ساده است: هر چه به آن بدهید روی صفحه چاپ می‌کند و بعد به خط بعد می‌رود.

# The classic first program.
# print() writes its arguments to the screen and then moves to a new line.
print('Hello World!')

اولین برنامه: نمونه 01_hello_world.py

Hello World!

شرح مثال

# Every print() call writes one line, so these five calls draw a triangle.
print('*')
print('**')
print('***')
print('****')
print('*****')

# print() with no argument writes an empty line.
print()

# A single print() can take several values; they are separated by a space.
print('Kadoos', 'Institute', 'Rasht')

چند خط و چند مقدار: نمونه 02_print_lines.py

*
**
***
****
*****

Kadoos Institute Rasht

دو نکته در همین خروجی دیده می‌شود. اول اینکه print() خالی یک خط خالی چاپ می‌کند. دوم اینکه وقتی چند مقدار را با ویرگول به print می‌دهید، بینشان خودبه‌خود یک فاصله می‌گذارد.

۲. پارامترهای sep و end

آن فاصله بین مقدارها و آن رفتن به خط بعد، هر دو قابل تغییرند. دو پارامتر برای این کار وجود دارد: sep یعنی جداکننده و end یعنی چیزی که در پایان چاپ می‌شود.

# 'sep' changes the separator and 'end' changes what is printed at the end.
print('2026', '09', '08', sep='-')
print('No new line here ->', end=' ')
print('...the next print continues on the same line.')

جداکننده و پایان خط: نمونه 02_print_lines.py

2026-09-08
No new line here -> ...the next print continues on the same line.

شرح مثال

کجا به کار می‌آید

end='' در فصل هفتم، وقتی بخواهید ستاره‌ها را کنار هم و در یک خط چاپ کنید، حیاتی می‌شود. در همین مرحله آن را به خاطر بسپارید.

۳. توضیحات

هر چیزی که بعد از علامت # بیاید، پایتون کاملاً نادیده می‌گیرد. به این توضیح یا comment می‌گویند و برای آدم‌ها نوشته می‌شود، نه برای کامپیوتر.

# Everything after a '#' on a line is a comment: Python ignores it.
# Comments explain WHY the code does something, not WHAT it does.

print('Hello Kadoos!')  # a comment can also sit at the end of a line

# Python has no real multi-line comment, but a triple-quoted string that is not
# assigned to anything is often used for the same purpose.
'''
These three lines are a string that nobody uses,
so in practice they behave like a multi-line comment.
'''

print('The program continues here.')

توضیح یک‌خطی و چندخطی: نمونه 06_comments.py

شرح مثال

توضیح خوب چه شکلی است

توضیح بد: # adds one to x در حالی که خط کد x = x + 1 است. این را خودمان می‌بینیم. توضیح خوب: # the counter starts at 1 because the user counts from 1. یعنی چرا، نه چه.

۴. متغیرها

متغیر یک نام است که به یک مقدار اشاره می‌کند. مثل برچسبی که روی یک جعبه می‌چسبانید تا بعداً بدانید داخلش چیست. با علامت مساوی ساخته می‌شود: سمت چپ نام، سمت راست مقدار.

# A variable is a name that refers to a value.
name = 'Kadoos'      # text
age = 18             # whole number
score = 19.5         # number with a decimal part
single = True        # True or False

print(name)
print(age)
print(score)
print(single)

# A variable can be re-assigned at any time.
age = 19
print('The new age is:', age)

ساختن و چاپ متغیر: نمونه 03_variables.py

Kadoos
18
19.5
True
The new age is: 19

شرح مثال

فرق دو خط زیر را خوب ببینید

print(name) مقدار متغیر را چاپ می‌کند، یعنی Kadoos. اما print('name') خود کلمه name را چاپ می‌کند. گیومه یعنی «این یک متن ثابت است»، بدون گیومه یعنی «این نام یک متغیر است».

۵. قوانین نام‌گذاری

هر نامی مجاز نیست. قوانین اجباری پایتون این موارد هستند:

و این موارد قانون اجباری نیستند، ولی عرف حرفه‌ای‌ها هستند:

۶. چهار نوع داده پایه

هر مقداری در پایتون یک نوع دارد. نوع تعیین می‌کند چه کارهایی روی آن مقدار مجاز است. چهار نوع پایه که از همین امروز لازمتان می‌شود این موارد هستند:

# Python has four basic (scalar) data types that we use from day one.
name = 'Kadoos'      # str   -> text, always inside quotes
age = 18             # int   -> integer number
score = 19.5         # float -> decimal number
single = True        # bool  -> only True or False

print(name, age, score, single)

# Single quotes and double quotes are equivalent in Python.
city = "Rasht"
print(city)

چهار نوع پایه: نمونه 04_data_types.py

نوعنام کاملیعنی چهنمونه
strstringرشته یا متن، همیشه داخل گیومه'Kadoos'
intintegerعدد صحیح، بدون اعشار18
floatfloating pointعدد اعشاری19.5
boolbooleanفقط دو مقدار: درست یا نادرستTrue
دو دام کوچک

اول: True و False با حرف بزرگ شروع می‌شوند. true در پایتون وجود ندارد و خطا ایجاد می‌کند. دوم: 18 و '18' دو چیز کاملاً متفاوت‌اند. اولی عدد است و می‌شود با آن حساب کرد، دومی متن است و فقط شکل ظاهری‌اش عدد است.

۷. تابع type

اگر نمی‌دانید یک مقدار چه نوعی دارد، از پایتون بپرسید. تابع type دقیقاً همین کار را می‌کند.

# type() tells us which data type a value belongs to.
name = 'Kadoos'
age = 18
score = 19.5
single = True

print(type(name))    # <class 'str'>
print(type(age))     # <class 'int'>
print(type(score))   # <class 'float'>
print(type(single))  # <class 'bool'>

پرسیدن نوع یک مقدار: نمونه 05_type_function.py

<class 'str'>
<class 'int'>
<class 'float'>
<class 'bool'>

کلمه class در خروجی فعلاً مهم نیست؛ در فصل بیست و یکم معنایش را می‌فهمید. آنچه الان مهم است، کلمه بعد از آن است. type ابزار اصلی شما برای عیب‌یابی است: هر وقت برنامه رفتار عجیبی داشت، اولین کاری که باید بکنید این است که نوع متغیرهایتان را چاپ کنید.

۸. گرفتن ورودی از کاربر

تا اینجا برنامه‌های ما هر بار دقیقاً یک کار می‌کردند. تابع input است که برنامه را زنده می‌کند: پیامی نشان می‌دهد، منتظر می‌ماند تا کاربر چیزی تایپ کند و اینتر بزند، و بعد آنچه تایپ شده را برمی‌گرداند.

# input() shows a message, waits for the user to type something and press Enter,
# then returns whatever was typed AS TEXT (str).
user_input = input('Please enter your name: ')

print(user_input)
print(type(user_input))  # always <class 'str'>

اولین ورودی: نمونه 07_input.py

Please enter your name: Ali
Ali
<class 'str'>

شرح مثال

# Reading a value and using it inside a message.
user_input = input('Please enter your name: ')

# print() separates its arguments with a space by default.
print('Welcome', user_input, '!')

# With sep='' there is no space, so the exclamation mark sticks to the name.
print('Welcome ', user_input, '!', sep='')

استفاده از ورودی داخل پیام: نمونه 08_input_welcome.py

Please enter your name: Ali
Welcome Ali !
Welcome Ali!

فرق دو خروجی را ببینید. در خط اول، علامت تعجب با یک فاصله از نام جدا شده است، چون print بین مقدارها فاصله می‌گذارد. در خط دوم با sep='' آن فاصله برداشته شده است. در فصل سوم راه تمیزتری برای همین کار می‌بینید که نامش f-string است.

۹. تبدیل نوع

حالا به مهم‌ترین مشکل روز اول می‌رسیم. اگر کاربر عدد ۵ را تایپ کند، آنچه شما می‌گیرید عدد ۵ نیست، رشته '5' است. و رشته را نمی‌شود جمع زد. راه حل، تبدیل نوع است.

# input() always returns a string, even when the user types digits.
# To calculate with it we must convert (cast) it to a number first.
user_input = input('Enter a number: ')

print('Before conversion:', type(user_input))   # <class 'str'>

number = int(user_input)                        # str -> int
print('After conversion: ', type(number))       # <class 'int'>

number = number + 2
print('Your number plus 2 is:', number)

# Other useful conversions:
print(float('3.5'))   # str   -> float
print(int(3.9))       # float -> int (the decimal part is cut off, NOT rounded)
print(str(25))        # int   -> str

تبدیل نوع: نمونه 09_type_conversion.py

Enter a number: 7
Before conversion: <class 'str'>
After conversion:  <class 'int'>
Your number plus 2 is: 9
3.5
3
25

شرح مثال

اشتباه کلاسیک روز اول

اگر تبدیل را فراموش کنید و بنویسید a = input('a: ') و بعد a + 1، پایتون خطای TypeError می‌دهد: نمی‌شود رشته را با عدد جمع زد. اما بدتر از آن، اگر هر دو ورودی رشته باشند، '2' + '3' خطا نمی‌دهد و نتیجه‌اش '23' است، چون جمع دو رشته یعنی چسباندنشان به هم. برنامه اجرا می‌شود ولی جواب غلط می‌دهد و این بدترین نوع خطاست.

۱۰. اولین برنامه واقعی

همه چیزهایی که تا اینجا یاد گرفتیم را کنار هم بگذاریم: دو عدد از کاربر بگیریم و مجموعشان را چاپ کنیم.

# First complete mini program: read two numbers and print their sum.
# float() is used instead of int() so the user may also enter 3.5

user_input = input('Enter the first number: ')
num1 = float(user_input)

user_input = input('Enter the second number: ')
num2 = float(user_input)

total = num1 + num2

print('The sum is:', total)

جمع دو عدد: نمونه 10_sum_of_two_numbers.py

Enter the first number: 3.5
Enter the second number: 2
The sum is: 5.5

شرح مثال

فایل‌های تمرینی این فصل

پوشه S01-first-steps شامل نمونه‌های 01_hello_world.py تا 10_sum_of_two_numbers.py.

خلاصه فصل

ابزاروظیفه آن
print(x)چاپ روی صفحه و رفتن به خط بعد
sep و endتغییر جداکننده مقدارها و تغییر پایان خط
#توضیح. پایتون تا آخر آن خط را نادیده می‌گیرد
x = 5ساختن متغیر: مقدار سمت راست را در نام سمت چپ بریز
str int float boolچهار نوع داده پایه
type(x)گفتن نوع یک مقدار
input(msg)گرفتن ورودی از کاربر. خروجی همیشه رشته است
int(x) float(x) str(x)تبدیل نوع

تمرین‌های فصل یک

  1. نام، نام خانوادگی و شهر خود را در سه خط جداگانه چاپ کنید.
  2. متغیرهای name و age و city را بسازید و در یک جمله چاپشان کنید.
  3. نام کاربر را بگیرید و پیام Hello <name>, welcome to Kadoos! را چاپ کنید.
  4. دو عدد از کاربر بگیرید و تفاضلشان را چاپ کنید.
  5. یک عدد از کاربر بگیرید و خود عدد، دو برابرش و سه برابرش را چاپ کنید.
  6. نوع مقدارهای '12' و 12 و 12.0 و True را چاپ کنید و توضیح دهید فرق '12' با 12 چیست.
  7. دمای هوا را به سانتی‌گراد از کاربر بگیرید و به فارنهایت تبدیل و چاپ کنید. فرمول: F = C * 9 / 5 + 32
  8. تاریخ امروز را با sep='/' در یک print چاپ کنید، به شکل سال و ماه و روز.
فصل قبل: مقدمه و نصب فصل بعد: عملگرها