Assignment (اختصاص مقدار) در پایتون
تعریف
Assignment یا اختصاص دادن مقدار به متغیر، عملی پایهای در پایتون است که با استفاده از عملگر = انجام میشود. این کار باعث میشود نتیجه یک عبارت یا یک مقدار مشخص به یک متغیر نسبت داده شود.
پایتون دینامیک تایپ است؛ یعنی لازم نیست نوع متغیر را قبل از استفاده مشخص کنید. نوع متغیر هنگام اختصاص مقدار توسط پایتون تعیین میشود.
مثالها
1. اختصاص عدد صحیح به متغیر
x = 10
print(x)
خروجی:
10
2. اختصاص رشته به همان متغیر
x = "Hello, Python!"
print(x)
خروجی:
Hello, Python!
> توجه: همان متغیر x میتواند در زمانهای مختلف انواع داده متفاوت داشته باشد.
3. اختصاص نتیجه یک عبارت به متغیر
y = x + " How are you?"
print(y)
خروجی:
Hello, Python! How are you?
4. اختصاص مقادیر مختلف به چند متغیر همزمان
a, b, c = 1, 2, 3
print(a, b, c)
خروجی:
1 2 3
5. تغییر مقدار یک متغیر با استفاده از خودش
count = 5
count = count + 1
print(count)
خروجی:
6
نکات کلیدی
عملگر = assignment operator نام دارد.
متغیرها در پایتون میتوانند نوعهای مختلف داشته باشند و لازم نیست قبل از استفاده نوعشان را مشخص کنید.
میتوانید چند متغیر را همزمان مقداردهی کنید.
میتوان مقدار متغیر را بر اساس خودش تغییر داد.
جمعبندی
Assignment پایه و اساس کار با دادهها در پایتون است. فهم درست این مفهوم باعث میشود دادهها را به شکل انعطافپذیر مدیریت و برنامههای پایتون را به راحتی بنویسید.
مسابقه برنامهنویسی – تمرین شماره ۲
عنوان: دستهبندی و مرتبسازی اعداد زوج و فرد
سطح سختی: ★★☆☆☆ (مبتدی تا متوسط)
امتیاز: ۱۰ امتیاز
زمان پیشنهادی: ۱۵ دقیقه
صورت سوال
یک برنامه بنویسید که:
1. تعداد N عدد صحیح را از کاربر دریافت کند. (در حالت پایه، N=۵)
2. اعداد را به دو دسته تقسیم کند: زوج و فرد.
3. هر دو دسته را به صورت صعودی مرتب کند.
4. هر دو لیست را با قالب مشخص نمایش دهد.
ورودی
اولین خط: عدد صحیح N که نشاندهنده تعداد اعداد است.
خطوط بعدی: N عدد صحیح، هر کدام در یک خط.
محدودیتها:
1 ≤ N ≤ 100
اعداد صحیح میتوانند منفی، صفر یا مثبت باشند.
خروجی
یک خط برای اعداد زوج با عنوان Even numbers (ascending):
یک خط برای اعداد فرد با عنوان Odd numbers (ascending):
نمونه ورودی و خروجی
ورودی نمونه:
5
7
2
9
4
5
خروجی نمونه:
Even numbers (ascending): [2, 4]
Odd numbers (ascending): [5, 7, 9]
چالش اختیاری (Bonus)
1. برنامه را طوری طراحی کنید که تعداد اعداد توسط کاربر قابل تعیین باشد و نه فقط ۵ عدد.
2. علاوه بر صعودی، لیستها را نزولی هم نمایش دهید.
خروجی نمونه با چالش:
Even numbers (ascending): [2, 4]
Odd numbers (ascending): [5, 7, 9]
Even numbers (descending): [4, 2]
Odd numbers (descending): [9, 7, 5]
بخش امتیاز
دریافت درست ورودیها ۲
دستهبندی صحیح زوج و فرد ۳
مرتبسازی صعودی ۳
چالش اختیاری (نزولی) ۲
هدایت شده از آموزش برنامه نویسی پایتون و AI
مسابقه برنامهنویسی – تمرین شماره ۲
عنوان: دستهبندی و مرتبسازی اعداد زوج و فرد
سطح سختی: ★★☆☆☆ (مبتدی تا متوسط)
امتیاز: ۱۰ امتیاز
زمان پیشنهادی: ۱۵ دقیقه
صورت سوال
یک برنامه بنویسید که:
1. تعداد N عدد صحیح را از کاربر دریافت کند. (در حالت پایه، N=۵)
2. اعداد را به دو دسته تقسیم کند: زوج و فرد.
3. هر دو دسته را به صورت صعودی مرتب کند.
4. هر دو لیست را با قالب مشخص نمایش دهد.
ورودی
اولین خط: عدد صحیح N که نشاندهنده تعداد اعداد است.
خطوط بعدی: N عدد صحیح، هر کدام در یک خط.
محدودیتها:
1 ≤ N ≤ 100
اعداد صحیح میتوانند منفی، صفر یا مثبت باشند.
خروجی
یک خط برای اعداد زوج با عنوان Even numbers (ascending):
یک خط برای اعداد فرد با عنوان Odd numbers (ascending):
نمونه ورودی و خروجی
ورودی نمونه:
5
7
2
9
4
5
خروجی نمونه:
Even numbers (ascending): [2, 4]
Odd numbers (ascending): [5, 7, 9]
چالش اختیاری (Bonus)
1. برنامه را طوری طراحی کنید که تعداد اعداد توسط کاربر قابل تعیین باشد و نه فقط ۵ عدد.
2. علاوه بر صعودی، لیستها را نزولی هم نمایش دهید.
خروجی نمونه با چالش:
Even numbers (ascending): [2, 4]
Odd numbers (ascending): [5, 7, 9]
Even numbers (descending): [4, 2]
Odd numbers (descending): [9, 7, 5]
بخش امتیاز
دریافت درست ورودیها ۲
دستهبندی صحیح زوج و فرد ۳
مرتبسازی صعودی ۳
چالش اختیاری (نزولی) ۲
سوال شماره ۳ – مسابقه برنامهنویسی
عنوان: تقسیم آب به ۵ لوله (Water Distribution)
سطح سختی: ★★★★★ (سخت)
امتیاز: ۱۵ امتیاز
زمان پیشنهادی: ۲۰–۳۰ دقیقه
صورت سوال
یک برنامه بنویسید که:
1. یک عدد صحیح مثبت X را از کاربر دریافت کند که نشاندهنده حجم یک لوله بزرگ است.
2. برنامه باید این حجم را به ۵ قسمت تقسیم کند به گونهای که مجموع ۵ قسمت برابر با X باشد.
3. هر قسمت باید عدد صحیح باشد و تقسیم تا حد امکان عادلانه و نزدیک به هم باشد.
4. برنامه باید ۵ عدد تقسیم شده را در یک لیست یا خروجی جداگانه نمایش دهد.
5. برنامه باید برای هر ورودی صحیح مثبت کار کند.
> ⚠️ نکته چالش: تقسیم دقیق اعداد صحیح ممکن است به باقیمانده (remainder) نیاز داشته باشد تا مجموع دقیق X حفظ شود.
ورودی
یک عدد صحیح مثبت X که حجم لوله بزرگ را نشان میدهد.
محدودیتها:
1 ≤ X ≤ 10^6
خروجی
۵ عدد صحیح مثبت که مجموعشان برابر X باشد.
اعداد باید تقریباً برابر و متعادل باشند (اختلاف بین بزرگترین و کوچکترین عدد ≤ 1).
نمونه ورودی و خروجی
ورودی نمونه:
23
خروجی نمونه (یکی از پاسخهای ممکن):
[5, 5, 5, 4, 4]
ورودی نمونه:
10
خروجی نمونه:
[2, 2, 2, 2, 2]
ورودی نمونه:
7
خروجی نمونه:
[2, 2, 1, 1, 1]
> نکته: ترتیب اعداد در خروجی مهم نیست، اما مجموع باید دقیقاً برابر با X باشد و اختلاف بین بزرگترین و کوچکترین عدد ≤ 1 باشد.
چالش اختیاری (Bonus)
برنامه را طوری طراحی کنید که تعداد بخشها قابل تغییر باشد، نه فقط ۵.
برنامه بتواند ورودیهای خیلی بزرگ (تا 10^9) را نیز بهینه و سریع تقسیم کند.
امتیازدهی پیشنهادی
بخش امتیاز
تقسیم صحیح اعداد ۵
حفظ مجموع برابر X ۵
تقریباً مساوی بودن بخشها ۵
۳۰ ترفند عجیب و جادویی پایتون
۱. چند مقدار را همزمان به چند متغیر اختصاص دهید
a, b, c = 1, 2, 3
print(a, b, c) # خروجی: 1 2 3
---
۲. تعویض مقادیر بدون متغیر موقت
x, y = 5, 10
x, y = y, x
print(x, y) # خروجی: 10 5
---
۳. لیست کامپرهنشن با شرط
nums = [i**2 for i in range(10) if i % 2 == 0]
print(nums) # خروجی: [0, 4, 16, 36, 64]
---
۴. رشتهها مثل لیست رفتار میکنند
s = "Python"
print(s[::-1]) # خروجی: "nohtyP"
---
۵. استفاده از _ در REPL
>>> 10 + 5
15
>>> _ * 2
30
---
۶. چند دستور در یک خط
a = 5; b = 10; print(a+b) # خروجی: 15
---
۷. else بعد از حلقه
for i in range(3):
print(i)
else:
print("حلقه تمام شد")
---
۸. لیستها و رشتهها با + و *
print([1,2]*2) # [1, 2, 1, 2]
print("Hi "*3) # "Hi Hi Hi "
---
۹. تابع zip برای ترکیب لیستها
a = [1,2,3]; b = ['a','b','c']
print(list(zip(a,b))) # [(1,'a'), (2,'b'), (3,'c')]
---
۱۰. لیست از رشتهها با split
s = "Python is fun"
words = s.split()
print(words) # ['Python', 'is', 'fun']
---
۱۱. معکوس کردن لیست با [::-1]
lst = [1,2,3,4]
print(lst[::-1]) # [4,3,2,1]
---
۱۲. حذف عناصر با del
lst = [1,2,3]
del lst[1]
print(lst) # [1,3]
---
۱۳. مقایسه چند مقدار همزمان
x = 5
if 0 < x < 10:
print("بین ۰ و ۱۰ است")
---
۱۴. استفاده از enumerate
lst = ['a','b','c']
for i, v in enumerate(lst):
print(i, v)
---
۱۵. چاپ چند خط با یک دستور
print("""سلام
دنیا
پایتون""")
---
۱۶. چک کردن نوع داده
x = 5
print(type(x)) # <class 'int'>
---
۱۷. تبدیل لیست به رشته با join
words = ['Python','Rocks']
print(' '.join(words)) # "Python Rocks"
---
۱۸. استفاده از any و all
nums = [0,1,2]
print(any(nums)) # True
print(all(nums)) # False
---
۱۹. لیست چند بعدی
matrix = [[1,2],[3,4]]
print(matrix[1][0]) # 3
---
۲۰. set برای حذف تکراریها
nums = [1,2,2,3,3]
print(list(set(nums))) # [1,2,3]
---
۲۱. تبدیل رشته به عدد با int و float
s = "123.45"
print(int(float(s))) # 123
---
۲۲. تابع sorted بدون تغییر لیست اصلی
lst = [3,1,2]
print(sorted(lst)) # [1,2,3]
print(lst) # [3,1,2]
---
۲۳. شرط داخل لیست کامپرهنشن
nums = [i if i%2==0 else 0 for i in range(5)]
print(nums) # [0,0,2,0,4]
---
۲۴. استفاده از * برای unpack کردن لیست
a, *b, c = [1,2,3,4]
print(a,b,c) # 1 [2,3] 4
---
۲۵. مقایسه رشتهها بدون توجه به حروف بزرگ و کوچک
s1 = "Python"; s2 = "python"
print(s1.lower() == s2.lower()) # True
---
۲۶. استفاده از Counter برای شمارش عناصر
from collections import Counter
nums = [1,2,2,3,3,3]
print(Counter(nums)) # Counter({3:3, 2:2, 1:1})
---
۲۷. تبدیل لیست به دیکشنری با zip
keys = ['a','b']; values = [1,2]
d = dict(zip(keys, values))
print(d) # {'a':1, 'b':2}
---
۲۸. چند شرط در یک خط
x = 5
print("بین ۰ و ۱۰" if 0<x<10 else "خارج از محدوده")
---
۲۹. استفاده از defaultdict
from collections import defaultdict
d = defaultdict(int)
d['a'] += 1
print(d['a'], d['b']) # 1 0
---
۳۰. تابع map برای اعمال عملیات روی لیست
nums = [1,2,3]
squared = list(map(lambda x: x**2, nums))
print(squared) # [1,4,9]
---
✅ این ۳۰ ترفند شامل:
عملیات روی لیست و رشته
توابع داخلی و کتابخانههای استاندارد
روشهای کوتاه و حرفهای
کاربرد برای مسابقه و حل سریع مسئله
هدایت شده از یاسر محمودیان
اطلاعیه برگزاری کلاس
📅 تاریخ: امروز، چهارشنبه ۵ آذرماه
👭 کلاس خواهران: ساعت ۱۴تا ۱۶
💻 موضوع: دوره مقدماتی آموزش برنامهنویسی پایتون
📢 اطلاعیه برگزاری کلاس
برنامهنویسی پایتون – سطح مقدماتی
به اطلاع علاقهمندان میرسد که کلاس پایتون مقدماتی برگزار میگردد.
⏰ زمان برگزاری:
کلاس خواهران:
ساعت ۹:۰۰ تا ۱۱:۳۰
کلاس برادران:
ساعت ۱۵:۰۰ تا ۱۷:۳۰
با توجه به اینکه این جلسه، آخرین کلاس دوره مقدماتی میباشد، حضور کلیه دوستان گرامی ضروری است.
لطفاً در ساعت مقرر در کلاس حاضر باشید.
امروز کلاس برنامهنویسی پایتون – ویژه خواهران برگزار شد.
بدینوسیله از همراهی و تلاشهای ارزنده دوستان فعال در کلاس، سرکار خانم نفری فاروجی و سرکار خانم شجاع صمیمانه تقدیر و تشکر میشود.
امیدواریم همواره در مسیر یادگیری و موفقیتهای آینده، پویا، پرتلاش و سربلند باشید.
📢 اطلاعیه آموزشی
به اطلاع عزیزان شرکتکننده در دوره برنامهنویسی پایتون میرسد که فردا اولین مدل یادگیری ماشین (Machine Learning) با استفاده از یک مثال کاملاً کاربردی و مؤثر در کلاس رونمایی و بررسی خواهد شد.
در این جلسه، یک نمونه واقعی شامل بارگذاری مدل، آموزش، ذخیرهسازی و انجام پیشبینی با استفاده از کتابخانههای pickle، NumPy و Scikit-Learn ارائه خواهد شد تا هنرجویان با روند ساخت یک مدل ساده یادگیری ماشین بهصورت عملی آشنا شوند.
حضور بهموقع و فعال شما موجب بهرهبرداری بهتر از مباحث عملی این جلسه خواهد بود.
✨ پایان دوره مقدماتی پایتون و اجرای پروژه عملی! ✨
به لطف خدا امروز دوره مقدماتی آموزش برنامهنویسی پایتون ویژه بانوان و آقایان با موفقیت به پایان رسید. 🎉
در این جلسه، پروژه عملی تشخیص چهره با پایتون و OpenCV را اجرا کردیم و نتیجه کار بچهها فوقالعاده بود!
همه هنرجویان با شور و هیجان، چهرهها را روی صفحه دیدند و تجربه عملی ارزشمندی از محیط برنامهنویسی پایتون کسب کردند.
این پروژه فرصتی بود برای تمرین، یادگیری و علاقهمندی بیشتر به کدنویسی و تکنولوژی، و مشاهده شادی و انرژی بچهها، انگیزه ما را برای ادامه آموزش دوچندان کرد. 💻❤️
به امید موفقیت روزافزون همه هنرجویان عزیز و آغاز دوره پیشرفته پایتون که به زودی تاریخ دقیق آن اعلام خواهد شد… 🚀
#محمودیان #پایتون #دوره #نوابغ_کدنویسی #تشخیص_چهره #کدنویسی #OpenCV #آموزش_پایتون #یادگیری_ماشین #هنرجویان