PDA

View Full Version : اموزش پایتون از صفر تا...



senaps
جمعه 14 فروردین 1388, 11:21 صبح
گر که قبلا مطالب اموزشی برنامه نویسی رو خونده باشید حتمی می دونید که یکی از معروفترین برنامه های اموزشی برنامه نویسی که خیلی هم ساده هستش برنامه ی hello world می باشد.
توی کمند پرامپت بنویسید:


Print “hello, world!”

خوب در این حال بعد از زدن enter خروجی شما هست:


Hello, world

)برای اونایی که پایتون 3دارن باید بنویسن:


Print (”hello, world!”)

(
هیجان انگیزه نه؟!خوب حالا بیاین اونو به یه برنامه تبدیل کنیم.توی ادیتور همون رو تایپ کنید (کاربرایIDLE باید برن به منوی fileو بعدnew.سپس دستورات رو بنویسن و بعدf5 رو بزنن.برنامه ازتون می پرسه که می خواید برنامه رو ذخیره کنید؟شما هم اونو تایید کنید و مطمئن بشید که پسوند.pyرو به انتهای اسم فایل اضافه کردید)(اگر که ازIDLE استفاده نمی کنید،کاربران لینوکس،یونیکس و داس ،برنامه رو با پسوند.pyذخیره کنید و برید به محلی که برنامه رو ذخیره کردید و سپس بنویسید .pyنام برنامه! ) (کاربران ویندوز هم باید برنامه رو با پسوند .py ذخیره کنید و بعد برید به جایی که فایل رو ذخیره کرده بودید و روش راست کلیک کنید و بعد هم open with.اگر که پایتون توی لیست بود که چه بهتر و اونو انتخاب کنیداما اگر که نبود باید در محل ذخیره فایل python.exe رو اجرا کنید)به هر حال اگه از این روش استفاده کردین وقتی که برنامه رو اجرا می کنین،صفحه ی داس یه فلش سریع می زنه و میره….تنظیمات در این حالت به کمند پرامپت میرن.
اگر به هر کدوم از راه های بالا شما برنامتون رو درست کردید پس افرین به شما!!!
خوب توی برنامه چی داره می گذره؟خیلی سادس،ما از دستور print برای نمایش مطالبمون روی صفحه نمایش استفاده کردیم.
خوب بیاین یه چیز دیگه رو امتحان کنیم:


print “Hello world! ” * 3
print "Goodbye!"

البته همونطوری که گفتم اونایی که پایتون ورژن 3دارن باید بنویسن:


Print (”hello, world!” * 3)



Print(”goodbye!”)

همنطوری که می بینید ما توی خط اول از یه چیز جدید استفاده کردیم…عملگر”*”.عملگر”*”ی عنی ضرب کردن!.نتیجه ی کد بالا شده:


Hello world! Hello world! Hello world!
Goodbye!

همونطوری که می بینید من بعد از کوتیشن(“) دو تا فاصله گذاشتم….دوستان توجه کنید که اگر که اون فاصله ها رو نمی زاشتم نتیجه می شد :


Hello world!Hello world!Hello world!

که زیاد جالب نیست.و همینطور هم goodbye هم خودکار در خط دوم قرار گرفته.
اگر که می خواید برنامه عبارت hello, world! رو به جای سه بار پشت سر هم توی سه خط بنویسه باید از (n \)استفاده کنید.مثلا کد بالا رو در صورت استفاده از“\n”


print “Hello world!\n” * 3

نتیجش میشه:


Hello world!
Hello world!
Hello world!

توجه کنید که اگر از نسخه3پایتون استفاده می کنید دستور رو باید به این شکل وارد کنین:


Print(”hello, world!\n” *3)

که نتیجش شده:


Hello world!
Hello world!
Hello world!

درس2

عدد های خروجی نیازی به علامت کوتیشن ندارند،عدد های داخل کوتیشن درست مثل متن ها هستند،در حالیکه اگر از کوتیشن استفاده نکیند می توانید عملیات ریاضی را انجام دهید…
شاید درکش براتون مشکل باشه برای همین توی ادیتورتون بنویسید:


print “1″ + “1″

و حالا بنویسید:


print 1 + 1

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


Print (”1″+”1″)

که نتیجه میشه:


11

و اگر بنویسید:


Print(1+1)

نتیجه میشه:


2

بار اولی که ما 2رشته را در کدهایمان استفاده کردیم،چه اتفاقی افتاد؟بار دوم شما اعداد رو هم اضافه کردید…
توجه کنید که شما نمی تونید رشته و عدد اضافه کنید!این تمرین رو انجام بدید:


print “1 plus 1 =”, 1 + 1
print "20 divided by 2 =", 20 / 2
print "100 minus 45 =", 100 - 45
print "64 times 2 =", 64 * 2
print 2 + 100 / 2

جواب هست:


1 plus 1 = 2
20 divided by 2 = 10
100 minus 45 = 55
64 times 2 = 128
52





منبع:senaps.co.cc

pystar
جمعه 14 فروردین 1388, 15:22 عصر
با سلام خدمت همه برنامه نويسان عزيز پايتون كار . منم تازه به جمع پايتون پروگرامر ها اومدم و خيلي خوشحالم كه زبان مورد علاقه مون در حال گسترشه .

البته ما ميتونم خود دستور print رو هم ننويسيم . مثلا:

"print "hello world!\n
print 2+3


كه ميشه معادلشو اينطور نوشت : "hello world!\n"
3+2

ولي معمولا براي خوانايي بيشتر برنامه بهتره نوشته بشه.

senaps
جمعه 14 فروردین 1388, 23:30 عصر
سلام



با سلام خدمت همه برنامه نويسان عزيز پايتون كار . منم تازه به جمع پايتون پروگرامر ها اومدم و خيلي خوشحالم كه زبان مورد علاقه مون در حال گسترشه .

البته ما ميتونم خود دستور print رو هم ننويسيم . مثلا:


"print "hello world!\n
print 2+3


كه ميشه معادلشو اينطور نوشت : "hello world!\n"
3+2

ولي معمولا براي خوانايي بيشتر برنامه بهتره نوشته بشه.
100%



تمرین:اونایی که پایتون3دارند ببینند می تونن که متن بالا رو ایجاد کنن؟البته من جوابش رو در پایان این اموزش می زارم ولی خودتون تمرین کنین که ببینین یاد گرفتین؟اگر نتونستید درستش کنید بعد از 3بار تمرین کردن حتمی 1بار دوباره کل اموزش رو بخونین و بعد برید برای ادامه(تا تمرین نکنین چیزی یاد نمی گیرین.
خوب این برنامه (تمرین بالا)شرحی نمی خواد و خودش خودش رو توضیح می ده!اما یه نکته هست که باید روشن و مشخص بشه برای شما دوستان،اونم اینه که کاما خودش فاصله ایجاد می کنه...
به هر حال در عملیات ریاضی پایتون هم شبیه به زندگی واقعی محاسبات رو انجام می ده و شما برای ایجاد اولویت در انجام محاسبات باید از کمانک"()"یا همون پرانتز استفاده کنید...مثلا در مثال زیر اولویت محاسبه اول جمع و بعد تقسیم می باشد:




(2+100)/2



نتیجه میشه:



51


ترتیب اولویت ها بشکل زیر می باشد:




پرانتز ها ( )



عدد های توان دار/عدد های جذر دار(در محاسبه باید مجزومشان محاسبه گردد)



عملیات های ضرب/تقسیم



عملیات های جمع/تفریق

و اینکه علامت تعریف کننده ی عملیات ها هم در پایتون بهشکل زیر است:




** توان



* ضرب



/ تقسیم



% باقیمانده



+ جمع



- تفریق


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




Welcome!



Hello!



Three time's three plus six is15



What is 8 time 8?



8*8=64

2-برنامه ای بنویسید که حداقل از3 تا از عملگر های ریاضیات بالا استفاده کند تا با عدد 2بالا بیاید!
جواب تمرینی که در اول درس داده بودم:




print("1 plus 1=2")



print("100 minus 45=55")



print("64 times 2=128")



print("52")

درس3: متغییر ها

متغییر ها اساسا جاهایی ذخیره شده هستند برای اعداد و رشته های شما...
شما فقط در صورتی باید از متغییر ها استفاده کنید که دارای رشته ها و اعدادی منظم و با قاعده باشید و بخوایید از اونها یک متغییر درست کنید.برای ساختن یک متغییر ابتدا نام متغییر رو بنویسید بعد"=" و بعد چیزی که متغییر به ان ارجاع داده می شود.
مثال:




a = 1
b = 2
c = "My new number is:"
d = a + b
print "a is", a
print "b is", b
print c, d
b = 1
print c, d

خوب نتیجه میشه چی؟




a is 1



b is 2



my new number is: 3



my new number is: 3

عزیزانی که پایتون 3 رو دارن باید چی بنویسن؟(خودتون یه تست بزنید ببینید می تونید!)





a = 1



b = 2



C = "my new number is:"



D= a + b



Print ("a is", a)



Print ("b is", b)



Print (c, d)



B=1



Print(c, d)

خوب اون بالا چه خبره؟!ما عدد 1رو به حرفa و عدد2 را به حرفbو همینطور عبارت my new number is: را به حرفc وهمچنین مجموع حروف aوb را به حرفd ارجاع دادیم.همینطور اینکه ملاحظه کردید که وقتی من مقدار b رو در هشتمین خط عوض کردم،در جواب dتغییری نکرد چون این متغییر عدد3رو ذخیره و نگهداری کرده نه اعداد مرجوع شده به a و b رو.
یه مثال دیگه:




a = 3
b = 1
print a, b
a = b
print a, b

که نتیجه میشه:




3 1
1 1

خوب 3 خط اول باید واضح باشند ولی بیاین نگاه نزدیکتری به خط 4داشته باشیم:
وقتی که ما گفتیم که a=b ما مقدارb رو به a نسبت دادیم،و خورجی11رو گرفتیم از این کد.چرا چون مقدار b 1هستش و ما گفتیم که a مقدارش همون مقدارbهستش. این دستور خیلی مهمه. و قدر مسلم اینه که اگه می گفتیم b=a پس نتیجه می شد3.پس یادتون باشه که توی اینجور فومرول،طرف چپ مقدارش همون مقدار سمت راستیه هستش...
اینکه ما یک مقدار رو به دوتای دیگه نسبت بدیم هم امکان پذیره:


a=b=c=50

این فرمول به ما میگه که:


a=50



b=50



c=50

تمرین:
1-یک متغییر برای "my favorite number is:" ایجاد کنید.یک متغییر با هر عددی ایجاد کنید.
خروجی رو بنویسید
2-برنامه ای بنویسید که یک متغییر دیگه رو با همون مقدار ایجاد کنه(همین بخش دوم درس که گفته شد)یادتون باشه که در فرمول حتمی از دو طرف فرمول استفاده کنید.
3-برای همین برنامه ی بالا یک متغییر دیگه با همون مقدار ایجاد کنید.
(توضیح اینکه مثلا aرو بزارید2 وبعدbرو بزارید5 و بعد cرو بزارید50.و بعد بار اول برنامه ای بنویسید که یکی از این سه متغییر رو مقابلmy favorite number is: چاپ کنه.بعد فرمول رو طوری تغییر بدید که عدد متغییر مورد نظر شما مثلا a مقدارش با b مساوی باشه و مقدار چاپ شده همون مقدار اول باشه.برای سومی هم همین کار رو ولی برای bوc تکرار کنید که همون عددaرو چاپ کنن.)
منبع:وبسایت علمی اموزشی سیناپس (http://parsianforum.com/www.senaps.co.cc)

pystar
شنبه 15 فروردین 1388, 14:41 عصر
با سلام
مرسي جناب سيناپس
خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه.

senaps
شنبه 15 فروردین 1388, 17:20 عصر
سلام


خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه. اره خوب اخه خیلی ها پشت زبان c قایم شدن و حاظر نیستن این زبان راحت و خوشکل رو ببینن!چند تا مبحث دیگه بیشتر نمونده که بزارم و امیدوارم که بتونم با این اموزش یه خورده در استفاده از پایتون دوستان رو ترغیب کنم....
-------------------------------------------
این قسمت که براتون اموزشش رو می زارم هست،ورودی کاربران:
ورودی همون چیزهاییه که ما با کیبرد یا ماوس یا وبکم یا مایکروفون و یا....به برنامه می دیم .ماها(برنامه نویسان)از صفحه کلید استفاده می کنیم تا اطلاعات وارد شده ی کاربران را دریافت کنیم و برنامه های کاربردی تر بسازیم.
برای مثال:




Print"what is your name?"



Name= raw_input()



Print"hi,", name

و نتیجه: (در این مثال ما در ورودی اسم maysam رو وارد کردیم)


What is your name?


Maysam



Hi, maysam
خوب ما از دستور"name=raw_input()"استفاده کردیم.این دستور باعث دریافت اطلاعات از کاربران می شه و بعد اونها رو به name نسبت دادیم.(در این مثال اطلاعات همون اسم هستش که توسط کاربر وارد میشه)برای اینکه شمایی که از پایتون3دارید هم بتونید از این کد استفاده کنید،باید به روش زیر کد ها رو بنویسید:



Print("what is your name?")



Name=input("")



Print("hi,",name)

خوب ببینین اگه بخوایم که داده ها دوتا باشه چی کار می کنین؟یعنی اینکه مثلا اسم رو بپرسه و بعد فامیل و بعد از اون بیاد اسم و فامیل رو بزاره کنار هم و بهشون سلام بده....


name=input("please enter your name:")



family=input("please enter your family:")



Print("hi,",name,family)

خوب دیدید که چجوری بود عملکردش(یادتون باشه که توی املا ها دقت کنید!یعنی اگر اطلاعات رو به متغییر مثلا name نسبت دادید ،اگه توی دستور print بنویسیدName دیگه کد کار نمیده)
تمرین:یه برنامه بنویسین که توش برنامه از کاربر نام و نام خانوادگی+رنگ مورد علاقه+عدد مورد علاقه رو ازش بگیره و بعد اطلاعات رو اینجوری بهش تحویل بده:


hi, mr (user name and family name),your favorite color is: (the user's favorite color),and your favorite number is: (the number that the user enterd)

و اینکه در صورت وارد شدن جواب ها اینجوری باشه:


Hi, mr maysam rasheidi, your favorite color is: red, and your favorite number is:225



senaps.co.cc

asefy2008
شنبه 15 فروردین 1388, 18:26 عصر
با سلام
مرسي جناب سيناپس
خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه.
اول سلام دوستان
شاید یکی از دلا یلش این باشه که آقای بیاضی قبلا در این مورد به طور مفصل صحبت کردن.
موفق باشید

senaps
شنبه 15 فروردین 1388, 23:07 عصر
شاید یکی از دلا یلش این باشه که آقای بیاضی قبلا در این مورد به طور مفصل صحبت کردن.

البته این رو در نظر بگیرید که من این رو توی انجمن های اقای بیاضی هم گذاشتم و ایشون هم خیلی خوششون اومد.بهر حال تو این اموزش با تمرین و با یه متد خیلی نرم اموزش داده شده و قابل فهم تره همینطور اینکه اموزش اقای بیاضی برای لینوکسه و ویندوز نسخه2 ولی این اموزش برای لینوکس و ویندوز نسخه2و 3هستش...
به هر حال ما اموزش رو می زاریم هر کی خواست می تونه از هر کدوم از اموزشها که دلش می خواد استفاده کنه...

Mehdi Asgari
یک شنبه 16 فروردین 1388, 00:24 صبح
دوست عزیز ، شما که زحمت می کشی لطفا کدت رو در تگ CODE و به صورت LEFT قرار بده تا خواناتر و برای مبتدی ها قابل استفاده تر باشه

senaps
دوشنبه 17 فروردین 1388, 16:34 عصر
دوست عزیز ، شما که زحمت می کشی لطفا کدت رو در تگ CODE و به صورت LEFT قرار بده تا خواناتر و برای مبتدی ها قابل استفاده تر باشه

100%

ببخشید دوستان که بقیه ی اموزش ها دیر شد چون با نوشتن معادل کد ها در پایتون 3بامشکل شدیدی برخورد کردم و نمیدونم که چجوری حلش کنم فعلا درگیرم....دارم از جاهای مختلف دربارش می پرسم تا ببینم که مشکلم رو چجوری حل کنم باید....

senaps
سه شنبه 18 فروردین 1388, 22:07 عصر
خوب بعد از چند روز تاخیر میریم سراغ ادامه ی اموزش پایتون با شرط ها!!!

شرط های if

تا حالا ما کنترل زیادی روی برنامه هامون نداشتیم.شرط های if یکی از معروفترین دستورهای قرار دادن شرط و شروط در تمام زبان های برنامه نویسیه.این دستورها رو بهشون روند کنترل هم میگن!چون اونها به ما امکانات و تنظیماتی رو برای داشتن کنترل بیشتر روی برنامه هامون میدن.

بیاین با یه مثال خیلی ساده شروع کنیم کارمونو...



number = input("Choose a number:") #Prompt the user for a number

if number >= 100:
print "That is a high number!"
else:
print "That number is less than 100!"


خوب حالا بررسی نتیجه در صورت وارد شدن عدد های 150 و 50!:





choose a number:150


>>>that is a high number!


>>>choose a number:50


>>>that number is less than 100!
خوب حالا بررسی کد ها:
در خط اول ما از مبحث گرفتن ورودی از کاربر که در درس قبلی مطرح شد استفاده کردیم و بعد در ادامه برای اجرای سریعتر برنامه!کد رو بصورت محاوره ای وارد کردیم....
توی خط دوم گفتیم که اگر عدد وارد شده مساوی یا بیشتر از صد بود(خط دوم) بنویس:این عدد بزرگی است(خط سوم)
و بعد در خط چهارم گفتیم که:در غیر اینصورت(اگر عدد مساوی یا بزرگتر از صد نبود!)بنویس:این عدد کوچیکیه!

خوب بنظر خیلی راحت میاد ولی برای کاربرانی که دارن از پایتون 3استفاده می کنن شکل دستور بهش یه خط اضافه میشه:


Number=input("choose a number:")

Number1=int (number)

If number1 >=100:

Print("this number is a high number!)

Else:

Print("this number is less than 100!)

خوب از اونجایی که نتیجه مشابه هستش به نوع و نمایش مثالی از نتیجه نمی پردازیم!فقط باید بگم که اون تیکه کدی که اضافه شد متغییر رو به عنوان عدد به پایتون می شناسونه در حالی که اگر اینجوری واردش نمی کردیم عدد چاپ نمی شد و اصلا نمی شه یه رشته رو با یه عدد مقایسه نمود!!!

خوب حالا فرض کنیم خواستیم از متغییر های دیگه یا بیشتری استفاده کنیم ایا این امکان داره؟
اره من در لیست زیر بقیه ی مقایسه گر ها رو براتون اوردم:



==این یعنی تساوی!یادتون باشه که ما در این کد از دوتا علامت تساوی استفاده کردیم و اگه از یک علامت تساوی استفاده کنید با متغییر اشتباه گرفته میشه



مساوی نیست =!



بیشتر از <



کمتر از >



بیشتر یامساوی با =<



کمتر یا مساوی با =>

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




print "************MENU************" #Make a menu

print "1. Add numbers"

print "2. Find perimeter and area of a rectangle"

print "0. Forget it!"
print "*" * 28



option = input("Please make a selection: ") #Prompt user for a selection

if option == 0: #If option is 0, quit statement
quit



elif option == 1: #If option is 1, get input and calculate
firstnumber = input("Enter 1st number: ")
secondnumber = input("Enter 2nd number: ")
addit = firstnumber + secondnumber
print firstnumber, "added to", secondnumber, "equals", addit #show results

elif option == 2: #If option is 2, get input and calculate
length = input("Enter length: ")
width = input("Enter width: ")

perimeter = length * 2 + width * 2
area = length * width
print "The perimeter of your rectangle is", perimeter #show results
print "The area of your rectangle is", area

else: #if the input is anything else its not valid
print "That is not a valid option

!"

همونطوری که احتمالا هم تست کردید می بینید که این برنامه با تمام برنامه هایی که تاحالا نوشتید تفاوت داره و شاید اولین برنامه واقعیتون باشه!!!شما ابتدا به کاربر 3 انتخاب جمع زدن دو عدد یا پیدا کردن محیط و مساحت یه مربع یا مستطیل و همینطور خروج از برنامه رو می دید که کاربر در ابتدا با وارد کردن یکی از عدد های1 و 2 و 3 مشخص می کنه که می خواد کدوم کار رو انجام بده...
توی خط اول ما یه جور تیتر برای برناممون نوشتیم!
توی خط دوم گفتیم که بنویس:1.جمع زدن! و در خط سوم و چهارم گفتیم که بنویس:2.پیدا کردن مساحت و محیط یک مربع مستطیل یا یه 4ضلعی!...توی خط پنجم هم گفتیم که :3.فراموشش کن!!!!
در اینجا و در ابتدای کار به کاربر 3 انتخاب داده میشه که کاربر بعد از وارد کردن یکی از عدد های 1و2و3 کاری که می خواد بکنه رو مشخص می کنه....
تا ابنجا رو می تونستید با یه خورده خلاقیت انجام بدید و برید...!!!
اما از اینجا به بعده که کار این درسه و یه کم روش موشکافی دقیقتری انجام میشه...
در اونجایی که نوشته شده"option = input("Please make a selection: ")"ما به برنامه یه متغییر به نام option می دیم که برابره با همون انتخاب کاربر...یعنی متغییر رو می سازیم خوب این هم مشکلی نداشت..
اونجایی که گفتیم"if option == 0:" ما یه شرط تعریف کردیم اونم اینه که اگر گزینه انتخابی کاربر،0 بود،از برنامه خارج بشو که البته بخشی که گفته از برنامه خارج بشو در بخش بعدی و با نام quit مشخص شده!!! در ادامه همین کد هم یه دستور نوشتیم که شما اگه اونو ننوشتید بازم مشکلی نیست....
اونجایی که گفتیم"elif option == 1:" (دستور elif مخفف همون if,else خودمونه که اومده ساده تر شده و برای شرط ها و حلقه های تو در تو ازش استفاده شده!)در این بخش به برنامه گفته شده که اگر انتخاب کاربر بود،1 به کاربر اجازه ی وارد کردن دو عدد رو بده و بعد مجمو ع اونها رو بهش بده!
اونجا که گفتیم"elif option == 2"گفته شده که اگه عدد انتخاب شده 2بود ،دو تا عدد بگیره و با اونحا محیط و مساحت یه 4ظلعی رو بگیره...

اخرین بخش هم گفته که اگه عدد وارد شده چیزی بجز این سه تا بود(1و2و3)بنویس:کد وارد شده صحیح نیست!

خوب دیدین که چقدر راحت بود؟فقط یه خورده حواس جمع می خواد که بتونین درست انجامش بدین....

تمرین:حالا می خوام برای تمرین یه برنامه بنویسید که کاربر رو به عنوان مهمان بشناسه و ازش رمز عبور بخواد! اگه رمز عبور درست بود که هیچی و برنامه رو بعد از نوشتن یه چیزی ببنده!و اگه رمز اشتباه بود به کاربر بگه که رمزش اشتباه بوده...

senaps
یک شنبه 30 فروردین 1388, 03:45 صبح
سلام
درس5
حلقه ها:
حلقه ها یه بخش اساسی در برنامه نویسی می باشند.اساسا حلقه ها دستوراتی هستند که باعث می شوند که برنامه اندر تکرار شود تا که شرط توسط برنامه پذیرفته شود!!!
اولین حلقه ای که ما باهاش کار می کنیم رو براتون در زیر توضیح می دم:
بیاین از مثال قبلی استفاده کنیم:



option = 1
while option != 0:
print " ************MENU************" #Make a menu
print "1. Add numbers"
print "2. Find perimeter and area of a rectangle"
print "0. Forget it!"
print "*" * 28

option = input("Please make a selection: ") #Prompt user for a selection
if option == 1: #If option is 1, get input and calculate
firstnumber = input("Enter 1st number: ")
secondnumber = input("Enter 2nd number: ")
add = firstnumber + secondnumber
print firstnumber, "added to", secondnumber, "equals", add #show results

elif option == 2: #If option is 2, get input and calculate
length = input("Enter length: ")
width = input("Enter width: ")
perimeter = length * 2 + width * 2
area = length * width
print "The perimeter of your rectangle is", perimeter #show results
print "The area of your rectangle is", area

else: #if the input is anything else its not valid
print "That is not a valid option!"


تمام کاری که باید بکنیم اینه که بیشترین شرط های برنامه رو منحرف یا به قولی دوباره تکرار کنیم...
(من کد های مثال رو برای پایتون 3دوباره نمی گم چون در مثال های قبلی وجود داشته و چون اومدید به اموزش این مرحله پس مرحله قبلی رو حتمی بلدید ولی در مورد کد حلقه در پایتون3:خط اول کد که میشهoption=1 رو همونجوری دوباره می نویسیم ولی در خط دوم که گفتیم برنامه رو تا وقتی که انتخاب کاربر 0نیست تکرار کن،باید دو طرف0 رو با علامت های""ببنیدید به این صورت که while option!="0": و برنامه رو اجرا کنید تا نتیجه بگیرید وگرنه برنامه ته نخواهد داشت!!!)
این حلقه برنامه رو انقدر تکرار می کنه تا کاربر 0 رو انتخاب کنه.حالا می تونیم برنامه رو بتعداد نامحدودی اجرا کنیم تا وقتی که تصمیم به خروج از برنامه بگیریم.(در حالت عادی شما بعد از انتخاب یه حالت مثلا گزینه1 و وارد کردن عدد ها و مشاهده نتیجه مجبور بودید که برنامه رو از نو اجرا کنید...) بیاین یه چند تا کد دیگه به برنامه اضافه کنیم که بتونه متغییر رو مساوی با صفر قرار بده...



number = 1
sum = 0

خوب حالا اولین شرطتون رو به شکل زیر تغییر بدید:



if option == 1:
while number != 0:
print "Use 0 to quit adding numbers."
number = input("Enter number: ")
sum = sum + number
print "The total is: ", sum

خوب اگه کارها رو درست انجام داده باشید،وقتی که شرط 1 رو انتخاب کنید،شما باید بتونید عدد های خیلی زیادی (نا محدود)رو به برنامهتون بطور همزمان اضافه کنید...تنها راه خروج از این مرحله از برنامه وارد کردن عدد0 هستش که جمع همه رو براتون چاپ می کنه.عدد 1 رو که ما قبلا در ایتدا به یه متغییر نسبت داده بودیم به برنامه در ادامه اضافه نخواهد شد چون ما باید عدد هایی رو اضافه کنیم که مقدار عدد ها رو عوض کنه تا مجموعشون رو بدست بیاره.
خیلی خوب بیاین یه برنامه دیگه رو امتحان کنیم:



counter = input("Enter a number to start the countdown: ")

while counter >= 0:
print counter
counter = counter - 1 #alternatively you can use counter += -1, same thing




همونطوری که برنامه رو تست کردید،شما باید یه عدد وارد کنید و بعد از زدن اینتر،برنامه شروع می کنه به شمارش به پایین یا بقول معروف شمارش معکوس تا برسه به صفر.
خط اول کدها،به برنامه می گن که از کاربر یه ورودی بگیر.
خط دوم میگه:تا وقتی که/در صورتیکه! شمارشگر(counter)بزرگتر یا مساوی0 است،شمارشگر رو چاپ کن.
خط بعدی به ما میگه که شمارشگر(counter)یعنی شمارشگر(مقدار کنونی متغییر شمارشگر)منهای 1.
البته در پایتون 3به همین راحتی نیست و شما باید متغییر counter رو با استفاده از کدی(counter= int counter) به اعداد نسبت بدید،و این کد باید بعد از خط اول قرار بگیره.....
تمرین:برنامه ای بنویسید که درستی یوزر و پسورد وارد شده رو امتحان کنه،و تا وقتی یوزر و پسور درست وارد نشدن برنامه تکرار بشه....
امید وارم که خوشتون امده باشه....:خجالت:

mortezamsp
چهارشنبه 16 اردیبهشت 1388, 12:09 عصر
ببخشيد خيلي معذرت ميخوام آقاي سناپس!
ميخواستم بدونم در اين زبان آيا بلوك تعريف شده؟ مثلا در پاسكال در آغاز بلوك كلمه begin: ور در پايان كلمه end; تايپ ميشه و يا در سي پلاس پلاس دستورات در ‍‌‍‌{} قرار ميگيرن.اينجا كه شما while گذاشته بودين من متوجه نشدم اين دستورات مربوط به while كجا تمام ميشوند؟ دستورات تا كجا مربوط هستند به while؟نه علامتي نه چيزي...؟

Bayazee
چهارشنبه 16 اردیبهشت 1388, 14:04 عصر
بلوک در پایتون با استفاده از فرورفتگی کد مشخص می شه!
این مورد شاید اویل عجیب به نظر بیاد اما بعد از مدتی برنامه نویس بهش عادت می کنه. از مزایاش این هست که حتما برنامه نوشته شده واضح و منظم نوشته می شه و از طرفی از کاراکتر ها یا کلمات اضافی مثل begin یا آکولاد استفاده نمی شه .

robo_remi
جمعه 18 اردیبهشت 1388, 12:40 عصر
سلام دوست عزیز
خسته نباشی .کارت خیلی درسته . دستت درد نکنه . ادامه بده من که خیلی دارم حال میکنم با این زبان میدونی چون تو مایا هم اسکریپتاش با پایتون هستش . خیلی جالبه . کتاب الکترونیکی فارسی یا انگلیسی هم اگه میشناسید معرفی کنید. بازم میگم کارت خیلی درسته .:قلب::قلب::قلب:
ببخشید خودم رو معرفی نکردم . من شهرام هستم

asefy2008
جمعه 18 اردیبهشت 1388, 13:56 عصر
سلام می تونی کتاب فارسی رو در

www.pylearn.com (http://www.pylearn.com)

ببینی.
البته تو همین سایت هم آموزش های خوبی هست.
در ضمن در مورد کتاب انگلیسی هم اول ببین به چه سمتی می خوای بری چون در هر مورد کتاب خاصی وجود داره.ولی Wrox درباره پایتون کتاب های خوبی داره.
پیروز باشید.

doodaa
دوشنبه 21 اردیبهشت 1388, 13:09 عصر
سلام
منم یه مدتی با پایتون دارم کار می کنم دستت درد نکنه مطالبت واقعا آموزنده و روانه.
منتظر درسهای بعدی هستیم.
اگه یه کتاب خوب هم معرفی کنید ممنون میشم.

senaps
سه شنبه 22 اردیبهشت 1388, 04:44 صبح
سلام
ببخشید یه مدت دیر شد

اگه یه کتاب خوب هم معرفی کنید ممنون میشم. در جواب باید بگم:

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

www.pylearn.com (http://www.pylearn.com/)
ببینی.-----------------------------------------


ادامه ی بحث حلقه ها:
For
یه راه دیگه برای اوردن حلقه ها در پایتون استفاده از for هستش....ما نمونه ی شمارش معکوس رو که در پست های قبلی گفته شده رو با for بازسازی می کنیم:



counter = input("Enter a number to start the countdown: ")

for x in range(counter, 0, -1):
print x




می بینید که چیز زیاد جدیدی نیست و تقریبا هم مشابه با ویژوال بیسیک هستش...
در اونجا گفته شده که برای x در گروه counter(که مقدارش قبلا توسط کد خط اول توسط کاربر وارد میشه) تا صفر و به صورت منفی به پایین رو در نظر بگیر و در خط سوم هم گفته شده که x رو چاپ کن!
نکته ی جالب در مورد کد بالا اینه که شما دیگه لازم نیست که از قبل مقدار x رو با چیزی پر کنید و این کار خودکار انجام میگیره!
این یه مثال کوچیک از سرعت برنامه نویسی در پایتونه و اینکه با یه کد کوچیک جای چند تا کد نوشته شده....
for می تونه که با اعداد کار کنه یا اینکه لیست رشته ها !
اما لیستی که من ازش حرف می زنم کجاست؟! همون range یا منطقه ای که در کد ها هست ایجاد کننده ی لیست است.
اولین مقدار برای range مبدا هستش....دومین مقدار اخر یا یکی به اخر کده(برای این یکی به اخر چون اخری رو محاسبه نمی کنه!) و سومین مقدار هم مربوط به نوع حرکته(به سمت بالا یا پایین و...)
توجه کنید که سومین مقداری که وارد میشه اختیاریه و اگر شما شما براش عددی رو مشخص نکنید برنامه از مقدار پیشفرض استفاده می کنه که معادل 1 است.
یعنی اگر در نوعی کد نویسی شما برای قسمت سوم که همون نوع حرکته (به سمت بیشتر شدن یا کمتر شدن!پشت سر هم یا چند در میان و ....)برنامه چجوریعمل می کنه:
من کدی به شکل زیر نوشتم و اجرا کردم که به این شکل می نویسم:



for x in range(1, 10):
print x

که البته نتیجش میشه:



1



2



3



4



5



6



7



8



9

خوب ما به برنامه گفتیم که در لیست x از 1 تا 10 رو بنویس و سیستم هم این کار رو انجام داده و اگر ما برنامه رو اینجوری می نوشتیم :




for x in range(1, 10 ,2):
print x

نتیجه میشه:



1



3



5



7



9

یعنی 2 در میان عمل میکنه......
امیدوارم که بحث حلقه ها رو کاملا یاد گرفته باشید....

senaps
سه شنبه 22 اردیبهشت 1388, 04:53 صبح
سلام


توابع:
تابع ها بهترین راه برای نوشتن حلقه ها با while می باشند...در کل اوها به شما این امکان رو می دن که شما قسمتی از کد رو فقط یک بار بنویسید و اون رو هر چند بار که دلتون می خواد اجرا کنید!
در حقیقت شما قبلا از توابع استفاده کرید! ("("input()........


خوب بیاین یه مثال رو ببینیم:






def new_function(): #defines our new function
print "I'm in a function!"

print "I'm out of function"
new_function()

خوب این تابع خیلی خیلی سادس.
خط اول خیلی ساده تابع رو تعریف کرده.خط دوم قسمتی از تابع هستش....هر کدی که بعد از خط اول با حاشیه از ابتدای سطر قرار بگیره هم جزوی از تابع است.
وقتی شما تابعی را نام گذاری می کنید،این تاکیدی است برای کلمات!فقط برای اینکه کدها باز شناسیشون راحت بشه.شاید تو فکر اینید که پرانتز ها برای چیه؟!ما می تونیم توی این پرانتز ها اطلاعات رو بصورت دستی قرار بدیم درست مثل مثال پایین:


def add_it(x, y): #define our function and have it call for two inputs
print x + y #print the output x + y

a = 50 #make two variables
b = 100

add_it(a, b) #use our function to output our two variables added together
ملاحضه می کنید که ما در این تابع دو مقدار x و y رو داریم.اونها فقط متغییر های وارد شده در تابع هستند.
و اگر این متغییر ها رو در خارج از تابع به چیزی نسبت بدید،اونها کار نخواهند کرد.پس وقتی که ما یک تابع رو استفاده می کنیم،دو متغییر رو هم داخلش استفاده می کنیم.که هر کدومشون متغییر های خودشون رو ایجاد می کنند.اینا فقط با اعداد صحیح و ساده کار می کنن.
خوب بهتره که تنظیمات متغییر ها رو داخل تابع هم بدست داشته باشیم!اما بهتره که اول این برنامه ی جمع رو به یک متغییر سراسری و کامل تبدیل کنیم!



Def add_it(x, y) :



Return x + y



A = 50



B = 100



Sum1 = add_it(a, b)

توی این کد ما از return استفاده کردیم.تابع شما در هر بار فقط یک برگشت متغییر خواهد داشت(در هر دفعه!)(مگر اینکه از لیست ها استفاده کنید!)
پس ما توی خط اخر فقط یک متغییر قرار دادیم که شامل مقدار برگشتی تابع میشه.
خوب امیدوارم که از اموزش خوشتون اومده باشه.....
درس اینده لیست ها خواهند بود....

senaps
دوشنبه 28 اردیبهشت 1388, 04:54 صبح
لیست ها و چند تایی ها:

موضوع این جلسه از اموزش برنامه نویسی با پایتون هست: Lists and Tuples.
لیست ها قسمتی بسیار کاربی در برنامه نویسی اند.در حقیقت یک لیست همون متغییره که فقط می تونه بیشتر از یک مقدار داشته باشه و قابلیت تغییر هم داره.
چند تایی لیستیه که تغییر ناپذیره!،هر دوی اینها هم می تونن اعداد و حروف یا هر متغییر دیگه رو در خودشون داشته باشن.


mylist = [1, "hi", 2, "what's", 3, "up"]
یا شبیه به این:


my list = 1, "hi", 2, "what's", 3, "up"
اما برای خروجی گرفتن از لیست ها کافیه همون کاری رو بکنیم که برای سایر متغییر ها انجام می دادیم:


Print my list
اما بیاید کاری کنیم که فقط یکی از متغییر های داخل لیست چاپ بشه:
هر کدوم از متغییر ها توی لیست با یه عددی مشخص می شن،که اولی شمارش 0 و بقیه هم همینطور رو به بالا....


print mylist[1]
درضمن ما می تونیم یه متغییر دیگه رو به یکی از ابجکتهای داخل لیست هم نسبت بدیم......مثل مثال زیر:


x = mylist[1]
print x
این مثال یه برنامس که به کاربر اجازه انتخاب یکی از گزینه های داخل لیست رو می ده.....



names = ["maysam", "hamed", "hasan", "reza", "ali", "javad", "sara"]
option = 0 #declare our input variable

while option != 99: #have the program run until user enters 99
option = input("Please enter a number between 0 and %d to quit enter 99:" %(len(names)-1))
if 0 <= option < len(names):

print names[option] #print the name
elif option == 99: #If option is 99 break out of if statement
quit
else:
print "That is not a valid option!" #If option is anything else, tell user
خوب توی این برنامه چند تا چیز هست که هیچوقت راجع بهشون نگفته بودیم...
کانون کد های من توی این برنامه تابع len() است . این تابع طول یا تعداد لیست ما رو برمی گردونه.
حتمی %d رو هم در خطی که مربوط به دستورات ورودی هستش رو هم ندیدید!این یه راه دیگه برای گرفتن مقدار متغییره.
print "number is %d" %23 یه نوع استفاده و کاربردشه....این عدد 23رو توی رشته قرار میده.


توی همین خط و جایی که گفتم len(names)-1 این کار بخاطر اینه که همیشه طول لیست همیشه 1 بار بیشتر ازعددیه که به متغییر قبلی نسبت داده شده بود.اگرچه درصورت بکار بردنتابع range() هم هیچ مشکلی پیش نمی اومد..








names = ["maysam", "hamed", "hasan", "reza", "ali", "javad", "sara"]
for x in range(len(names)):

print names[x]

حالا اگه بخوایم مقدار یکی از این گزینه های لیست رو عوض کنیم چیکار می کنیم؟


names[3] = "negar"
همینطور اگر بخوایم که یک اسم رو به این لیست اضافله کنیم از تابع زیر استفاده می کنیم:


names.append("nazanin")
و همینطور برای حذف کردن یکی از این اسم ها از تابع زیر استفاده می شه:


names.remove("reza")





خوب تا اینجا چیزای خیلی زیادی رو یاد گرفتید و بیاین با هم یه پروژه رو انجام بدیم:





def menu():
print "\n\n\n1. List all employees"
print "2. Add employee"
print "3. Delete employee"
print "4. Number of employees"
print "0. Quit\n\n\n"

def list_employees(list):
for x in range(len(employees)):
print "%d." %(x+1), employees[x]

def add_employee(list):
addit = raw_input("Employee's name? ")
list.append(addit)
return list

def del_employee(list):
delit = raw_input("What employee do you want to delete? ")
if delit in list:
list.remove(delit)
print delit, "deleted!"
else:
print "That employee is not in the database."
return list

option = 1
employees = ["maysam rasheidi", "nazanin kian", "negar kian"]
x = 0

while option != 0:
menu()
option = input("Please pick an option: ")
print "\n\n\n"
if option == 1:
list_employees(employees)



elif option == 2:
employees = add_employee(employees)
elif option == 3:
employees = del_employee(employees)
elif option == 4:
x = len(employees)
print "There are", x, "employees."
elif option == 0:
quit
else:
print "That is not a valid option"



خوب ممکنه برنامه یه خورده حجمش بالا باشه یا اینکه سنگین باشه!!!
ولی شما نوشتن یه برنامه خوب رو یاد گرفتید....این جور برنامه ها رو می تونید ازشون استفاده های خیلی خوبی بکنید مثلا برای نوشتن یه دیکشنری یا یه همچین چیزی که شما بتونید بهش چیزی رو اضافه کنید یا جست و جو کنید.....
البته هنوز برای نوشتن یه دیکشنری خوب خیلی راه دارید ولی این برنامه بالا یه برنامه خیلی خوبه که اگه بتونید نمونه هاش رو خودتون بنویسید خیلی عالیه....
تمرین:
اگه بتونین این تمرین رو انجام بدید یعنی تمام چیزایی رو که بهتون گفتم رو یاد گرفتید(این برای تست یادگیری خودتونه و ملزم به انجامش نیستید!!!!)
-می تونید یه کاونتر (شمارنده؟!)بنویسید که بتونه با استفاده از لیست ها از 1 تا 10 رو چاپ کنه؟
می تونید جواب هاتون رو در ادامه ی همین تاپیک ارسال کنید....

این اموزش هنوز تموم نشده و فقط 2 درس دیگه مونده که احتمالا می اوفته بعد از این ماه چون امتحانات خرداد شروع شده و منم باید برم پی درس خوندن
با تشکر(senaps.co.cc)

pystar
دوشنبه 28 اردیبهشت 1388, 20:17 عصر
با سلام
اول از همه بايد تشكر كنم به خاطر اموزش خوبتون.

تو پايتون براي اينكه بلوك تموم بشه و ديگه نخوايم دستورات تو اون محدوده باشن ، كافيه بعد از اخرين دستور و بعد از اينكه به خط بعدي رفتيم يه اينتر بزنيم.
برنامه خودش بصورت اتومات از بلوك خارج ميشه و به محدوده بلوك قبلي ميره كه شايد بلوكي نباشه و به اول خط بره.
مثال:

http://dc146.4shared.com/img/106189135/7cef9bfc/untitled.JPG?sizeM=3

mortezamsp
چهارشنبه 30 اردیبهشت 1388, 15:45 عصر
امیدوارم که بحث حلقه ها رو کاملا یاد گرفته باشید....



با سلام.
من در مورد for سوال داشتم! مثلا شما این رو چطور مینویسید؟


for(int i=0; i<=s && aray[i]!=0 ; i++ , j--)

یعنی وقتی چند تا شرط بخوان همزمان اجرا بشن چی؟

senaps
سه شنبه 05 خرداد 1388, 04:31 صبح
ببخشید دیر جواب دادم....
برای چند تا کد نوشتن قبلا گفتم!(اینطوری می تونید چند تا کد را با هم اجرا کنید!)
اون کد هایی رو هم که نوشتید رو من حتی نمی توم بخونم چه برسه به تبدیلش به پایتون...

mortezamsp
سه شنبه 12 خرداد 1388, 00:41 صبح
با سلام.


ببخشید دیر جواب دادم....
...
نخيرم.دير نبود.ممنون كه جواب داديد.


منظور من اين بود كه حلقه for هربار بجاي يك شمارنده ، چندتا شمارنده داشته باشه . يا هر بار بجاي يك شرط، چند تا شرط رو تغيير بده.منظورم اين بود.
براي اين كار بايد چيكار كنيم؟
ممنون.

baranv
سه شنبه 12 خرداد 1388, 02:37 صبح
سلام , من تا حدودی برنامه نویسی بلدم و حالا میخوام python یاد بگیرم . اما بیشتر از اینکه در مورد برنامه نویسیش اشکال داشت باشم در مورد نصب محیطش مشکل دارم اصلا نمیدونم چی باید نصب کنم و از کجا شروع کنم , برنامه هام رو چطوری اجرا کنم و اینجور چیزا .
لطفا راهنماییم بکنید. ممنون میشم.

Mehdi Asgari
سه شنبه 12 خرداد 1388, 09:51 صبح
من در مورد for سوال داشتم! مثلا شما این رو چطور مینویسید؟

کد:

for(int i=0; i<=s && aray[i]!=0 ; i++ , j--)

یعنی وقتی چند تا شرط بخوان همزمان اجرا بشن چی؟
شرط ها رو داخل بدنۀ حلقه می نویسی


for i in range(0,s+1):
if array[i] == 0:
break
# do work here
j -= 1

asefy2008
سه شنبه 12 خرداد 1388, 16:39 عصر
سلام , من تا حدودی برنامه نویسی بلدم و حالا میخوام python یاد بگیرم . اما بیشتر از اینکه در مورد برنامه نویسیش اشکال داشت باشم در مورد نصب محیطش مشکل دارم اصلا نمیدونم چی باید نصب کنم و از کجا شروع کنم , برنامه هام رو چطوری اجرا کنم و اینجور چیزا .
لطفا راهنماییم بکنید. ممنون میشم.
سلام دوست من البته در این مورد زیاد بحث شده ولی خوب:
1.تو چه سیستم عاملی میخوای نصبش کنی؟
2.و دیگه این که با چه IDE می خوای کار کنی ؟
3.می تونی از سایت www.python.org (http://www.python.org) پایتون رو دانلود کنی.(هم نسخه win ، هم مربوط به لینوکس وهم برای مکینتاش)
4.برای win نصبش راحته و مشکلی نخواهی داشت.
5.و اما روی لینوکس ، اوبونتو که روش پایتون نصبه ولی برای نصب سایت زیر رو نگاه کن:

http://barnamenevis.org/forum/showthread.php?t=131237

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

www.pylearn.com (http://www.pylearn.com)

موفق باشی

funfullson
شنبه 20 تیر 1388, 07:58 صبح
با عرض پوزش شايد چون پايتون تفسيريه شما به تفاوتش توجه نكردين.اگه شما كدتون رو به صورت زير بنويسن برنامه روال عاديه خودش رو طي مي كنه:
print("sth")
ولي اگه به صورت زير بنويسين كامپايل شده ي برنامه چيزي رو چاپ نخواهد كرد.پس اگه قراره چيزي به كاربر نمايش داده بشه بايد كد به صورت بالا نوشته بشه.
"sth"

thelastblack
چهارشنبه 14 مرداد 1388, 01:10 صبح
ممنون از آموزشتون..
دیدم فقط دکمه کافی نیست باید یه چیزی میگفتم... بازم ممنون خیلی خوب هست...

1485159
چهارشنبه 14 مرداد 1388, 17:12 عصر
ببخشید یه سوال:
ایا پایتون توی ویندوز هم کا برد داره؟
کدوم برنامه های ویندوزی با پایتون ساخته شده؟

thelastblack
چهارشنبه 14 مرداد 1388, 22:49 عصر
ببخشید که اینجا میپرسم ولی جایی بهتر پیدا نکردم...
من python 3.1 رو گرفتم(رو ویندوز) بعد نصبش کردم حالا وقتی یه فایل py که مینویسم و اجراش میکنم این خطا رو میده:
http://barnamenevis.org/forum/attachment.php?attachmentid=34783&stc=1&d=1249497999
کسی میدونه مشکل از کجاست؟ python 3.1 رو از سایت رسمیش گرفتم...
یه بار هم uninstall کردم دوباره نصبیدم ولی بازم همینه... ولی میتونم از IDLE استفاده کنم و میتونم تو shell به صورت یه خط یه خط بنویسم و مشکلی هم نداره... کمکم کنید من تازه داشتم یاد میگرفتم که یهو ضد حال خوردم...
ممنون از هر که جواب بده...

بعد هم دوست عزیز 1485159:
معلومه که کاربرد داره... اگه نصب کنی میتونه فایلای py رو اجرا کنی...
در مورد برنامه چیزی ندیدم ولی هستن و تو سایت ها دیدم که نوشته بود مثلا ویراشگر ها یا حتی بازی های کوچک...

1485159
چهارشنبه 14 مرداد 1388, 23:44 عصر
یعنی فایل های اجراییش با پسوند .py هستن؟

ilius.gnu
پنج شنبه 15 مرداد 1388, 20:23 عصر
جناب thelastblack اگه ممکنه سورس برنامه رو بذارید. ظاهراً مشکلش از encoding هست(یا داخل فایل مشخص نشده، یا اشتباهه)

thelastblack
جمعه 16 مرداد 1388, 11:32 صبح
اینم کد:

import tkinter
from tkinter.constants import *
tk = tkinter.Tk()
frame = tkinter.Frame(tk, relief=RIDGE, borderwidth=20)
frame.pack(fill=BOTH,expand=1)
label = tkinter.Label(frame, text="Hello, World")
label.pack(fill=X, expand=1)
button = tkinter.Button(frame,text="Exit",command=tkinter.messagebox.showinfo("Hi", "Name?",))
button.pack(side=BOTTOM)
tk.mainloop()

مشکل از encoding یعنی چی؟ اگه تو notepad بنویسم با چه encoding ی باید ذخیرش کنم؟

در ضمن بله فایل های py رو اگه پایتون رو نصب کرده باشی میتونی با دابل کلیک اجرا کنی...

ilius.gnu
جمعه 16 مرداد 1388, 13:55 عصر
اینجوری که معلوم نمیشه! منظورم این بود که فایل برنامه رو آپلود کنید ببینم کاراکترهای غیراسکی داره یا نه. نمی‌دونم مشکلش چیه. من خودم توی گنو/لینوکس کار می‌کنم.
به هر حال بهتره که همیشه بصورت UTF-8 سیو کنید و اول برنامه هم این خط رو اضافه کنید:

# -*- coding: utf-8 -*-
یا اینکه همون که خودش نوشته رو بذارید ببینید چی میشه:

# -*- coding: cp720 -*-


‏notepad هم ادیتور خوبی نیست. بهتره از ++notepad یا ادیتور خود IDLE (که همراه پایتون هست) استفاده کنید.


جناب 1485159: پایتون یه زبان اسکریپتی هست و خپد سورس برنامه، توسط مفسر پایتون اجرا میشه(یا اصطلاحاً تفسیر میشه) و فایل اجرایی باینری نداره. البته میشه ازش exe هم درست کرد ولی همون exe هم داخلش سورس پایتون ذخیره شده!

ilius.gnu
جمعه 16 مرداد 1388, 13:58 عصر
در ضمن اگه توی این فروم بپرسید خیلی سریع‌تر جواب می‌گیرید:
http://www.pylearn.com/fa/forum

thelastblack
جمعه 16 مرداد 1388, 23:51 عصر
دوست عزیز من با IDLE مینویسم ولی گفتم شاید باید با یه encoding خاصی save کنم که بشه اجرا کرد...
اون خط هایی که گفتین رو گذاشتم ولی بازم همون مشکلو دارم... دومی که حتی خطا میده(تو IDLE وقتی run رو میزنم)...