• 1400/02/21

حلقه ها در پایتون :

سلام استاد

من تا حالا با زبان های مختلف کار کردم ولی هیچوقت نتونستم حلقه ها،مخصوصا حلقه های تو در تو رو درست یاد بگیرم.میشه در مورد کد زیر توضیح بدید که چرا در خط اول نتیجه خروجی میشه تا 10 تا ستاره؟مگه range نباید اینجا تا 9 باشه؟پس چرا تو خروجی من می شمارم تا 10 تا ستاره چاپ می کنه؟

:for num in range(1,10)

:if num % 2 == 1

:for star in range(1,6)

( star * "*")print

:else

:for star in range(5,0,-1)

( star * "*")print

ممنون

  • 1400/02/25
  • ساعت 10:46
for num in range(1,10):
	if num % 2 == 1:
		for star in range(1,6):
			print
( star * "*")
	else:
		for star in range(5,0,-1):
			print( star * "*")

سلام وقت بخیر

در خط اول داریم میگیم به ازای هر عدد در بازه 1 تا 10 که خود 10 حساب نمیشه و درواقع بازه num توی خط یک میشه 1 تا 9 به طور ساده تر کدی که زیر این حلقه for قرار داره 9 بار تکرار میشه

در خط دوم میگیم اگر num مورد نظر بر 2 بخش پذیر نبود یعنی به ازای num های فرد بیا یه تعداد ستاره برام چاپ کن

حالا چه تعدادی بازه 1 تا 6 که خود 6 حساب نمیشه و در واقع بازه 1 تا 5 رو داریم (یعنی 5 بار قراره تکرار شه)

تو هر مرحله هم گفتیم اون تعداد ستاره رو چاپ کنه یعنی وقتی star = 1 هست یدونه ستاره و وقتی star = 2 بود دو تا ستاره الی اخر تا وقتی star = 5 که 5 تا ستاره چاپ میکنه و از حلقه خارج میشه

بریم خروجی رو تا الان ببینیم قرار شد به ازای num های فرد تعدادی ستاره چاپ کنه :

*								# first forloop num 1
**								# first forloop num 1
***								# first forloop num 1
****							# first forloop num 1
*****							# first forloop num 1

								# first forloop num 2
								# first forloop num 2
								# first forloop num 2
								# first forloop num 2
								# first forloop num 2

*								# first forloop num 3
**								# first forloop num 3
***								# first forloop num 3
****							# first forloop num 3
*****							# first forloop num 3

								# first forloop num 4
								# first forloop num 4
								# first forloop num 4
								# first forloop num 4
								# first forloop num 4

*								# first forloop num 5
**								# first forloop num 5
***								# first forloop num 5
****							# first forloop num 5
*****							# first forloop num 5

								# first forloop num 6
								# first forloop num 6
								# first forloop num 6
								# first forloop num 6
								# first forloop num 6
								
*								# first forloop num 7
**								# first forloop num 7
***								# first forloop num 7
****							# first forloop num 7
*****							# first forloop num 7

								# first forloop num 8
								# first forloop num 8
								# first forloop num 8
								# first forloop num 8
								# first forloop num 8

*								# first forloop num 9
**								# first forloop num 9
***								# first forloop num 9
****							# first forloop num 9
*****							# first forloop num 9

حالا در ادامه میاد میگه اگر num زوج بود بیا برعکس این رو انجام بده یعنی مرحله قبل ستاره هارو از 1 تا 5 زیاد کردیم یعنی range مون 1 تا 5 بود الان range مون شده 5  تا 1 که همون طور که نوشته شده مینویسیم از 5 تا 1 با step -1 پیش میره که خروجی ما به این شکل میشه :

*								# first forloop num 1
**								# first forloop num 1
***								# first forloop num 1
****							# first forloop num 1
*****							# first forloop num 1
*****							# first forloop num 2
****							# first forloop num 2
***								# first forloop num 2
**								# first forloop num 2
*								# first forloop num 2
*								# first forloop num 3
**								# first forloop num 3
***								# first forloop num 3
****							# first forloop num 3
*****							# first forloop num 3
*****							# first forloop num 4
****							# first forloop num 4
***								# first forloop num 4
**								# first forloop num 4
*								# first forloop num 4
*								# first forloop num 5
**								# first forloop num 5
***								# first forloop num 5
****							# first forloop num 5
*****							# first forloop num 5
*****							# first forloop num 6
****							# first forloop num 6
***								# first forloop num 6
**								# first forloop num 6
*								# first forloop num 6								
*								# first forloop num 7
**								# first forloop num 7
***								# first forloop num 7
****							# first forloop num 7
*****							# first forloop num 7
*****							# first forloop num 8
****							# first forloop num 8
***								# first forloop num 8
**								# first forloop num 8
*								# first forloop num 8
*								# first forloop num 9
**								# first forloop num 9
***								# first forloop num 9
****							# first forloop num 9
*****							# first forloop num 9

برای درک این موارد بهتره کدهارو خط به خط بررسی کنید و ببینید چه اتفاقی میفته

من سعی کردم حتی الامکان خط به خط پیش برم تا باهم بررسیش کنیم 

در ادامه با تمرین موارد بیشتر این جور مسائل براتون جا میفته و نگران این موضوع نباشید

موفق باشید


logo-samandehi