محمد لرنینگ (آموزش برنامه نویسی)
2.98K subscribers
18 photos
4 videos
20 files
96 links
از پست اول شروع کنید
t.iss.one/makedeveloper/1
Download Telegram
یکم در مورد حلقه while حرف بزنیم :‌


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

حلقه while با یک شرط شروع می‌شه و تا زمانی که اون شرط True باشه، بلوک کد داخل حلقه اجرا می‌شه.


# مثال ساده برای چاپ اعداد 0 تا 4 با استفاده از حلقه while
i = 0
while i < 5:
print(i)
i += 1

در کد بالا ما گفتیم تا زمانی که i از ۵ کمتره حلقه ادامه داشته باشه و هر بار مقدار i رو پرینت کنه، بعد از پرینت هم به مقدار قبلی i یکدونه اضافه میکنیم

پس خروجی کد بالا میشه این :

0
1
2
3
4


چندین مثال از حلقه `while`

1. چاپ اعداد تا زمانی که کمتر از یک مقدار مشخص باشند:


number = 1
while number <= 10:
print(number)
number += 1


2. استفاده از حلقه `while` برای منتظر ماندن تا یک شرط برآورده شود:


answer = None
while answer != "yes":
answer = input("Do you want to continue? (yes/no): ")


در این کد فقط زمانی که ما بنویسیم yes حلقه تموم میشه


Do you want to continue? (yes/no): دخ
Do you want to continue? (yes/no): no
Do you want to continue? (yes/no): asonweofnew
Do you want to continue? (yes/no): wefwefew
Do you want to continue? (yes/no): yes
>>> حلقه تمام شد چون نوشتیم yes



3. ایجاد یک منوی ساده با حلقه `while`:


choice = None
while choice != '0':
print("1. Say Hello")
print("0. Exit")
choice = input("Choose an option: ")

if choice == '1':
print("Hello!")


در کد بالا تا زمانی که ورودی ما 0 نباشه حلقه ادامه پیدا میکنه، مثال :

1. Say Hello
0. Exit
Choose an option: 1
Hello!
1. Say Hello
0. Exit
Choose an option: 2
1. Say Hello
0. Exit
Choose an option: 432
1. Say Hello
0. Exit
Choose an option: 0
>>> حلقه به انتها رسید



نکات مهم:

- شرط: حلقه while با یک شرط شروع می‌شه که باید True باشه تا حلقه اجرا شه.
- بدنه حلقه: بلوک کدی که درون حلقه while قرار داره و تا زمانی که شرط برقراره، تکرار می‌شه.
- بروزرسانی شرط: معمولاً درون حلقه while باید یک مکانیزم برای تغییر شرط وجود داشته باشه تا از یک حلقه بی‌پایان جلوگیری کنیم.

حلقه‌های while می‌تونن خیلی مفید باشن وقتی که نمی‌دونیم دقیقاً چند بار باید یک کد رو اجرا کنیم، اما می‌دونیم که تا کی باید اجرا بشه.

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
14👍13🔥3👎1
تمرین کمی چالشی تر (اگر تازه پایتون رو شروع کردید و نتونستید حل کنید اشکالی نداره)

تمرین: تعداد کلمات در نظرات تودرتو

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

الزامات:
- فقط از لیست‌ها، دیکشنری‌ها و حلقه‌ها استفاده کنید.
- از توابع، دکوراتورها، کلاس‌ها یا هر ویژگی پیشرفته پایتون استفاده نکنید.
- فرض کنید ورودی یک لیست از دیکشنری‌هایی است که نظرات را نشان می‌دهند. هر دیکشنری نظر دو کلید دارد: 'text' (متن نظر) و 'replies' (لیستی از دیکشنری‌ها که پاسخ‌ها را نشان می‌دهند).
- کلمات با فاصله از هم جدا می‌شوند و باید به صورت بی‌تفاوت نسبت به بزرگی و کوچکی حروف در نظر گرفته شوند (مثلاً "Python" و "python" یک کلمه هستند).
- نشانه‌گذاری‌ها باید نادیده گرفته شوند.
- خروجی باید یک دیکشنری با کلمات به عنوان کلیدها و تعداد آن‌ها به عنوان مقادیر باشد.

ورودی نمونه:

comments = [
{
'text': 'من پایتون را دوست دارم!',
'replies': [
{'text': 'پایتون عالی است', 'replies': []},
{'text': 'فکر می‌کنم پایتون خوب است.', 'replies': []}
]
},
{
'text': 'پایتون همچنین مورد علاقه من است!',
'replies': []
}
]


خروجی مورد انتظار:

{
'من': 3,
'دوست': 1,
'پایتون': 4,
'عالی': 1,
'است': 3,
'فکر': 1,
'می‌کنم': 1,
'خوب': 1,
'همچنین': 1,
'مورد': 1,
'علاقه': 1
}


@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍10🔥42💅1
۱. تاپل (Tuple):
- تاپل‌ها مجموعه‌های مرتب از آیتم‌ها هستند که غیرقابل تغییرند، به این معنی که پس از ایجاد نمی‌توانند تغییر کنند.
- تاپل‌ها با استفاده از پرانتز () تعریف می‌شوند و می‌توانند شامل هر نوع داده‌ای باشند.
- تاپل‌ها وقتی استفاده می‌شوند که می‌خواهید یک دنباله ثابت از عناصر را ذخیره کنید که نباید تغییر کنند.

مثال:

my_tuple = (1, 2, 3, 4, 5)


۲. لیست (List):
- لیست‌ها مجموعه‌های مرتب از آیتم‌ها هستند که قابل تغییرند، به این معنی که پس از ایجاد می‌توانند تغییر کنند.
- لیست‌ها با استفاده از پرانتز مربعی [] تعریف می‌شوند و می‌توانند شامل هر نوع داده‌ای باشند.
- لیست‌ها وقتی استفاده می‌شوند که می‌خواهید یک مجموعه از آیتم‌ها را ذخیره کنید که ممکن است در طول زمان تغییر کنند.

مثال:

my_list = [1, 2, 3, 4, 5]


۳. مجموعه (Set):
- مجموعه‌ها مجموعه‌های غیرترتیبی از آیتم‌های یکتا هستند که قابل تغییرند.
- مجموعه‌ها با استفاده از پرانتز آجی {} یا سازنده set() تعریف می‌شوند و تنها می‌توانند شامل انواع داده‌های قابل هش باشند.
- مجموعه‌ها وقتی استفاده می‌شوند که می‌خواهید یک مجموعه از آیتم‌های یکتا را ذخیره کنید و عملیات مجموعه‌ای مانند اتحاد، اشتراک و تفاوت را انجام دهید.

مثال:

my_set = {1, 2, 3, 4, 5}


۴. مجموعه یخ‌زده (Frozenset):
- مجموعه‌های یخ‌زده شبیه به مجموعه‌ها هستند، اما غیرقابل تغییرند، به این معنی که پس از ایجاد نمی‌توانند تغییر کنند.
- مجموعه‌های یخ‌زده با استفاده از سازنده frozenset() تعریف می‌شوند و تنها می‌توانند شامل انواع داده‌های قابل هش باشند.
- مجموعه‌های یخ‌زده وقتی استفاده می‌شوند که می‌خواهید یک مجموعه از آیتم‌هایی را ایجاد کنید که نباید تغییر کند.

مثال:

my_frozenset = frozenset({1, 2, 3, 4, 5})


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

۵. دیکشنری (Dictionary):
- دیکشنری‌ها یک نوع داده‌ای در پایتون هستند که شامل جفت‌های کلید-مقدار هستند. key: value
- هر کلید باید یکتا باشد و مقدار متناظر با آن می‌تواند هر نوع داده‌ای باشد.
- دیکشنری‌ها با استفاده از پرانتز آجی {} یا سازنده dict() تعریف می‌شوند و می‌توانند شامل هر نوع داده‌ای برای کلید و مقدار باشند.
- دیکشنری‌ها وقتی استفاده می‌شوند که می‌خواهید به هر مقدار یک کلید منحصر به فرد اختصاص دهید و بتوانید با استفاده از کلید، به مقدار متناظر با آن دسترسی پیدا کنید.

مثال:

my_dict = {"name": "Alice", "age": 30, "city": "New York"}


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

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍154🔥2
محمد لرنینگ (آموزش برنامه نویسی) pinned «چقدر از مطالبی که تدریس شده رو متوجه شدید»
محمد لرنینگ (آموزش برنامه نویسی)
چقدر از مطالبی که تدریس شده رو متوجه شدید
هر قسمت رو مشکل دارید توی کامنت بنویسید که اونقدر باهاتون کار کنیم که یاد بگیرید
28👍2
امشب لایو داریم ساعت ۹ شب و جلسه ۶ ام هستش، چیزی که قراره این جلسه تدریس کنم بر اساس این داکیومنت هستش، اگر دوست داشتید میتونید مطالعه قبلی داشته باشید :‌

https://github.com/SEYEDBAX/course-notes/tree/main/lesson-6

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍14❤‍🔥43🥰2
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (M.KH)
عجیبه که یوتیوب مارو فالو ندارید :
https://www.youtube.com/@SeYeDBax

@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
👍11
ساعت ۹ اینجا لایو داریم :
https://aparat.com/seyed_bax/live

در مورد فانکشن ها صحبت میکنیم توی پایتون :
https://github.com/SEYEDBAX/course-notes/tree/main/lesson-6

به کلین کد هم کمی اشاره میکنیم برای نوشتن یک فانکشن
@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
8👍2
Forwarded from سید فرندز / برنامه نویسی / هک و امنیت / تکنولوژی (SeYeD.Dev)
اگر میخواید از دوره حمایت کنید، جهت تهیه هدیه برای بچه های دوره میتونید از لینک زیر دونیت کنید :

https://www.coffeete.ir/seyed.dev

💎 این دونیت راحته و احراز هویت نمیخواد ازتون

@SEYED_BAX
Please open Telegram to view this post
VIEW IN TELEGRAM
3
محمد لرنینگ (آموزش برنامه نویسی)
. لینک ویدیوی جلسه ۵: https://youtu.be/0JCIYXjgWx4 تو این ویدیو، با پایتون در مورد آپدیت مقدار های list , tuple , set , dict صحبت کردیم همچنین for تک خطی رو هم یاد گرفتیم، جزوه ای که روش تدریس میکنم : https://github.com/SEYEDBAX/course-notes/tree/main/lesson…
.

لینک ویدیوی جلسه 6:
https://youtu.be/watch?v=dqELrW4P5ls

تو این ویدیو، با پایتون در مورد انواع توابع صحبت کردیم و یاد گرفتیم چطوری یک فانکشن تمیز بنویسیم

جزوه ای که روش تدریس میکنم :
https://github.com/SEYEDBAX/course-notes/tree/main/lesson-6

🔔 حتما حتما یوتیوب رو فالو کنید و ویدیو رو لایک کنید و نوتیف رو روشن بزارید 🫶

https://t.iss.one/QaDeveloper

تمرین این جلسه :
۱- یک تابع به اسم student بسازید که مشخصات یک دانش اموز ، مثل اسم، سن، قد، وزن، معدل رو بگیره و به صورت دیکشنری خروجی بده، همچنین در تابع کنترل کنید که سن دانش اموز بیشتر از ۷ سال و کمتر از ۱۸ سال باشه، و همچنین معدل و قد دانش اموز نباید منفی باشه.

۲- با فانکشنی که در تمرین یک نوشتید، یک حلقه بنویسید که ورودی مشخصات دانش اموز رو دریافت کنه و اگر stop رو نوشتیم به عنوان اسم دانش اموز حلقه متوقف شود و لیست دیکشنری مشخصات دانش اموز ها که از فانکشن قبل بدست اومده توی یک لیست ریخته بشه، و در نهایت پرینت بشه

۳- یک تابع بازگشتی بنویسید که ورودی آن یک دیکشنری باشد، در دیکشنری ورودی باید اسم و سن و قد دانش اموز باشد، اگر نبود تابع با input مقدار رو دریافت کنه و دوباره خودش رو با دیکشنری جدید که حاوی مقدایر قبلی به علاوه مقدار جدید است صدا بزند، انتظار میره تابع خودش رو اینطوری مدام صدا بزنه تا حاول کل مقادیر بشه در انتها


rec_strudent({})
rec_strudent({name: name})
rec_strudent({name: name, age: age})
...


۴- تابعی بنویسید که لیست اعداد زوج موجود در رنج ورودی رو در return تابع به صورت تک خطی پیدا کند و خروجی دهد.

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
15🥰3👍2
در مورد متغیر ها که همون جلسات اول صحبت شد، اما یکسری روش های تغییر متغیر هست که باید بشناسید، غیر از روش هایی که ساده بود. مثل


x = 1
y = 2 * 2
z = 5 + (10*2)


خب این روش ها چیا هستن :


Multiple Assignment:
توی این روش مقدار 2 به متغیر a و مقدار 3 به متغیر b داده میشه

a, b = 2, 3


Swapping Values:
اینجا مقدار a و b با هم جا به جا میشه، یعنی هرچی توی b بود میرسه به a و هرچی توی a بود میرسه به b

a, b = b, a


Chained Assignment:
اینجا هر دو متغیر a و b مقدار 1 رو میگیرن

a = b = 1


Using Functions for Assignment:
در اینجا ما مقدار رو از نتیجه خروجی (return) یک فانکشن میگیریم

def get_max_value():
return 100

max_value = get_max_value()


List Unpacking:
اینجا مقدار 1 به x مقدار 2 به y و مقدار 3 به z میرسه

values = [1, 2, 3]
x, y, z = values


Conditional Assignment:
در اینجا اگر شرط بر قرار باشه مقدار 1 به متغیر value داده میشه در غیر این صورت 0

condition = True
value = 1 if condition else 0


Unpacking with * Operator:
در اینجا مقدار 1 به first و مقدار 5 به last و هر چی بینشون باشه به middle میرسه یعنی 2, 3, 4

first, *middle, last = [1, 2, 3, 4, 5]

یا مثلا :
در اینجا مقدار 4 به last میرسه و با باقی کاری نداریم

*_, last = [1, 2, 3, 4]


Using _ for Unused Variables:
در اینجا اگر باقی مقادیر برامون مهم نباشن میتونیم بریزیمش توی _ و فقط مقدار 1 به first میرسه

first, _ = [1, 2, 3, 4, 5]


این روش مثال های دیگه هم داره. مثل :
در اینجا مقدار 2 به second میرسه و با باقی کاری نداریم

_, second, *_ = [1, 2, 3, 4]


@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍229🔥3
میدونستید پایتون اعداد فارسی رو میفهمه ؟
البته اگر مستقیم بزنید خطا میگیرید
‍‍‍


>>> x = ۱۲۳۴
File "<stdin>", line 1
x = ۱۲۳۴
^
SyntaxError: invalid character '۱' (U+06F1)



اما اگر استرینگ بنویسید بعد تبدیل کنید به عدد میفهمه


>>> x = '۱۲۳۴'
>>> int(x)
1234


@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍25👏52
محمد لرنینگ (آموزش برنامه نویسی)
میدونستید پایتون اعداد فارسی رو میفهمه ؟ البته اگر مستقیم بزنید خطا میگیرید ‍‍‍ >>> x = ۱۲۳۴ File "<stdin>", line 1 x = ۱۲۳۴ ^ SyntaxError: invalid character '۱' (U+06F1) اما اگر استرینگ بنویسید بعد تبدیل کنید به عدد میفهمه >>> x = '۱۲۳۴'…
البته اینطوری برای تبدیل اعداد فارسی به انگلیسی همیشه نمیشه استفاده کرد.

مثلا توی شماره تلفن :

>>> phone = "۰۹۱۲۳۴۵۶۷۸۹"
>>> int(phone)
9123456789


میبینیم که عدد 0 حذف شد. چون تبدیل میکنه به عدد صحیح و خب با صفر که شروع نمیشه

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
😁5👍4
محمد لرنینگ (آموزش برنامه نویسی)
. لینک ویدیوی جلسه 6: https://youtu.be/watch?v=dqELrW4P5ls تو این ویدیو، با پایتون در مورد انواع توابع صحبت کردیم و یاد گرفتیم چطوری یک فانکشن تمیز بنویسیم جزوه ای که روش تدریس میکنم : https://github.com/SEYEDBAX/course-notes/tree/main/lesson-6 🔔 حتما…
.

لینک ویدیوی جلسه 7:

https://youtu.be/8BtcSbhEb8w

تو این ویدیو، با پایتون در مورد نحوه کار کردن با فایل ها یا file handlig حرف زدیم و از ساده ترین کار ها تا بهترین حالت های کار با فایل صحبت کردیم

جزوه ای که روش تدریس میکنم :
https://github.com/SEYEDBAX/course-notes/tree/main/lesson-7

🔔 حتما حتما یوتیوب رو فالو کنید و ویدیو رو لایک کنید و نوتیف رو روشن بزارید 🫶

https://t.iss.one/QaDeveloper

تمرین این جلسه :
1- توی یک فایل متن یک موزیک رو بنویسید و بین هر خط ده تا اینتر بزنید (فاصله بین خطوط زیاد باشه) ، بعد با پایتون این فاصله هارو از بین ببرید و توی یک فایل دیگه ذخیره کنید.

۲- ده تا فایل که اسمش test1.txt هست تا test10.txt رو باز کنید و محتوای داخلشون رو پرینت کنید

۳- با پایتون از یک عکس کپی بگیرید و به اسم image.jpg ذخیرش کنید

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
7👍6🙏1
امشب درباره ماژول ها توی پایتون صحبت میکنیم:

اینکه چطوری میتونیم از یک کد در یک فایل دیگه توی یک فایل دیگه استفاده کنیم
چطوری از زحمت و رنج دیگران توی کد های برنامه خودمون استفاده کنیم
اصن ماژول چی چی هست
کتابخونه چیه
فریمورک چیه
تمرین های جلسه های قبل رو هم یک مروری میکنیم

ساعت ۹ شب منتظرتونم 🫶
https://www.aparat.com/seyed_bax/live

@SEYED_BAX | @MakeDeveloper
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3018🔥2