جلسه چهارم
استفاده از دستور for
>>> for x in range(9): ... print x, ... 0 1 2 3 4 5 6 7 8 >>> for c in azin: ... print c ... Traceback (most recent call last): File "دستور range", line 1, in NameError: name 'azin' is not defined >>> for c in "azin": ... print c ... a z i n
در
مثالی که بررسی کردیم، از دستور range در حلقه ی for استفاده کردیم. دستور
range را به شکل مستقل از حلقه ی for هم میتوان استفاده کرد:
>>> range(5) [0, 1, 2, 3, 4] >>> range(0,9) [0, 1, 2, 3, 4, 5, 6, 7, 8] >>> range(0,9,3) [0, 3, 6]
مشاهده
میشود که دستور range در واقع لیستی از اعداد را تولید میکند، و دستور for
روی اعداد این لیست کار میکند. این لیستها مختص دستور range نیستند و
میتوان آنها را به صورت مستقل هم تعریف کرد.
لیست در پایتون
لیستها را مثل همه متغیرهای دیگر میتوان استفاده کرد:
درباره لیستها بیشتر بدانید: راهنمای رسمی پایتون، شیرجه به پایتون
**********************************
مسایل طرح شده در کلاس
برای اینکه درس را متوجه بشوید کاملا لازم است که این مثالها را اولا سعی کنید خودتان حل کنید و ثانیا راه حلها را با دقت بررسی کنید.
یافتن مجموع اعداد یک لیست
کشیدن یک شبکه ی 8*8
کشیدن یک صفحه شطرنج
سعی کنید برای این سوال کوتاهترین راه حل ممکن را نوشته و بفرستید، کوتاهترین راه حلی که تابحال فرستاده شده:
لیست در پایتون
>>> for x in ["egg", "apple", "orange"]: ... print x, ... egg apple orange
لیستها را مثل همه متغیرهای دیگر میتوان استفاده کرد:
>>> a = ["egg", "apple", "orange"] >>> for x in a: ... print x, ... egg apple orange >>> a[1] 'apple' >>> a[0] 'egg' >>> a[-1] 'orange' >>> a.append(34) >>> a ['egg', 'apple', 'orange', 34]
**********************************
مسایل طرح شده در کلاس
برای اینکه درس را متوجه بشوید کاملا لازم است که این مثالها را اولا سعی کنید خودتان حل کنید و ثانیا راه حلها را با دقت بررسی کنید.
یافتن مجموع اعداد یک لیست
>>> a = [1, 3, 5, 6] >>> sum = 0 >>> for x in a: ... sum = sum + x ... >>> print sum 15
کشیدن یک شبکه ی 8*8
from turtle import * for x in range(-32, 33, 8): penup() goto(-32, x) pendown() goto(32,x) penup() goto(x,-32) pendown() goto(x,32)
محمد حسین:
from turtle import * for x in range(20,161,20): fd(x) rt(90) fd(x) rt(90) fd(x) rt(90) fd(x) rt(90) pu() goto(160,-160) rt(180) pendown() for x in range(20,141,20): fd(x) rt(90) fd(x) rt(90) fd(x) rt(90) fd(x) rt(90)
کشیدن یک صفحه شطرنج
سعی کنید برای این سوال کوتاهترین راه حل ممکن را نوشته و بفرستید، کوتاهترین راه حلی که تابحال فرستاده شده:
from turtle import * c=["yellow","","black"] a=1 speed(500) for y in range (0,141,20): a=a*-1 for x in range (0,141,20): pu() goto(x,y) pd() a=a*-1 fillcolor(c[a+1]) begin_fill() seth(0) fd(20) left(90) fd(20) left(90) fd(20) end_fill() pu() goto(0,0) pd() seth(0) for i in range(4): fd(160) left(90) pu()
goto(140,-50) write("by Hirbod")برنامه نوشته شده توسط نگین:
from turtle import * goto (0,0) goto (80,0) goto (80,80) goto (0,80) goto (0,0) x=y=-20 for a in range (4): x=x+20 y=-20 for b in range (4): y=y+20 pu () goto (x,y) begin_fill () goto (x+10,y) goto (x+10,y+20) goto (x+20, y+20) goto (x+20,y+10) goto (x,y+10) end_fill ()میلاد:
from turtle import * s=Shape("compound") c="black" s.addcomponent(((0,0),(0,160),(40,160),(40,0)),"",c) for y in range(0,141,40): s.addcomponent(((0,y+20),(0,y),(20,y),(20,y+40),(40,y+40),(40,y+20)),c,c) register_shape("p", s) shape("p") stamp() sety(-40) stamp() sety(-80) stamp() sety(-120)
برچسبها: lessons
10 نظر:
injoori ham mishod nevesht oon khatte sum ro : sum += x
برنامهی ميلاد تو خونههای سفید چندتا خط اضافه ميكشه كه اگه "pu"، بهجاى قبل از "for" ِ دوم، قبل از "goto" ِ اول باشه مشكل حل ميشه.
مشکلی نداره که. همینو برداشتم دوباره اجرا کردم مشکلی نداشت. دقیقا چیه مشکل ؟
مشکلش چیه دقیقا ؟ من که مشکلی نمی بینم.
کسی کوتاهتر یا با یک for نمیتونه بنویسه؟
ولی من همين برنامه رو كه میزنم سه تا خط مورب عمودی رو خونههاى سفيد هست، و تا وقتى بين "for" ِاول و دوم خط خالى نيست "for" ِاول رو اجرا نمیكنه و مربع بزرگ رو نمیکشه.
این فایل رو امتحان کنید. (همین دستورات هست) شاید مشکل از کپی کردن باشه.
http://www.persianupload.com/676588
راستی، یادم رفت بگم که فایل py رو با python.exe که توی دایرکتوری نصب برنامه هست باز کنید. به احتمال زیاد خودش تنظیم شده.
بله خود برنامه درسته ولى نمیدونم چرا كپیش مشكل داره. مرسی از توضيح و فایل.
;)
ارسال یک نظر
اشتراک در نظرات پیام [Atom]
<< صفحهٔ اصلی