# زبان های اسکریپتی > دیگر زبان های اسکریپتی >  اموزش پایتون از صفر تا...

## senaps

گر که قبلا مطالب اموزشی برنامه نویسی رو خونده باشید حتمی می دونید که یکی از معروفترین برنامه های اموزشی برنامه نویسی که خیلی هم ساده هستش برنامه ی 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

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

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

----------


## senaps

سلام



> با سلام خدمت همه برنامه نويسان عزيز پايتون كار . منم تازه به جمع پايتون پروگرامر ها اومدم و خيلي خوشحالم كه زبان مورد علاقه مون در حال گسترشه . 
> 
> البته ما ميتونم خود دستور 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رو چاپ کنن.)
منبع:وبسایت علمی اموزشی سیناپس

----------


## pystar

با سلام
مرسي جناب سيناپس
خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه.

----------


## senaps

سلام




> خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه.


اره خوب اخه خیلی ها پشت زبان 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

> با سلام
> مرسي جناب سيناپس
> خيلي خوب دارين پيش ميرين . اما نميدونم چرا هنوز كسي نيومده استفاده كنه.


اول سلام دوستان 
شاید یکی از دلا یلش این باشه که آقای بیاضی قبلا در این مورد به طور مفصل صحبت کردن.
موفق باشید

----------


## senaps

> شاید یکی از دلا یلش این باشه که آقای بیاضی قبلا در این مورد به طور مفصل صحبت کردن.


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

----------


## Mehdi Asgari

دوست عزیز ، شما که زحمت می کشی لطفا کدت رو در تگ CODE و به صورت LEFT قرار بده تا خواناتر و برای مبتدی ها قابل استفاده تر باشه

----------


## senaps

> دوست عزیز ، شما که زحمت می کشی لطفا کدت رو در تگ CODE و به صورت LEFT قرار بده تا خواناتر و برای مبتدی ها قابل استفاده تر باشه


100%

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

----------


## senaps

خوب بعد از چند روز تاخیر میریم سراغ ادامه ی اموزش پایتون با شرط ها!!!

*شرط های* *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

*
سلام
درس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

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

----------


## Bayazee

بلوک در پایتون با استفاده از فرورفتگی کد مشخص می شه! 
این مورد شاید اویل عجیب به نظر بیاد اما بعد از مدتی برنامه نویس بهش عادت می کنه. از مزایاش این هست که حتما برنامه نوشته شده واضح و منظم نوشته می شه و از طرفی از کاراکتر ها یا کلمات اضافی مثل begin یا آکولاد استفاده نمی شه .

----------


## robo_remi

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

----------


## asefy2008

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

----------


## doodaa

سلام
منم یه مدتی با پایتون دارم کار می کنم دستت درد نکنه مطالبت واقعا آموزنده و روانه.
منتظر درسهای بعدی هستیم.
اگه یه کتاب خوب هم معرفی کنید ممنون میشم.

----------


## senaps

سلام
ببخشید یه مدت دیر شد



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


در جواب باید بگم:



> سلام می تونی کتاب فارسی رو در 
> 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

*سلام*
*
*
*توابع:*
تابع ها بهترین راه برای نوشتن حلقه ها با 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

*لیست ها و چند تایی ها:*

  موضوع این جلسه از اموزش برنامه نویسی با پایتون هست: 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

با سلام
اول از همه بايد تشكر كنم به خاطر اموزش خوبتون.

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

----------


## mortezamsp

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


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

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

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

----------


## senaps

ببخشید دیر جواب دادم....
برای چند تا کد نوشتن قبلا گفتم!(اینطوری می تونید چند تا کد را با هم اجرا کنید!)
اون کد هایی رو هم که نوشتید رو من حتی نمی توم بخونم چه برسه به تبدیلش به پایتون...

----------


## mortezamsp

با سلام.




> ببخشید دیر جواب دادم....
> ...


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


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

----------


## baranv

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

----------


## Mehdi Asgari

> من در مورد 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

> سلام , من تا حدودی برنامه نویسی بلدم و حالا میخوام python یاد بگیرم . اما بیشتر از اینکه در مورد برنامه نویسیش اشکال داشت باشم در مورد نصب محیطش مشکل دارم اصلا نمیدونم چی باید نصب کنم و از کجا شروع کنم , برنامه هام رو چطوری اجرا کنم و اینجور چیزا . 
> لطفا راهنماییم بکنید. ممنون میشم.


سلام دوست من البته در این مورد زیاد بحث شده ولی خوب:
1.تو چه سیستم عاملی میخوای نصبش کنی؟
2.و دیگه این که با چه IDE می خوای کار کنی ؟
3.می تونی از سایت www.python.org پایتون رو دانلود کنی.(هم نسخه win ، هم مربوط به لینوکس وهم برای مکینتاش)
4.برای win نصبش راحته و مشکلی نخواهی داشت.
5.و اما روی لینوکس ، اوبونتو که روش پایتون نصبه ولی برای نصب سایت زیر رو نگاه کن:
https://barnamenevis.org/showthread.php?t=131237و برای اطلاعات بیشتر نظیر اجرای برنامت می تونی از مقاله های همین سایت یا سایت فارسی پایتون که ویکی هم داره استفاده کنی :www.pylearn.comموفق باشی

----------


## funfullson

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

----------


## thelastblack

ممنون از آموزشتون..
دیدم فقط دکمه کافی نیست باید یه چیزی میگفتم... بازم ممنون خیلی خوب هست...

----------


## 1485159

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

----------


## thelastblack

ببخشید که اینجا میپرسم ولی جایی بهتر پیدا نکردم...
من python 3.1 رو گرفتم(رو ویندوز) بعد نصبش کردم حالا وقتی یه فایل py که مینویسم و اجراش میکنم این خطا رو میده:

کسی میدونه مشکل از کجاست؟ python 3.1 رو از سایت رسمیش گرفتم...
یه بار هم uninstall کردم دوباره نصبیدم ولی بازم همینه... ولی میتونم از IDLE استفاده کنم و میتونم تو shell به صورت یه خط یه خط بنویسم و مشکلی هم نداره... کمکم کنید من تازه داشتم یاد میگرفتم که یهو ضد حال خوردم...
ممنون از هر که جواب بده...

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

----------


## 1485159

یعنی فایل های اجراییش با پسوند .py  هستن؟

----------


## ilius.gnu

جناب thelastblack اگه ممکنه سورس برنامه رو بذارید. ظاهراً مشکلش از encoding هست(یا داخل فایل مشخص نشده، یا اشتباهه)

----------


## thelastblack

اینم کد:
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.m  essagebox.showinfo("Hi", "Name?",))
button.pack(side=BOTTOM)
tk.mainloop()

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

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

----------


## ilius.gnu

اینجوری که معلوم نمیشه! منظورم این بود که فایل برنامه رو آپلود کنید ببینم کاراکترهای غیراسکی داره یا نه. نمی‌دونم مشکلش چیه. من خودم توی گنو/لینوکس کار می‌کنم.
به هر حال بهتره که همیشه بصورت UTF-8 سیو کنید و اول برنامه هم این خط رو اضافه کنید:
# -*- coding: utf-8 -*-
یا اینکه همون که خودش نوشته رو بذارید ببینید چی میشه:
# -*- coding: cp720 -*-


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


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

----------


## ilius.gnu

در ضمن اگه توی این فروم بپرسید خیلی سریع‌تر جواب می‌گیرید:
http://www.pylearn.com/fa/forum

----------


## thelastblack

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

----------

