PDA

View Full Version : حلقه ی for با استفاده از else در python



faraz molaee
پنج شنبه 14 اسفند 1393, 12:12 عصر
با سلام
در مورد کد زیر با زبان pyhton نوشتم سوال داشتم. این کد در مورد حلقه ی for با استفاده از else .
از فاصله ی 10 تا 20 ، اعداد اول مشخص می شوند ، اما کد من جواب درست رو نمیده . لطفاً من رو راهنمایی کنید.

http://ideone.com/v7EfwE

arman54
پنج شنبه 14 اسفند 1393, 14:51 عصر
توي خط چهارم دستوراتت ب جاي d% از s% استفاده كن

faraz molaee
پنج شنبه 14 اسفند 1393, 23:35 عصر
توي خط چهارم دستوراتت ب جاي d% از s% استفاده كن

خیلی ممنون ، اشتباه من این بود که باید else: رو با همون فصله ی حلقه ی اصلی for قرار می دادم تا به عنوان عملیات قسمت خودش اشتباه نگیره و از حلقه خارج بشه .

BobiFX
جمعه 15 اسفند 1393, 02:57 صبح
شما بایدیک if داشته باشین و break بدین تا else اجرا بشه. این طوری که اصلا حلقه شما به else نمیرسه.
ضمنا کلا الگوریتم برنامه‌تون هم اشتباهه.
الان اگه دقت کنین میبینین که فقط برای j=2 فقط چک میکنه و break اجرا میشه.
for i in range(10, 20):
for j in range(2, n):
if n % x == 0:
print i, ' equals ', x, '*', n/x
break
else:
print n, 'is a prime number

این برنامه رو اجرا کنین. فکر کنم درستش این باشه.
خوش باشین،

faraz molaee
جمعه 15 اسفند 1393, 14:31 عصر
بله ، من کد شما رو اجرا کردم و درست بود . البته من اون کد رو از کتاب tutorials point نوشتم.
برام عجیب بود که کد من درست اجرا نشد اما کد کتاب درست اجرا شد!
خیلی ممنون ، لطف کردید

for num in range(10,20): #to iterate between 10 to 20
for i in range(2,num): #to iterate on the factors of the number
if num%i == 0: #to determine the first factor
j=num/i #to calculate the second factor
print '%d equals %d * %d' % (num,i,j)
break #to move to the next number, the #first FOR
else: # else part of the loop
print num, 'is a prime number'

aminpy
دوشنبه 06 آذر 1396, 17:57 عصر
لینک زیر هم خوب توضیح داده

کتاب پایتون - حلقه ها (https://amoozesh.org/python/for/)