به کمک حلقهها که جزء دستورات کنترلی هستند، میتوانیم در توالیها پیمایش کرده یا یک قطعه کد را چندین بار تکرار کنیم. در این مقاله به آموزش حلقه در پایتون پرداخته و با ۲ نوع اصلی و ترفندهای کار با آنها آشنا خواهیم شد.
فرض کنید در یک لیست پایتون تعدادی عدد دارید که میخواهید تمام آنها را با هم جمع کنید. یا یک رشته متنی دارید که میخواهید تک به تک کاراکترهای آن را بررسی کنید. شاید بخواهید تا زمانی که یک شرط برقرار بود، برنامه پایتون یک کار ثابت یا مشابه را انجام دهد.
برای انجام تمام اینگونه کارها میتوان از حلقهها (Python Loops) کمک گرفت. حلقهها یکی از پر کاربردترین دستورات کنترلی هستند.
برای عضویت در دوره ویدئویی میتونید به «دوره جامع پایتون در کالج» مراجعه کنید. با ثبتنام رایگان در دوره، به تمام جلسات اصلی، جلسات تکمیلی، تمرینها، آزمونها و منابع مازاد دسترسی کامل خواهید داشت.
فهرست محتوای آموزش
انواع حلقه در پایتون
در زبان برنامه نویسی پایتون دو نوع اصلی حلقه داریم:
- حلقه while
- حلقه for
هر کدام از این Loopها در جای خاص خود کاربرد دارند ولی کار اصلی هر دو تقریباً مشابه است.
اگر کمی خلاقیت را چاشنی کارتان کنید، احتمالاً بتوانید این دو نوع حلقه را به یکدیگر تبدیل کرده و به جای هم استفاده کنید! اما بهتر است از هر کدام در جای مناسب خود بهره ببرید.
در تصویر زیر یک فلوچارت (یا روندنما) کلی از عملکرد حلقهها در برنامهنویسی نمایش داده شده است.
بعضاً نیاز است در ابتدای کار یک یا چند متغیر مورد نیاز را مقداردهی اولیه کنیم. سپس یک شرط برای حلقه تعریف میکنیم.
مادامی که آن شرط برقرار باشد، قطعه کد درون محدوده حلقه اجرا خواهد شد. پس از هر بار اجرای کد، مجدداً شرط مورد نظر چک میشود. هر زمان که شرط برقرار نبود، از حلقه خارج شده و ادامه برنامه اجرا خواهد شد.
حلقه while در پایتون
با استفاده از حلقه while میتوان مجموعهای از کدها را تا زمانی که شرط مورد نظرمان برقرار است اجرا کرد.
ساختار (نحو یا syntax) حلقه while در پایتون به شکل زیر است:
while condition:
#code
condition همان شرط ماست که خروجی آن باید به صورت True یا False باشد.
فرض کنید متغیری به نام i
داریم. میخواهیم تا زمانی که مقدار آن از عدد 5 کمتر است، مقدارش را چاپ کنیم. به قطعه کد زیر دقت کنید:
i = 1
while i<5:
print(i)
i+=1
شرط حلقه while را i<5
تعریف کردیم. در بدنه حلقه، مقدار متغیر را چاپ کرده و در نهایت مقدار آن را یک واحد افزایش دادهایم.
اگر در آخرین خط، مقدار متغیر را افزایش ندهیم، حلقه ما تا بینهایت اجرا خواهد شد.
در اینگونه مواقع معمولاً گفته میشود به حلقه بینهایت یا Infinitive Loop برخورد کردهایم!
خروجی اجرا شده این قطعه کد، به صورت زیر خواهد بود:
1 2 3 4
حلقه for در پایتون
حلقه for که به حلقه for in در پایتون هم معروف است بیشتر برای پیمایش (Traversal) استفاده میشود.
فرض کنید یک تاپل در python دارید. این تاپل یک نوع توالی از اعضای خودش به ما میدهد. اگر بخواهیم روی تک تک این اعضا حرکت یا به اصطلاح پیمایش کنیم، از حلقه for استفاده خواهیم کرد.
در حالت کلی، هر چیزی که به ما مجموعهای از توالی عناصر (collection) را بدهد میتوانیم در حلقه for پایتون قرار دهیم؛ نوعهای دادهای لیست، رشته، تاپل و … .
ساختار کلی حلقه for در پایتون به صورت زیر است:
for Value in Sequence:
#execution and use of Value
سینتکس حلقه for دارای سه بخش اصلی است:
- Value: نام متغیری که در هر بار اجرای حلقه، هر کدام از اعضای مجموعه در آن قرار میگیرد.
- Sequence: همان مجموعه قابل پیمایش مورد نظر ماست.
- بدنه حلقه: کدهایی که در هر بار اجرای حلقه پردازش میشوند.
فرض کنید یک لیست داریم که حاوی اسم پنج نفر است. با استفاده از کد زیر عملیات پیمایش در لیست را انجام میدهیم:
names = ["Nazanin", "Mehran", "Omid", "Melisa", "sina"]
for name in names:
print("Hello " + name + "!")
خروجی اجرای این حلقه به صورت زیر خواهد بود:
رشته در پایتون هم یک مجموعه است؛ مجموعهای از کاراکترها که رشته متنی را شکل دادهاند. بنابراین به کمک حلقه for in میتوان بر روی تک تک کاراکترهای یک رشته پیمایش انجام داد.
string = "Welcome to SabzDanesh.com site!"
i = 0
for char in string:
i+=1
print("Lenght is: " + str(i))
در قطعه کد بالا، با استفاده از حلقه for تعداد کاراکترهای رشته string را محاسبه کردیم.
به کمک تکرارگرها در پایتون میتوانید یک شئ قابل پیمایش در حلقههای python به دلخواه خود ایجاد کنید.
تابع range
فرض کنید میخواهیم یک حلقه for ایجاد کنیم که متغیر آن در هر بار اجرا، یکی افزایش پیدا کند. چیزی شبیه به کاری که در حلقه while داشتیم.
فرض کنید میخواهیم با یک حلقه، حاصل جمع اعداد 1 تا 9 را محاسبه کنیم.
اولین راهحل ایجاد یک لیست از اعداد متوالی به صورت دستی و استفاده از آن در حلقه for است.
nums= [1, 2, 3, 4, 5, 6, 7, 8, 9]
result = 0
for n in nums:
result += n
print(result)
اما راهحل سادهتری هم داریم!
تابع range()
یک لیست از اعداد صحیح ایجاد میکند. از این تابع میتوان به طور مستقیم در حلقه for در پایتون برای تولید یک رنج از اعداد (بازه عددی) استفاده کرد.
کد زیر دقیقاً معادل کد بالا بوده و عدد 45 را به عنوان نتیجه به ما میدهد.
result = 0
for i in range(10):
result += i
print(result)
تابع range(n)
به ما لیستی از اعداد 0 تا n-1 را میدهد.
از این تابع میتوان به صورت حرفهایتر هم استفاده کرد. ساختار کلی آن به صورت زیر است:
range(start, stop, step)
سه آرگومان ورودی این تابع عبارتاند از:
- start: نقطه شروع شمارش
- stop: نقطه پایانی (این نقطه جزء توالی عددی نخواهد بود)
- step: گام حرکت از شروع تا پایان (اختیاری، پیشفرض عدد 1 در نظر گرفته میشود)
اگر فقط یک ورودی برای range()
وارد شود، به طور پیشفرض مقدار شروع برابر 0 و گام برابر 1 خواهد بود.
به مثالهای زیر از این تابع توجه کنید:
range(9)
# [0, 1, 2, 3, 4, 5, 6, 7, 8]
range(5, 21)
# [5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20]
range(5, 21, 3)
# [5, 8, 11, 14, 17, 20]
ترفندهای کار با حلقه
در کار با حلقه در پایتون ترفندهای زیادی وجود دارد. اکثر این ترفندها به خلاقیت برنامه نویس در هنگام برنامهنویسی برمیگردد.
برای این که بتوان به صورت حرفهایتر با حلقهها برنامهنویسی کنیم، دو دستور و یک ساختار مهم وجود دارد.
در ادامه دو دستور break و continue در حلقهها و ساختار Nested Loops را بررسی میکنیم.
دستور break در حلقه پایتون
فرض کنید یک لیست از اعداد در اختیار داریم و میخواهیم آن را پیمایش کنیم. در صورتی که به یک عدد خاص رسیدیم، پیمایش کل مجموعه خاتمه یابد.
بعد از آن که به عدد مورد نظر رسیدیم چه اتفاقی میافتد؟! باید به طور کامل از حلقه (for یا while) خارج شویم!
برای این که از حلقه خارج شویم، از دستور break استفاده میکنیم.
به محض رسیدن به دستور break بلافاصله از حلقه خارج شده و تکرارهای بعدی نادیده گرفته خواهد شد؛ بدون توجه به این که در اولین تکرار حلقه هستیم یا آخرینِ آن!
معمولاً اینگونه کارها به کمک ساختارهای شرط در پایتون انجام میشود.
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in lst:
if i == 5:
break
print(i)
# Result:
# 1
# 2
# 3
# 4
خروجی این قطعه کد، فقط اعداد 1 تا 4 هستند.
استفاده از دستور continue
در همان مثال قبلی، اگر فقط بخواهیم یک عدد خاص چاپ نشود باید چه کاری انجام داد؟
اولین راهحل احتمالاً استفاده از شرط است. به این صورت که اگر عنصر انتخاب شده برابر 5 نبود، دستور print اجرا شود.
راهحل دیگر استفاده از دستور continue است. با اجرای continue در حلقه، بقیه کدهای بدنه حلقه اجرا نمیشود و مستقیماً به ابتدای تکرار بعدی در حلقه میپریم.
به قطعه کد زیر دقت کنید:
lst = [1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in lst:
if i == 5:
continue
print(i)
نتیجه اجرای این کد به صورت زیر خواهد شد:
همانطور که میبینید به غیر از عدد 5، بقیه اعداد لیست در خروجی چاپ شدهاند.
حلقه تودرتو در پایتون
از حلقههای پایتون میتوان به صورت تودرتو هم استفاده کرد. مثلاً برای پیمایش ماتریس میتوان به صورت زیر عمل کرد. توجه داشته باشید که محدوده کدهای بدنه حلقه در پایتون بر اساس همان دندانهگذاری (یا indentation) مشخص میشود.
mtrx = [[1, 2, 3], [4, 5, 6], [7, 8, 9]]
x = 0
for i in mtrx:
for j in i:
x += j
print(x) #45
مرور آموزش حلقه ها در پایتون
در این آموزش با نحوه تعریف حلقه در پایتون آشنا شدیم. یک loop دو بخش اصلی شرط و بدنه دارد. قبل از شرط، میتوانیم برای آن مقداردهی اولیه انجام دهیم. سپس مادامی که شرط برقرار باشد، کدهای درون بدنه حلقه اجرا میشود. برای اینکه با مشکل حلقه بینهایت مواجه نوشیم، بهتر است به چگونگی تغییر شرط توجه کنیم. معمولاً از عملیات افزایش برای این کار استفاده میشود.
در هر با اجرای حلقه for در پایتون، متغیری که تعریف کردهایم مقدار جدیدی گرفته و کدهای بدنه برای آن مقدار اجرا میشوند. دقت کنید که میتوانیم از این متغیر در بدنه هیچ استفادهای نکنیم! حلقه while در پایتون، مادامی که شرطش برقرار باشد اجرا میشود.
علاوه بر حلقهها، با تابع range()
برای تولید لیستی از اعداد، دستور break برای متوقف کردن اجرای حلقه و دستور continue برای پرش به حلقه بعدی آشنا شدیم.
برای مطالعه بیشتر در مورد مفهوم کنترل جریان در پایتون میتوانید به مستندات آن مراجعه کنید.
این آموزش بخشی از یک آموزش جامع و قدم به قدم در سبز دانش است: دوره رایگان آموزش پایتون
این آموزش برای همیشه رایگانه! میتونید با اشتراکگذاری لینک این صفحه از ما حمایت کنید یا با خرید یه فنجون نوشیدنی بهمون انرژی بدید!
میخوام یه نوشیدنی مهمونتون کنم
سلام ببخشید یه سوال هربار چگونه در list که داریم یکی از انها را که داریم print بگیریم؟
سلام
با حلقه و خاصیت indexing میتونید این کار رو انجام بدید.
سلام برای پیشرفت در زمینه حلقه ها باید چیکار کنم
سلام
تمرین! سعی کنید مثالهای زیادی رو براش حل کنید. trace کردن هم که در ویدئوی این جلسه و سایر جلسات تکمیلی دوره جامع تمرین میشه هم میتونه بسیار مفید باشه براتون.
سلام عزیزو وقتتون بخیر
یک لیست شامل تعدای عدد دارم . ولی بصورت عددی در نظر نمیگیره . برای رسم نمودار نیاز به تبدیل این لیست به لیست عددی دارم . مرتبا خطا میده یا y نمودار رو رشته ای در نظر میگیره . تابع int هم نتونست تبدیلش کنه . سورس که نوشتم:
مرتبا پیغام خطا میده که :
از حلقه هم استفاده کردم نشد:
مرتبا عدد آخر رو replace میکنه .
این لیست رو چجوری تبدیلش کنم به عدد . برای رسم نموار لازمه . لطفا راهنمایی کنید . ممنون میشم .
سلام
لیست در جای دیگهای ایجاد میشه که اینطوره؟ اگه نه که مستقیماً عدد بدید بهش!
تابع int یک رشته میگیره و تلاش میکنه اون رو به عدد صحیح تبدیل کنه. خطایی که میگیرید به این خاطهر که بهش یک لیست دادید.
قسمت حلقه، تلاش خوبیه، ولی حواستون باشه که دونه دونه روی اعضای لیست حرکت میکنه و هر عضو رو به عدد تبدیل و در y قرار میده. آخرین مقداری که y میگیره عدد صحیح آخرین عضوه.
میتونید در همین حلقه، هر کدوم از اعضا رو که تبدیل به int کردید، اون رو در یه لیست جدید یا همین لیست قرار بدید.
یه روش جمعوجورتر (همین حلقه ولی فشردهتر) استفاده از list comprehension هست. مثل:
این روش رو در دوره رایگان مکمل پایتون توضیح دادم و حالتهای مختلفش رو مثال زدم. میتونید ویدئوی اون رو در کالج ببینید.
سلام مجدد ، ممنون ازتوجه تون
بر پایه راهنمایی شما ، سورس کد رو نوشتم و جواب گرفتم اوکی شد
اون لیست lst_grade رو …. بله در ابتدای برنامه با ورود اطلاعات در Entry برنامه تشکیل شده و هردفه اضافه میشه به انتهای لیست
سورس کد که نوشتم این هست :
رشته عددی y ایجاد شد و جهت میانگین متغیر sum ایجاد شد و براحتی max رشته هم بدست اومد .
تشکر مجدد
چقدر عالی! خیلی خوشحالم که به نتیجه رسیدید.
فقط یه پیشنهاد برای بهبود خوانایی کدتون، خوبه که بعضی از متغیرها رو کمی بامعناتر انتخاب کنید. مثلاً توی حلقه اول شاید بشه بهجای
i
اسم مناسبتری قرار داد. البتهi, j
در حلقه دومی مناسبه.سلام .
چه طوری می تونم توی بازی تاس کاری کنم که برنامه تمام حلقه های تکراری که استفاده کرده رو نمایش بده ؟
سلام
منظورتون از نمایش حلقههای تکراری چیه؟ یعنی میخواید وضعیت بازی رو نگه داره یا چاپ کنه؟ اگه اره که میتونید توی هر بار اجرای حلقه اطلاعات موردنیاز رو ذخیره کنید.
سلام چطور میتونم بین ۳ لیست قیمت عددهای مشترک را انتخاب کنم، از ۳ تا for استفاده کردم ولی فقط یکبار اجرا شده اند و اگر برابر نبود یا بود خارج میشوند
For i= 1000 + 0.01 to 1001
For j= 500+0.01 to 5000
For k=999+0.01 to 1000.5
سلام
قطعه کدی که نوشتید پایتونه یا سودوکد؟ اگه پایتونه که این فرمت اشتباهه.
یه راه حل اولیه برای این مسئله اینه که اعداد مشترک بین دو تا لیست اول رو محاسبه کنید بعدش اعضای مشترک بین لیست جدید و لیست سوم.
برای پیدا کردن مشترک دو تا لیست هم یه راه حل اینه که با حلقه روی اعضای یکی حرکت کنید، اگه این عضو توی اون یکی بود که خب مشترک هستن وگرنه نه.
سلام ممنونم از پاسخ شما، من کامل ننوشتم، کد پاین اسکریپت هستش، راستش هم میخوام ۳ یا بیشتر از کندلهایی که بدنشون توی یک خط هستن را علامت گذاری کنم ولی فقط یک قیمت مورد بررسی قرار میگیره و از بقیه حلقه گذر میکنه
این دقیقا کدی که نوشتم، حالا ۲تا هم اکی هست، چون مشکلم اینه که هر عددی میزارم مثلا ۰.۰۱ فقط یکبار جمع میکنه و اگه مساوی با بعدی بود که good رو اضافه میکنه وگرنه دوباره حلقه را تکرار نمیکنه
میخواستم ببینم دستور if اشتباه نوشتم، یا for, یا چی؟ تشکر از شما
من و همکاران مجموعه با این زبان آشنایی نداریم متأسفانه. بهتره از افراد و سایتهای حوزهٔ موردنظرتون سؤال کنید.
سلام با چه دستوری میتونیم مثلا داخل بازیه حدس عدد تعداد دورهایی که بازیکن انجام میده رو بشماریم؟
سلام
دستور خاصی برای چنین کاری نیست. میتونید متناسب با کدتون یه راهحل پیدا کنید. مثلاً مقدار یه متغیر رو در هر بار اجرای بازی افزایش بدید.
ببخشید میشه راه حل این سوال رو بگید ممنون میشم:
به کمک حلقه های تکرار برنامه ای بنویسید که از کاربر بپرسد :
چند عدد را میخواهی باهم جمع کنی ؟
بعد از ورود عدد توسط کاربر، برنامه به همان تعداد وارد شده توسط کاربر، سوال بپرسد چه عدد وارد کنید.
در نهایت، برنامه باید اعداد وارد شده را باهم جمع بزند.
سلام
شما میتونید ابتدا تعداد اعداد رو بگیرید. سپس در یه حلقه (که به همون تعداد تکرار میشه) با دستور input که در دوره رایگان آموزش داده شده هر بار یکی از اعداد رو بگیرید و جمعشون کنید.
سلام.ممنون از آموزشتون خیلی کامل و کاربردی بود فقط کاش میشد حلقه تو در تو رو کمی بیشتر توضیح میدادید.تشکر
سلام
خوشحالیم برات مفید بوده 🙂
در دوره رایگان یادگیری مکمل پایتون مثالها و نکات آموزشی ریزتر رو بررسی میکنیم. چند مثال از حلقهها در جلساتِ منتشرشدهی فعلی هست و حتماً در جلسات آینده چند مثال کاربردی از حلقههای تودرتو هم میزنیم.
سلام،آموزش جالبی بود بهتر از همه سایت ها توضیح داده بودین
خوشحالیم براتون مفید بوده سیاوش عزیز
با سلام خدمت اساتید محترم.
خواستم بدونم چطور دو تا لیست رو با حلقه فور به صورت متناوب با هم ادغام کنیم؟ممنونم
سلام
منظورتون از متناوب چیه؟ میشه یه مثال بزنید؟
میتونید با حلقه forروی لیست حرکت کنید. حالا میتونید یه لیست جدید داشته باشید و اعضای این لیستها رو به صورت تصادفی یا ترتیبی به لیست نتیجهتون اضافه کنید.
تشکر از بازتاب نظر شما در مورد طراحی فرستاده شده هم نظر دهید البته از
دستوراتی که از جاهای دیگه وفیلمهای اموزشی یاد گرفته ام طراحی انجام داده ام بخاطر این بود که این توانایی ایجادخلاقیت رو در خودم دیدم البته در ابتدا وقت زیادی گذاشتم و از ازمون خطا استفاده کردم جدیدا هم باسایت شما اشنا شدم مطالبی رو فهمیدم
با توجه به ریاضیاتی که بلد هستم امید که با دستور های جدید هم بتوانم خلاقیت بخرج دهم و مدیون شما نیز شوم با وجود سن بالا دراین زمینه خود را علاقه مند وخلاق میبینم اگر نظرتون در مورد برنامه طرح بالا و طراحی با دورنگ و استفاده از حلقه for ورسم circleمثبت است طرحهای دیگه در سایت میفرستم والبته اگر راهنمایی هایی کنید مدنظر قرار می دهم همچنین دوستانی که برنامه بالا را تایپ و یا کپی اجرا کردند نظر دهند
درود
خیلی خوشحالیم که اینقدر انرژی و علاقه دارید و به یادگیری و پیشرفتتون اهمیت میدید. 🙂
حتما کدتون رو اجرا و نظرمون رو میگیم.
توی این مسیر هر جایی کمک یا راهنمایی از ما برمیومد بدونید که تیم ما همراهتونه.
با سلام واحترام با این نظرات مثبت و بزرگوارانه گروه را در این زمینه مأوا ی خودم میدانم
امید به اینکه هم بیشتریاد بگیرم و هم بازتاب آنرا باطراحی های زیبا در گروه قرار دهم طراحی با turtle و lakiبرای من دنیای زیبایی شده لذت بخش
مدتی پیش دنبال جایی دنبال دستور رسم بیضی به روش ساده میگشتم جایی یک روش ساده با استفاده circle
پیدا نموده و بارسم بیضی طراحی هایی انجام دادم ولی هنوز قانع و راضی نشده ام و پی دستور های کاملتر و اصلی رسم ellipce
با استفاده کانونها و aوb(نصف قطرهای کوچک وبزرگ) یا مختصات آنهاهستم
دستورهایی دیده ام (فکر کنم درسایت های خارجی بود) کمی تعریف ها (def) پیچیده بودوخیلی قابل فهم برای من نبود
سلام میخوام بدونم کنترل متغیر حلقه for چجوری میتونه باشه. مثلا قصد دارم 5تا عدد رو از کاربر بگیره و میانگین اون رو حساب کنه. اگر عدد منفی وارد کرد پیغام بده که دوباره فرضا عدد سوم رو وارد کن. فقط میخوام با for باشه و الا میشه با while یه شمارنده گذاشت و دستور countinue. ممنون
سلام
روشهای مختلفی داره و بنا به نیازتون میتونه متفاوت باشه!
مثلاً اگه مقادیر رو از قبل دارید، یه حلقه روی اون مجموعه بزنید و هر جا منفی بود، همون لحظه یه وجودی جدید بگیرید ازش.
اگه قراره توی حلقه input اجرا بشه، میتونید for رو 5 بار (
i in range(5)
که استفاده هم نمیشه) اجرا کنید و همین روندی که توضیح دادید رو داخلش پیاده کنید. (با شرطها)تقدیم به دوستان و ادمین سایت با اجازه اساتید گروه هنگام کپی جای چپ وراست عوض شده شما کپی کنید در پایتون پیس کنید درست میشه اجرا کنید لذتش رو ببرRoostaie اگه استقبال شد جالب ترهم میفرستم
درود بر شما موفق باشید این عالی است بعد از هر دستور مثال میزنید
در تدریس پایتون در کار وفن اوری استفاده میکنم و باوجودی که همه دستورهادنمیدانم طراحی های زیبایی با سرکل و .فور( circle,for)وچند ضلعی ها انجام داده ام
چقدر عالی
خیلی خوشحالیم که این آموزشها براتون کاربردیه.
سلام چطور میشه یه کلمه دلخواه را در رشته ای دلخواه با تمام تکرار هاش و ایندکس هاش پیدا کرد میشه کمک کنید
سلام
اگه میخواید از توابع آماده استفاده کنید؛ توی ماژول re تابعی به نام
re.finditer()
وجود داره که تمام تکرارهای آرگومان اولش رو در رشته آرگومان دومش بهتون بر میگردونه. شاید براتون کاربردی باشه.چطور با حلقه ی فور
برنامه ای بنویسم که تعدادی عدد مثبت از کاربر بگیره(پایان برنامه با عدد صفر مشخص میشه) و برای هر عدد مجموع ارقام آن را چاپ کنه
برای گرفتن ورودی که از input میشه استفاده کرد. برای اینکه چندتا باشه هم درست تشخیص دادید و باید از حلقه کمک بگیرید.
اینکه پایان با 0 باشه، یه شرط لازمه.
برای مجموع ارقام روشهای متفاوتی دارید. مثلاً باقیمانده عدد بر 10 رو تا زمانی که تقسیم صحیحش بر 10 صفر نشده با هم جمع بزنید. یه جورایی یکانها رو جمع و از عدد اصلی حذفش کنید.
سلام وقت بخیر
من میخوام برنامه ای بنویسم که شماره ای رو ازم بگیره و تا 100 عدد بعدی رو بهم نشون بده ، هیچ جا نگفتن که چطوری میشه به تعداد خاصی رسید حلقه تکرار خود به خود متوقف بشه
سلام
برای خروج از حلقه که break کنید کافیه. یه روش اولیه برای شمردن دفعات تکرار استفاده از یه متغیر و افزایش اون در هر دور از حلقه است. کافیه یه شرط بذارید وقتی مثلاً counter به 100 رسید، از حلقه break کنه.
تیم پشتیبانی! بنظرتون این راه حل ساده تر نیست تا توضیحات شما؟! :))
بله محمد حسین عزیز. اینم یه راه حله. قطعاً برای حل یه مسئله راههای مختلف با مزایا و معایب مختلف داریم.
سلام ،میشه بیش از دو حلقه تو در تو داشت؟
for منظورمه
سلام
بله چرا نشه؟! 🙂 هر چندتا حلقه بخواید میتونید تودرتو تعریف کنید. حتی اگه همهاش از یه جنس (مثلاً for) نباشه.
ولی دقت کنید که وقتی خیلی تودرتو کار کنید، خوانایی کدتون کاهش پیدا میکنه و رفع ایراد و توسعه سختتر میشه. پس تا حد امکان کمترین سطح تو در تویی رو استفاده کنید.
سلام با چه دستوری میتونم تو پایتون مثلا وقتی به عنوان ورودی یک لیست از 20 کلمه بهش میدم اون لیست رو به صورت رندوم و در دسته بندی 5 کلمه ای در 4 لیست جدا بهم تحویل بده خیلی فوری و حیاتیه جوابش برام ممنون میشم زود دیده بشه و پاسخ داده بشه. با تشکر
سلام
یه دستور مخصوص نداره! میتونید با
random.shuffle
لیست اولیهتون رو بهم بریزید و بعدش درون یه حلقه یا حتی با list comprehension (از دوره مکمل) لیستهای کوچیکتر رو ایجاد کنید.سلام چجوری لیست رو تقسیم کنم برای کارو فناوری هفتم درس آخر
سلام
یه راهحل اولیه استفاده از slicing در لیستها هست که توی جلسه listها در دوره بررسی شده. البته این کار باید در یه حلقه انجام بشه که احتمالاً این تیکه رو درست تشخیص دادین.
چطوری میتونم برنامه ای بنویسم کهtrigram هارو بشمارد؟
مثلا برای این لیست بگه 7 بار کلمه 3 حرفی تکرار شده
منظورتون از trigram همین کلمات ۳ حرفیه؟!
داخل حلقه از تابع
len()
و یه ساختار شرطی میتونید استفاده کنید. هر جاlen(word)
برابر 3 بود یکی بشماره. (word همون اعضای لیست در چرخش حلقه هست)چطوری میتونم مشخص کنم حلقه تکرار چند بار اجرا شده؟
مشخص کنید که چند بار اجرا بشه یا بعد از اجراش بفهمید چند بار اجرا شده؟ اگه دومیه، سادهترینش اینه که یه متغیر بذارید و در بدنه حلقه یه دونه بهش اضافه کنید. (خودتون بشمرید)
پرهام عزیز میتونید در انتهای دستورات
و در حلقه while
سلام من میخوام از کاربر یک تعداد عدد بگیرم و تا کاربر تمام را ننویسد از کاربر عدد بگیرد میشه کمکم کنین که چجوری بنویسم
سلام
میتونید از حلقه بینهایت استفاده کنید و وقتی «تمام» رو نوشت break کنید. یه نمونه از این کار رو در جلسات بخش دوم دوره مکمل پایتون با هم تمرین کردیم.
سلام ببخشید من در حال اموزش هستم و می خوام بدونم چجوری ۲ تا list رو در یک حلقه for با استفاده از format بنویسم
سلام
منظورتون رو متوجه نمیشم! یه مثلا از خروجیتون میزنین؟
سلام
خسته نباشید
تو قسمت تابع Range برای مثال ( جمع اعداد 1تا 9 ) این کد رو قرار دادین
بنظرم بجای
print(i)
بایدprint(result)
قرار بگیره!سلام
بله کاملاً صحیحه. اصلاح شد. ممنون که بهمون گفتین.
سلام چطور میشه همچین چیزی ساخت با حلقه :
1) ali : 24
2) mohamad : 25
.
.
.
سلام
از روی چه چیزی میخواید این کار رو انجام بدید؟ ساختمان دادهتون چیه؟
با دریافت ورودی از کاربر
تقربا حلش کردم
ولی وقتی لیست دوم رو پیمایش میکنم فقط عدد آخر لیست پیمایش میشه
یه پیشنهاد، داخل حلقه، کل لیست رو پرینت کنید، ببینید آیا دیتاها صحیح هستن یا نه. اگه درست بودن یه مرحله برید قبلتر، یعنی بعد از اینکه ورودی رو گرفتید همه رو پرینت کنید ببینید دادهها صحیح باشن.
اگه درست بودن احتمالا مشکلی که میگید از نحوه اجرای حلقه باشه که باید کدتون مرور بشه.
میتونبد از لیست استفاده کنید و دستورت insert
ایندکس ها رو دو تا دوتا براشون بزارید
ایندکس 0 علی
ایندکس 1 عدد 24
ایندکس 2 محمد
و…
سلام ممنونم از اموزش خوبتون:
من میخوام یه حلقه بنویسم از ۱ تا ۲۰ که ۳ تایی اعداد اضافه بشن ولی بدون استفاده از step
سلام
چندین تا راه حل دارید! مثلاً اعداد 1 تا 6 رو داشته باشید و درون حلقه سه برابر کنید. یا روی 1 تا 20 حرکت کنید و یه شرط بذارید اگه ضریب 3 نبود، اون حلقه رو continue کنه.
سلام تو تابع range چرا نمی تونم عدد اعشاری بزنم
سلام
چون برای اعداد صحیح تعریف شده. برای رنج اعشاری میتونید از
numpy.arange()
در ماژول numpy استفاده کنید یا خودتون با ضرب و تقسیم اعداد، صحیح رو به اعشاری تبدیل کنید.سلام وقت بخیر.
در حال آموز دیدن هستم. باید تمرینی رو انجام بدم که در اون یک رشته حروف رو دو تا دو تا برش بزنم و در نهایت این لیست جدید رو پرینت بگیرم. چطور می تونم از حلقه ی for استفاده کنم؟!
با سپاس فراوان
سلام
اگه حتماً باید از حلقه استفاده کنید میتونید حروف رو دونه دونه بههم وصل کنید. یه شمارنده بذارید وقتی که ۲ تا شمرد حروفی که بهم وصل شده (۲ تا) رو داخل به لیست قرار بده و شمارنده صفر بشه…
اگه اجباری در کار با loop های پایتون نیست، میتونید از slicing که در جلسه لستها مثال زدیم روی رشته استفاده کنید.
یه برنامه نوشتم با for میخواهم تکرار های قبلی که انجام داده که اشتباه بوده رو تو نتیجه نشون نده و فقط اون جیز درست رو نشون بده /// فرض کنید یه لیست دارم توش 30 تا رشته داریم کلمه “ali” هفده هومی سترینگ است در تکرار 16 تا قبلی که اشتباه بود پاک بشه و نشون داده نشه یا اگه همه اشتباه بود فقط یک بار بگه که اشتباه هست چی کارکنم؟
سلام
چرا از یه شرط برای بررسی وضعیتتون استفاده نمیکنید؟ اگه برقرار بود که در خروجی چاپش کنید وگرنه هیچ کاری انجام ندید.
سلام
به یک مشکلی برخوردم ممون میشوم کمکم کنید
میخواهم در حلقه for از یک ،تا یک تعداد عدد زیاد رو پوشش بدم
اما این تعداد زیاد عدد رو نمخواهم تایپ کنم
مثلا بگم 10تیلیارد به عدد
چطور میتوانم به مفسر پایتون این عدد زیاد رو بدم؟
ممنون میشومپاسخ دهید .
سلام
حداکثر عددی که میتونید توی سیستمتون در یه متغیر تعریف کنید رو میتونید از ماژول sys و با تابع maxsize در نسخه 3 و maxint در نسخه 2 ببینید.
اگه عددی بیشتر از این بود، مطمئن نیستم که بتونید ذخیره کنید یا نه.
اما یه راهحل جایگزینِ پیشِ پاافتاده اینه که مثلاً اگه قراره 120 حلقه اجرا بشه و حداکثرمون 100 هست، 100 تا رو اجرا کنیم و 20تای بعدی رو جداگانه تعریف کنیم.
سلام
ببخشید من میخواستم با استفاده از حلقه هاnوm رو از کاربر بگیرم و بررسی کنم آیا عددmدر بین n عدد وارد شده بود ه یا نه اگه هست چندمین عدد هست میشه توی این حلقه یه راهنمایی بکنید
سلام
برای گرفتن ورودی که میتونید از
input()
استفاده کنید. جلسهاش رو از دوره رایگان ببینید.اگه n تا عدد میگیرید احتمالاً اون رو داخل یک لیست قرار میدید. حالا میتونید با کلمه کلیدی in چک کنید آیا m وجود داره یا نه. اگه وجود داشت با یه حلقه شروع کنید بشمارید تا به عدد برسید.
سلام خسته نباشید،یه قسمت از نوشتن کد به مشکل خوردم ممنون میشم کمک کنید،یه فایل تکست دارم توش کلی کلمه هستش میخوام کدی بنویسم که هر بار به صورت رندم مثلا ۱۵ تا از کلمات رو انتخاب کنه و مثلا اگه تعداد کلمات ۵۰ تا هست،تمامی حالات ترکیب ۱۵ تایی اون ۵۰ تا کلمه رو انجام بده و خروجی تحویل بده،یعنی مثلا یه بار a b c ,b c a,c a b,c b a,a c b و… لطفاً کامل کد هارو بنویسید متوجه بشم
ممنون میشم کمکم کنید
سلام
حتماً باید با حلقه انجامش بدید؟ تابع
permutations()
در ماژول itertools همه جایگشتهای یه لیست رو میسازه و بهتون میده. برای نحوه استفاده از ماژولها هم میتونید جلسه ماژول در پایتون رو ببینید.سلام مجدد ممنونم بابت راهنماییتون،راستش نه مهم نیست با چه ابزاری فقط میخوام بتونم خروجی مد نظر رو بگیرم،تا به حال با این تابع کار نکردم اگر بتونید کمکم کنید کد های مد نظر برنامه رو بنویسم عالی میشه یا خودتون برام بنویسید🙏
فرض کنید یه لیست داریم مثل
['a','b','c']
و اون رو بهitertools.permutations()
میدیم. خروجی این تابع یه لیست از همه جایگشتهای ممکن ازا عضای لیسته.شما فقط کافیه لیست کلماتتون رو بهش بدید تا براتون ایجادشون کنه. حالا میتونید نتایج با اندازه خاص رو فیلتر کنید. مستنداتش رو چک کنید، ممکنه آرگومانی برای این هم داشته باشه که ما اطلاعی نداریم.
واقعا ممنونم ازتون،متوجه شدم و آموزش های استفاده ازش رو پیدا کردم،یه دنیا تشکر بابت سایت عالی و اکتیوتون و پاسخگویی سریعتون،راستش کلی توی اینترنت گشتم به فارسی و انگلیسی کلی فیلم دیدم ولی نتونستم تا قبل از این،پاسخ سوالم رو پیدا کنم🙏💐
خیلی خوشحالیم که به نتیجه رسیدید. 🙂
راستی اگه دوست دارید در زمینه برنامه نویسی و مخصوصاً پایتون قویتر بشید تا اواخر این ماه دوره مکمل پایتون منتشر میشه. میتونید مجدد بهمون سر بزنید.
موفق باشی
از تابع رندوم در ماژول مث استفاده کنید
یک لیست کنید این پوت ها رو و بفرستید داخل رندوم
سلام
ممنونم اگر پاسخ بدید
من یک رباط دارم میخاد چهار تا لامپ را روشن کند نوبتی
میشه کمکم کنید
چجوری بنویسم
سلام
احتمالاً تعدادی شیء (متغیر) دارید. میتونید اینها رو توی یک لیست نگه دارید و در بدنه حلقه، پردازش لازم برای روشن کردن این چراغها رو انجام بدید.
سلام من اگر که یک لیبل بسازم که text ان متغیر نباشه و در یک حلقه هم باشه که هر بار تکست به اضافه ۱ در پنجره لیبل وقتی اجرا میشه خب هی ۱ ۲ ۳ ۴ را از بالا به پایین مینویسه حالا چه دستوری هست که بعد هربار به اضافه شدن بیاد و تکست را پاک کنه نمیخوام تکست بسته بشه فقط میخوام پاک بشه که زیر هم ۱ ۲ ۳ ۴… نوشته نشه
سلام
لیبل رو در کجا و چطور ایجاد میکنید؟ اگه با tkinter هست شما میتونید کل متن label رو تغییر بدید به جای اضافه کردن به متن قبلی.
سلام چجوری میتونم که از حلقه ها در یک پنجره استفاده کنم؟میخوام همزمان که پنجره باز هست حلقه کار کنه.
سلام
بستگی به برنامه و کدتون داره. در هر صورت میتونید از چند پردازشی Thread در پایتون استفاده کنید.
سلام من یه الگوریتمی میخوام که وقتی از کاربر عدد ورودی گرفته میشه اگر عدد مثلا کمتر از ۴ عدد بود ارور بده
سلام
جلسه مربوط به تعریف شرطها رو ببینید. بهراحتی میتونید یک شرط بذارید که «اگر» رو اجرایی کنه. برای گرفتن ورودی هم در جلسات بعدی تابع
input()
استفاده میشه.سلام با شرط ها و ورودی آشنایی دارم منظورم اینکه اگر از ۴ کم بود نبود منظورم اگر تعداد اعدادی که وارد میشه کمتر از ۴ بود حالا حتی کتی اگر ۹۹۹۹ وارد بشه
امکانش هست یک نمونه ورودی صحیح و غلط مدنظرتون بفرستین؟
اگه منظورتون تعداد ورودیهاست، که میتونید با یه شمارنده کنترل کنید! یا همه رو داخل یک لیست قرار بدید و اندازش رو محاسبه کنید.
سلام اره منظورم همینه که فقط بشماره چند عدد وارد شده در مورد شمارنده اگر بهم بگی چجوری استفاده کنم ممنون میشم.
بستگی به نیازتون در برنامه داره!
مثلاً میتونید یک شمارنده بذارید که تعداد کل ورودیها رو بشماره. یعنی هر بار
input()
اجرا شد، خط بعدشcounter+=1
بشه.پیشنهاد میکنیم یه حلقه بنویسید که چهار بار اجرا بشه و چهار ورودی رو بگیره. کاربر به هیچ عنوان نمیتونه تعداد کمتر یا بیشتر وارد کنه! اینطوری نیازی به خطا دادن هم نیست.
سلام خسته نباشید
یه سوال داشتم
اینکه من میخوام چند تا عدد بدم به حلقه و معدل اش رو واسم حساب کنه (تعداد اعدادی که میدم مشخص نیستش ) چیکار باید بکنم که این تعداد این عدد های ورودی رو بدست بیارم ؟
سلام
میتونید همه اعداد رو در لیست قرار بدید و روی اون حلقه بنویسید.
for n in nums:
اینطور تعدادشون باlen(nums)
به دست میاد. جلسه قبل آموزش رو حتماً ببینید.سلام خسته نباشید
یه سوال داشتم اینکه من میخوام تعداد متغیر های که وارد میکنم رو بدست بیارم ، ینی اگر چهار تا عدد دادم بهش بهم بگه که چهار تا ورودی داشتم یا اگه ده تا بدم ….
ممنون میشم کمکم کنید
سلام
دارید در یک حلقه از کاربر ورودی میگیرید؟
اگر تعداد متغیرها نامشخصه معمولاً از لیست استفاده میشه که میتونید در انتها اندازه لیست رو محاسبه کنید. در مجموع هم میتونید در هر بار گرفتن ورودی، یک شمارنده رو افزایش بدید.
سلام و درود به گروه پر فعال سبز دانش میخوام یک الگوریتمی ساده تعریف کنم با جملات شرطی مثل این:
بعد الان اگر که در ورودی نوشته بشه امیر از لاین مثالی ۳۵ شروع کنه به اجرا برای این کار از چه دستوری استفاده کنم؟خیلی تو اینترنت گشتم چیزایی در مورد goto دیدم حالا نمیدونم درسته یا اگر درسته چجوری باید از دستور استفاده کرد
سلام
حلسه بعدی آموزش پایتون رو ببینید. شما بهتره یک تابع تعریف کنید و به جای goto اون تابع رو فراخوانی کنید تا کدهای موردنظرتون اجرا بشه.
سلام من میخوام یک کروموزوم 5 تابیی بین 0و1 بگیرم به صورت تصادفی تکراری بودنشم مهم نیست میشه بگین به چه صورت؟
سلام. بسته به نیازتون از لیست یا تاپل استفاده کنید.
برای مقدار هر عضو هم میتونید از تابع
random.random()
استفاده کنید.میخوام که به ترتیب اعداد بین ۱ تا ۱۰۰ را نمایش بده ولی وقتی به مضارب ۳ رسید بجای پرینت آن عدد مضرب,یک کلمه ای را نمایش بده مثلا same
به راحتی میتونید از یک شرط if در داخل حلقه استفاده کنید: «اگر مضرب سه بود، کلمه رو پرینت کن در غیراینصورت عدد رو چاپ کن»
ممنون فقط اینکه این کد را نگاه کن
الان اگر که ران بشه 12m34m567 را در کنسول نشان میده و دوباره اون مضارب ۳ را نشان میده چجوری میتونم کاری کنم که دوباره عدد مضارب را نمایش نده مثلا فقط ۱۲m45m78m را نشان بده
باید
print(num)
رو در بلوک else و بعد از if قرار بدید. اینطوری یا m چاپ میشه یا عدد مورد نظرتون. راستی، افزایش num رو هم در انتهای حلقه انجام بدید.سلام من میخوام یکجوری فقط ورودی گرفتن از کاربر را تکرار کنه کدی که نوشتم از کاربر یک خروجی پیشبینی شده میگیره و نسبت به اون سوال یک پاسخی را میده میخوام فقط این ورودی تکرار بشه و سوال و جواب های قبل توی کنسول قابل نمایش باشه و حذف نشه
سلام
کاری که میخواید انجام بدید کمی برامون نامفهومه! اگر میخواید یک ورودی بگیرید و متناسب با اون پیامی رو چاپ کنید، میتونید همین قسمت از کدتون رو داخل یک حلقه بذارید.
برای باقی موندن خروجیها در کنسول هم تا زمانی که خودتون حذفشون نکنید، پیامهای printشدهی قبلی همچنان وجود داره.
با عرض سلام و خسته نباشید به تمام دوستان
من یه الگوریتمی میخوام که با استفاده از دوتا لیست بتونه مثلا یه گزینه از لیست اولی چاپ کنه و گزینه بعدیش از لیست دومی باشه و تا وقتی اینو ادامه میده که لیست اولی تموم بشه به آخرین گزینش برسه یعنی میتونه لیست دومی تکرار بشه
مثل:
ممنون میشم جواب مسئله رو بفرستین
سلام
شما میتونید یک حلقه روی اندیسهای لیست اولی (
range()
اندازه لیست) بنویسید و برای دسترسی به عنصر معادل در لیست دوم از اندیسi ٪ len(mylist_2)
استفاده کنید.در کل همیشه سعی کنید در چنین مسائلی، بین اندیسهای لیستها ارتباط برقرار کنید و در حلقه پایتون بهکار ببرید.
سلام میشه لطفا کدشو بهم بدین اگه میشه لطفا
سلام
اگر صرفاً نیاز دارید بین اعضا دوبهدو ارتباط برقرار کنید، از تابع
zip()
استفاده کنید. این تابع دو لیست رو میگیره و یک شئ از دوتاییهایی میده که یک عضو از لیست اولی و یکی از دومی دارن.از تابع dict استفاده کن
الگوریتمی بنویسید که مضارب پنج بین هزار تا ده هزار را چاپ کند؟
فقط میخوام که طوری باشه که خودم عدد بزرگتر از هزار و کوچک تر از ده هزار بهش بدهم مضارب پنج بین هزار تا آن عدد را چاپ کند…
سلام
میتونید از تابع
range()
برای تولید محدوده عددی مورد نظرتون استفاده کنید. ضریب ۵ بودن رو هم با باقیمانده تقسیمش بر 5 (x%5==0
) میتونید بررسی کنید.مثلا یک مثال خیلی ساده اینکه اعداد 1 تا 10 در یک سطر چاپ بشن
برای اینکه خروجی چاپشده در یک خط باشه، میتونید آرگومان end در print رو خالی تعریف کنید. بخش ترفندهای آموزش تابع پرینت پایتون برای تغییر خروجی رو ببینید.
ممنون از راهنماییتون مرسی
سلام ،خسته نباشید
مهندس من میخوام دستورات داخل حلقه در یک سطر اجرا بشن ،خودش خودکار به سطربعدی نره چیکار کنم
سلام
امکانش هست مثال بزنین از کاری که میخواید انجام بدید؟ یعنی نیازه بدنه حلقه فقط شامل یک خط باشه؟
عالی بودی
من اینقدر به مغزم فشار می آوردم نمیفهمیدم ولی این را خواندم هر آنچه خوانده بودم قابل فهم شد واسم.
ممنون فرشید عزیز بخاطر انرژی خوبت
خوشحالم که این آموزش برات کاربردی بوده. راستی، حدوداً تا یک ماه دیگه دوره رایگان مباحث تکمیلی و پیشرفتمون هم منتشر میشه. پیشنهاد میکنم چند وقت دیگه بهمون سر بزنی. 😉
سلام و درود فراوان بر تیم حرفه ای سبزدانش و جناب مهندس رجایی عزیز.
اون قطعه کد که باهاش f رو تعریف کردم در واقع محدوده فرکانس هست و از 0.1 به توان 9 شروع و تا 200 به توان 9 ادامه داره.
من این کار رو طبق توصیه شما به صورت لیست نوشتم و مشکل حل شد.
ممنونم از شما و تیم سبزدانش
امیدوارم در ادامه هم از توصیه ها و تجربیات شما استفاده کنم.
با سپاس فراوان
بسیار خوشحالم که با تلاشهای مداومت به نتیجه رسیدی محمدحسن عزیز 🙂
با سلام و درود فراوان بر شما تیم حرفه ای و ارزشمند سبزدانش.
روش شما فوق العاده بود. کوتاه و موثر و قابل درک
ولی وقتی من محدوده فرکانس رو طبق توصیه شما وارد کردم خطا داد.
این محدوده فرکانسی بود که میخواستم تابع mu_i(f) مقادیر رو از اون بگیره و لیست 1000 تایی mu_i ها رو بر حسب f رسم کنه.
خطای عدم تفسیر مقادیر غیرصحیح(float ) رو میده.
ممنونم و سپاسگزار از توجه همیشگی تیم حرفه ای سبزدانش.
من ایدهای از خروجی قطعه کدتون ندارم! الآن f چه مقداری میگیره؟ برای روشی که پیشتر گفتم باید یک لیست یا تاپل داشته باشید که جایگزین range بشه.
غیر از این روش هم میتونید از همین حلقههای پایتون استفاده کنید. یعنی در هر بار، f و سپس خروجی تابعتون رو محاسبه کنید و در لیست قرارش بدید.
سلام مجدد بر گروه دانای سبزدانش
درباره سوالی که قبلا پرسیده بودم میخام توضیح بدم. این کدی است که نوشتم.
teta و w0p هرکدام آرایه ای هستن با 3444 عضو.
خروجی کد بالا اینجوریه که به ازای هر مقدار f که به
mu_i(f)
محاسبات رو برای 3444 تا اعضا محاسبه می کنه و بعد متوسطش رو بهم میده.حالا من 1000 تا f دارم و باید این تابع به ازای 1000 تا f حساب بشه تا نمودار لگاریتمی من رسم بشه.
وارد کردن دستی 1000 تا f که سخته. وقتی هم حلقه for تعریف می کنم خروجی اش رو می تونم با فرمان پرینت بگیرم ولی باید بازم اون رو بصورت آرایه هزارتایی در بیارم تا بشه رسم کرد.
چجوری بهش بفهمونم ککه نتیجه این حلقه for رو یک آرایه 1000 کن که بشه اون رو به عنوان y و f هم رو به عنوان x در نظر گرفت و بعدا رسم کرد.
ببخشید از پپیام طولانی من
ممنونم و بسیار سپاسگزارم از شما
سلام
با حلقه هم میتونید لیست رو ایجاد کنید، ولی من یک روش کوتاهتر معرفی میکنم که مربوط به لیستها هست. در کد زیر محدوده فرکانس رو با تابع
range()
ایجاد کردم که لیستی از 0 تا 9 رو میده. شما میتونید لیست فرکانسهای مورد نظرتون رو جایگزینش کنید.حالا لیستی دارید از نتایج مورد نظرتون در فرکانسهای مورد نظر. پیشنهاد میکنم نوع ورودی تابعی که برای رسم نمودار میخواید استفاده کنید رو بررسی کنید که بتونید دو تا لیست برای x و y بدید.
موفق باشید.
برای دریافت ورودی پایه و توان
و بدست آوردن توان عدد با حلقه ها در پایتون باید چیکار کنیم؟
جلسه آموزش گرفتن ورودی با
ipnut()
رو ببینید. برای محاسبه توان اگه حتما باید حلقه استفاده کنید، میتونید به تعداد توان، پایه رو در خودش ضرب کنید؛ یه حلقه while در پایتون که در هربار ضرب انجام بشه و یکی از مقدار توان کم بشه.سلام. سپاس از آموزش. چرا در حلقه فور نمیشه ابتدا و انتهای بازه رو بصورت اعشاری گذاشت و پایتون ارور میده؟ با اینکه import decimal رو هم در ابتدای برنامه وارد کردم.
سلام
اگر در حلقه for پایتون از
range()
استفاده میکنید نمیشه مقدار اعشاری تولید کرد. اما اگر یک لیست از اعداد اعشاری بهش بدید مشکلی در حرکت روی لیست نداره.پیشنهاد میکنم ابتدا یک لیست از اعداد بازه اعشاری موردنظرتون بسازید و بعدش روش for رو اجرا کنید.
سلام
اگه بخوام از آخرین حلقه ی حلقه های تو در تو کلا خارج بشم چکار باید بکنم.
ممنونم
سلام
اگر بخواین از کل حلقهها خارج بشید، کافیه به جای break از return (حتما در تابع باشه) استفاده کنید.
ببخشید میشه بیشتر توضیح بدید چجوری return رو بیاریم
جلسه بعدی دوره که تعریف تابع هست رو ببینید متوجه میشید return چطوری استفاده میشه. اما یک مثال در زیر براتون میزنم:
سلام خسته نباشید آموزش هاتون عالیه
فقط یک سوال در مورد حلقه های تو در تو داشتم اگه من بخوام کاری کنم که حلقه داخلی break بشه اما حلقه بیرونیم ادامه داشته باشه باید چیکار کنم.مرسی
سلام محمد عزیز
وقتی break میکنی فقط از همون حلقه خارج میشه. یعنی اگه دو تا for تودرتو داشته باشی و داخل for دومی break بذاری، حلقه بیرونی همچنان ادامه پیدا میکنه.
مجدد تست کن، اگه مشکلی بود کدت رو هم بفرست تا با هم بررسیش کنیم.
بسیار ممنونم از این همه حسن توجه شما 🌹🌹🙏🙏
سلام دستورات کامل و خوب توضیح داده شده …درباره سرعت پاسخ گویی چطور هست ؟ آیا سوالات سریع پاسخ داده میشه ؟ امید وارم
سلام
خوشحالیم که براتون مفید بوده. ما در تیم سبز دانش سعی میکنیم تا یک روز پاسخ شما رو بدیم؛ اگه تخصصی یا خیلی سخت نباشه! 😉
سلام من خیلی چیز ها از سایتتون یاد گرفتم مرسی
خیلی خوشحالم که برای یادگیریت وقت میذاری علی عزیز. این پیامت کلی بهمون انرژی میده که با قدرت ادامه بدیم. 🙂
راستی، همه آموزشهای پایه پایتون رو میتونین در آموزش رایگان پایتون دنبال کنید.
اموزشها و بیانتون عالیه مرسی
خوشحالم که از آموزشها استفاده میکنید. 🙂