۱

اولین برنامه و متغیرها

First Program & Variables

پایتون یک زبان سطح بالا، تفسیری، شی‌گرا و همه‌منظوره است که توسط گیدو ون روسوم طراحی شد. دلیل محبوبیت آن در مهندسی، سادگی سینتکس، قدرت کتابخانه‌ها و کاربرد مستقیم در محاسبات علمی و هوش مصنوعی است.

بریم سراغ اولین برنامه! در VS Code یا Spyder یا py3roid خود بنویسید:

python
print("Hello, I can write program!!")
Hello, I can write program!!

تبریک می‌گویم، شما رسماً یک برنامه‌نویس شدید! 🎉

حالا مهندسان عزیز، بیایید با هم پیش برویم. یک ورق کاغذ در جلو خود بگذارید و فرض کنید در حال حل یک مسئله عمرانی هستید. پارامترها را در ورقه کاغذ چطور تعریف می‌کنید؟ خب معلومه، با متغیر:

🐍 قاعده نام‌گذاری متغیرها در پایتون: باید همانند یک مار پایتون فکر کنید!
  • فقط حروف انگلیسی، اعداد و آندرلاین _ مجاز است
  • نباید با عدد شروع شود (2name ❌ — name2 ✅)
  • حروف بزرگ و کوچک متفاوت هستند (Age ≠ age)
  • از کلمات رزرو شده پایتون مثل if و for استفاده نکنید
python
# تعریف متغیر با مقدار عددی
x = 5
y = 10

# تعریف متغیر با مقدار رشته‌ای
name = "Shayan"

# تعریف متغیر با مقدار اعشاری
pi = 3.14

print(x)       # 5
print(name)    # Shayan
5
Shayan

انواع داده‌های پایه: (روی کارت‌ها کلیک کنید)

🔢
عدد صحیح
int
اعداد صحیح مثل 5، -3، 1000 — شامل اعشار نمی‌شوند
💧
عدد اعشاری
float
اعداد اعشاری مثل 3.14، -0.5 — با یک نقطه مشخص می‌شوند
📝
رشته
str
متن بین دو کوتیشن تکی یا دوتایی: "Hello" یا 'Hi'
✅
بولین
bool
فقط دو مقدار منطقی: True یا False — معادل 1 و 0
۲

اعداد در پایتون

Numbers

پایتون سه نوع عدد اصلی دارد: صحیح (int)، اعشاری (float) و مختلط (complex). برای کارهای مهندسی، دو نوع اول کاربرد بیشتری دارند.

📌 یادت باشه مهندس عزیز:
  • int — اعداد صحیح از منفی بی‌نهایت تا مثبت بی‌نهایت، اما بدون اعشار
  • float — همون اعداد قبلی، ولی دیگه با خیال راحت می‌تونی یک . کنار عددت بذاری

مثال — محاسبه ساده:

python
a = 10
b = 3

print(a + b)   # 13
print(a - b)   # 7
print(a * b)   # 30
print(a / b)   # 3.3333...
print(a // b)  # 3  (تقسیم صحیح)
print(a % b)   # 1  (باقیمانده)
print(a ** b)  # 1000 (توان)
⚡ نکته مهندسی: برای محاسبات دقیق‌تر در پروژه‌های واقعی، حتماً از کتابخانه math استفاده کنید. برای مثال math.sqrt(16) ریشه دوم ۱۶ را برمی‌گرداند.
+
-
×
÷
%
**

مکعب سه‌بعدی عملگرهای ریاضی — موس را روی مکعب نگه دارید تا سریع‌تر بچرخد

۳

رشته‌ها

Strings

یادت هست با یک پیام برنامه‌نویس شدی؟ ما تمام پیام‌هایمان را به صورت رشته (string) می‌نویسیم و برای ساخت رشته از نمادهای " " یا ' ' استفاده می‌کنیم. تابع مخصوص این کار هم وجود دارد (str()) که جلوتر به آن می‌رسیم.

python
name = "Shayan"
full = 'Civil Engineer'

print(name + " Dolat Yari")
print("=" * 20)
print(len(name))   # 6

# f-string — فرمت‌بندی مدرن
age = 25
print(f"My name is {name} and I am {age}")
Shayan Dolat Yari
====================
6
My name is Shayan and I am 25
🎯 متدهای پرکاربرد رشته: .upper() — .lower() — .strip() — .replace() — .split() — .join()
۴

بولین‌ها

Booleans

بولین‌ها ارزش‌های منطقی هستند که دو مقدار False و True دارند؛ یا به قول خودمانی، معادل 0 و 1 هستند. به ترتیب نوشتم که متوجه بشی. 😄

python
a = 10
b = 20

print(a > b)     # False
print(a < b)     # True
print(bool(0))      # False
print(bool(1))      # True
📌 قانون طلایی: اعداد صفر، رشته‌های خالی، لیست‌های خالی و مقدار None در پایتون معادل False در نظر گرفته می‌شوند. تا همین‌جا کافیه؛ اما اگر نوع دیگری از متغیر داشتیم و از قلم انداختم، می‌توانید به من ایمیل بزنید و بگویید.
۵

عملگرها

Operators

ما چندین نوع عملگر داریم که باید با شکل‌های روی کاغذ مقایسه کنید. خوشبختانه بیشترشان مشابه همان نمادهای ریاضی روی کاغذ مهندسی هستند.

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

عملگرتوضیحمثالنتیجه
+جمع3 + 25
-تفریق3 - 21
*ضرب — ستاره سینمای داستان ما!3 * 26
/تقسیم7 / 23.5
//خارج‌قسمت (تقسیم صحیح)7 // 23
%باقیمانده7 % 21
**توان — دو برابر سینمایی‌تر از ضرب2 ** 38
+=افزایش — متغیر را با مقدار جمع می‌کندx += 5x = x + 5
-=کاهش — مقدار را از متغیر کم می‌کندx -= 3x = x - 3

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

عملگرمعنیمثال
==مساوی5 == 5 → True
!=نامساوی5 != 3 → True
>بزرگ‌تر5 > 3 → True
<کوچک‌تر5 < 3 → False
>=بزرگ‌تر یا مساوی5 >= 5 → True
<=کوچک‌تر یا مساوی5 <= 3 → False

عملگرهای منطقی و احتمال:

and — همواره False است مگر اینکه هر دو گزاره True باشند
or — همواره True است مگر اینکه هر دو گزاره False باشند
not — مقدار را برعکس می‌کند

«بودن یا نبودن؟ مسئله این است!» — و این نقل قول شکسپیر همواره درست است. 😄

python
a = 5
b = 10

print(a > 0 and b > 0)   # True
print(a > 100 or b > 0)  # True
print(not (a > 0))          # False
۶

شرط‌ها

Conditions — if / elif / else

قبل از اینکه بدانیم شرط‌ها چیست، باید بدانید یک شرط زمانی فعال می‌شود که مقدار خروجی ما در آن لحظه از نوع boolean باشد و حتماً باید True باشد تا ما وارد بدنه شرط شویم.

یادتان باشد بدنه شرط از بدنه اصلی ۴ فاصله (Space) یا یک Tab فاصله دارد. خب حالا قبل از شرط چی لازم داریم؟ عملگر! پس اگر عملگرها را بلد نیستی یک دور مرور کن و بعد به این قسمت بیا.

یک گزاره شرطی با if شروع می‌شود و با : تمام می‌شود و وارد بدنه شرط می‌شود. اگر شرط برقرار نشد، می‌توانیم وارد elif شویم که مخفف else if است. اگر هم کلاً دو گزاره شرطی داشتیم، مستقیم وارد else می‌شویم.

python
age = 20

if age >= 18:
    print("You are an adult")
elif age >= 13:
    print("You are a teenager")
else:
    print("You are a child")
You are an adult

مثال مهندسی — بررسی سلامت تیر بتنی:

python
stress = 250   # تنش بر حسب MPa
limit  = 300   # تنش مجاز

if stress < limit:
    print("✅ Safe")
elif stress == limit:
    print("⚠️ At the limit")
else:
    print("❌ Danger")
✅ Safe
۷

حلقه‌ها

Loops — for / while

در پایتون دو نوع حلقه داریم: حلقه شرطی و حلقه شمارنده (سری).

🔁 حلقه شرطی — while: با دستور while آغاز می‌شود و تا وقتی شرط برقرار است ادامه دارد، مگر اینکه دستور break زودتر از موعد حلقه را از کار بیندازد.
🔢 حلقه شمارنده — for: با for شروع می‌شود و یک حلقه شمارنده است که از یک بازه تا بازه دیگر را طی می‌کند و تا پایان بازه ادامه دارد، مگر اینکه break آن را متوقف کند.

حلقه for:

python
# چاپ اعداد 1 تا 5
for i in range(1, 6):
    print(i)

names = ["Ali", "Sara", "Reza"]
for name in names:
    print(name)
1
2
3
4
5
Ali
Sara
Reza

حلقه while:

python
i = 1
while i <= 5:
    print(i)
    i += 1   # معادل i = i + 1
🚨 هشدار: در حلقه while حتماً شرط خروج را کنترل کنید، وگرنه حلقه بی‌نهایت می‌شود. از break برای خروج فوری و از continue برای رد کردن یک دور استفاده کنید.

مثال مهندسی — میانگین تنش ۵ نمونه:

python
stresses = [240, 255, 260, 245, 250]
total = 0

for s in stresses:
    total += s

avg = total / len(stresses)
print(f"Average = {avg} MPa")
Average = 250.0 MPa
۸

ورودی از کاربر

Input

با دستور input() می‌توانیم از کاربر بخواهیم به ما ورودی بدهد و آن را درون یک متغیر ذخیره کنیم.

📌 نکته مهم: همیشه ورودی‌ها جنسشان از رشته (string) است و باید با توابع زیر نوع ورودی را به ورودی موردنظرمان تبدیل کنیم:
  • int() — تبدیل به عدد صحیح
  • float() — تبدیل به عدد اعشاری
  • eval() — تشخیص خودکار نوع
  • bool() — تبدیل به بولین
python
# دریافت نام
name = input("Enter your name: ")
print(f"Hello, {name}!")

# دریافت عدد (باید تبدیل شود)
age = int(input("Enter your age: "))
print(f"Next year you will be {age + 1}")

height = float(input("Enter your height (m): "))
💡 نکته: اگر عدد را تبدیل نکنید، پایتون آن را به عنوان رشته در نظر می‌گیرد و "20" + 1 باعث خطا می‌شود.
۹

توابع

Functions

توابع در پایتون زمانی به سراغشان می‌رویم که بخواهیم یک الگوریتم بسازیم و هرموقع به آن نیاز داشتیم فراخوانی کنیم تا از تکرار حلقه‌ها، شرط‌ها و... جلوگیری کنیم.

توابع بلوک‌هایی از کد هستند که یک کار مشخص را انجام می‌دهند و با کلمه کلیدی def تعریف می‌شوند.

python
# تعریف یک تابع ساده
def greet(name):
    print(f"Hello, {name}!")

greet("Shayan")

# تابع با مقدار بازگشتی
def add(a, b):
    return a + b

result = add(5, 3)
print(result)   # 8

# تابع با مقدار پیش‌فرض
def power(base, exp=2):
    return base ** exp

print(power(5))       # 25
print(power(2, 3))    # 8
Hello, Shayan!
8
25
8

مثال مهندسی — محاسبه مساحت مقطع دایره‌ای:

python
import math

def circle_area(r):
    return math.pi * r ** 2

print(circle_area(5))   # 78.5398...
۱۰

ساختارهای داده

Data Structures

داده‌ها دو دسته‌اند:

  • لوکال (Local) — عبارت‌اند از: لیست‌ها، تاپل‌ها، دیکشنری‌ها و...
  • گلوبال (Global) — عبارت‌اند از: فایل‌ها، فایل‌های CSV، داده‌های موجود روی سرور، دیتاست‌ها و...

پایتون چهار ساختار داده اصلی لوکال دارد:

📋
لیست
list
مرتب و قابل تغییر
[1, 2, 3]
🔒
تاپل
tuple
مرتب ولی غیرقابل تغییر
(1, 2, 3)
📚
دیکشنری
dict
کلید-مقدار
{"name": "Ali"}
🎯
مجموعه
set
بدون تکرار
{1, 2, 3}
python
# لیست
fruits = ["apple", "banana", "cherry"]
fruits.append("orange")

# دیکشنری
person = {"name": "Shayan", "age": 25}
print(person["name"])   # Shayan

# مجموعه
nums = {1, 2, 2, 3, 3}
print(nums)   # {1, 2, 3}
{1, 2, 3}
۱۱

کتابخانه‌ها

Libraries — math / numpy / matplotlib

پایتون کتابخانه‌های بسیار قدرتمندی دارد که برای کارهای مهندسی و علمی حیاتی هستند. با import آن‌ها را به کد اضافه می‌کنیم.

📚 کتابخانه‌های پرکاربرد مهندسی:
  • math — توابع ریاضی (sqrt, sin, cos, pi)
  • numpy — محاسبات عددی و آرایه‌ها
  • matplotlib — رسم نمودار
  • sympy — محاسبات نمادین
  • pandas — تحلیل داده و خواندن فایل‌های CSV
python
import math

print(math.sqrt(16))    # 4.0
print(math.sin(0))      # 0.0
print(math.pi)           # 3.14159...

def hypotenuse(a, b):
    return math.sqrt(a ** 2 + b ** 2)

print(hypotenuse(3, 4))   # 5.0
4.0
0.0
3.141592653589793
5.0
۱۲

گرافیک و رسم نمودار

Graphics & Plotting — matplotlib

برای مصورسازی داده‌ها و نتایج مهندسی از کتابخانه matplotlib استفاده می‌شود.

python
import matplotlib.pyplot as plt
import numpy as np

x = np.linspace(0, 10, 100)
y = np.sin(x)

plt.plot(x, y, color="cyan", linewidth=2)
plt.title("Sine Wave")
plt.xlabel("x")
plt.ylabel("sin(x)")
plt.grid(True)
plt.show()
🎨 انواع نمودار: plot() خطی — bar() ستونی — scatter() پراکندگی — hist() هیستوگرام — pie() دایره‌ای

مثال مهندسی — منحنی تنش-کرنش:

python
import matplotlib.pyplot as plt

strain = [0, 0.001, 0.002, 0.003, 0.004]
stress = [0, 50, 100, 150, 200]

plt.plot(strain, stress, marker="o")
plt.title("Stress-Strain Curve")
plt.xlabel("Strain")
plt.ylabel("Stress (MPa)")
plt.grid(True)
plt.show()
۱۳

شی‌گرایی در پایتون

Object-Oriented Programming (OOP)

شی‌گرایی (OOP) یک سبک برنامه‌نویسی است که در آن داده‌ها و رفتارها در قالب «شیء» (Object) سازمان‌دهی می‌شوند. در پایتون همه‌چیز شیء است — اعداد، رشته‌ها، لیست‌ها و حتی توابع.

فرض کنید می‌خواهیم یک ماشین طراحی کنیم و کمپانی ما «کمپانی مهندس دولت‌یاری» است. برای ساختن یک سیستم و ساختار کلی که سازنده ما هستیم، و بعد ساخت ماشین که بتوانیم این ماشین را صادر کنیم و در برنامه‌های سایر مهندسین با دستور import آن را فراخوانی کنیم — برای این کار سراغ شی‌گرایی می‌رویم.

🏛️ چهار اصل اصلی OOP:
  • کپسوله‌سازی (Encapsulation) — مخفی کردن جزئیات داخلی
  • وراثت (Inheritance) — ارث‌بری صفات از کلاس دیگر
  • چندریختی (Polymorphism) — رفتار متفاوت یک متد در کلاس‌های مختلف
  • انتزاع (Abstraction) — پنهان کردن پیچیدگی و نمایش ساده

تعریف کلاس و ساخت شیء:

python
class Student:
    # سازنده (Constructor)
    def __init__(self, name, age):
        self.name = name
        self.age = age

    def introduce(self):
        print(f"My name is {self.name}, I am {self.age}")

# ساخت شیء از کلاس
s1 = Student("Shayan", 25)
s1.introduce()
My name is Shayan, I am 25

وراثت (Inheritance):

python
class Engineer(Student):
    def __init__(self, name, age, field):
        super().__init__(name, age)   # فراخوانی سازنده پدر
        self.field = field

    def introduce(self):   # بازنویسی متد (Override)
        print(f"I am {self.name}, a {self.field} engineer")

e1 = Engineer("Shayan", 25, "Civil")
e1.introduce()
I am Shayan, a Civil engineer
🎯 نکات کلیدی:
  • self — ارجاع به خود شیء (اجباری در متدها)
  • __init__ — سازنده که هنگام ساخت شیء اجرا می‌شود
  • super() — دسترسی به کلاس پدر
  • نام‌های با __ در دو طرف (مثل __init__) متدهای جادویی هستند

مثال مهندسی — کلاس تیر بتنی (ماشین مهندس دولت‌یاری):

python
class Beam:
    def __init__(self, length, width, height):
        self.length = length
        self.width = width
        self.height = height

    def volume(self):
        return self.length * self.width * self.height

    def weight(self, density=2500):   # kg/m³ بتن
        return self.volume() * density

b = Beam(5, 0.3, 0.5)
print(f"Volume: {b.volume()} m³")
print(f"Weight: {b.weight()} kg")
Volume: 0.75 m³
Weight: 1875.0 kg

بازخورد شما، انرژی من

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

0 درس آموزشی
0 مثال کد
0 ساعت مطالعه
0 رایگان
با تشکر از شما! بازخورد شما دریافت شد. لطفاً برای ارسال نهایی، روی دکمه ایمیل زیر کلیک کنید یا متن را کپی کرده و به ایمیل بنده ارسال کنید.
ارتباط مستقیم با من هر سؤال، پیشنهاد یا انتقادی دارید، مستقیماً به ایمیل بنده ارسال کنید.
dolat_yari@yahoo.com

نقشه راه آموزش‌های آینده

هوش مصنوعی در مهندسی عمران
اتوماسیون طراحی سازه
تحلیل داده‌های مهندسی
اتوماسیون AutoCAD با پایتون
مدل‌سازی BIM
شبیه‌سازی عددی