مشاهده دست آورد نظرسنجی: نظرتون در رابطه با ایجاد این پست چیه ؟

رای دهنده
2. شما نمی توانید در این رای گیری رای بدهید
  • موافقم . میتونه مفید باشه

    2 100.00%
  • مخالفم . (درصورت انتخاب این گزینه ، دلیلتون رو با پیغام خصوصی مطرح کنین)

    0 0%
نمایش نتایج 1 تا 39 از 39

نام تاپیک: تاپیک سورسهای موضوعی پایتون (آموزشی)

  1. #1

    تاپیک سورسهای موضوعی پایتون (آموزشی)

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

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

    • اساتید و دوستان حرفه ای لطف کنن تا 2 روز پس از طرح سوال به اون جواب ندن که فرصتی بشه برای دوستان مبتدی تا کمی روش فکر کنن.
    • در انتخاب نسخه پایتون مختارید (نسخه پایتون مورد استفاده خود را درج کنید)
    • نام سیستم عاملی که کد در آن تست شده را بنویسید
    • از ماژولهای خارجی تا جایی که امکان داره استفاده نشه

    ( با اجازه دوست خوبم )

    Geek1982: دوستان این دو تا مورد رو لطفا حتما رعایت کنید

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

    شاد و موفق یاشید
    آخرین ویرایش به وسیله ehp_kz6597 : جمعه 16 دی 1390 در 13:37 عصر

  2. #2

    سوالات و لینک پاسخها

    1-مقدمات و ساختار های کنترلی :
    ------------------------

    • 1- برنامه ای بنویسید که عددی را از ورودی دریافت کند و سپس به تعداد این عدد اعدادی را دریافت کرده ، مجموع و میانگین آن را محاسبه کرده و نمایش دهد . / پاسخ . پست 3

    و یه نکته کوجولو : اگر از تبدیل استفاده شده در خط دوم کد ارائه شده استفاده نکنید در ادامه با پیغام خطا مواجه میشوید . وروردی به طور معمول به صورت رشته دریافت خواهد شد.

    • 2- برنامه ای بنویسید که اعداد بین 0 تا 2 را با فاصله 0.2 نمایش دهد / پاسخ . پست 7
    • 3- برنامه ای بنویسید که کاراکترهای a تا z رو همراه با کد اسکی اون چاپ کنه . / پاسخ و نکته . پست 9
    • 4- برنامه ای بنویسید که رشته ای رو از ورودی دریافت کنه و کد اسکی اون رو نشون بده . در خروجی فقط کد اسکی و یک فاصله چاپ بشه (به صورت افقی) / پست 11 و 12
    • 5- برنامه ای بنویسید که رشته ای را از ورودی دریافت کرده و تعداد فضای خالی بین کلمات را شمارش کند . رشته مورد نظر با دریافت سه نقطه پشت سر هم (...) به پایان میرسد / پست 14
    • 6- سوال قبل را با while پیاده سازی کنید. / پست 16
    • 7-برنامه ای بنویسید که عدادی را از ورودی دریافت کند و درصورتی که تعداد ارقام عدد فرد است و یک رقمی نیست وارون آن را چاپ کند و در غیر اینصورت --- را چاپ کند/ادامه توضیحات در پست مربوطه... / پست24
    • 8- برنامه ای بنویسید که اولویت اعمال در عبارت زیر را بگونه ای تنظیم کند که نتیجه محاسبه عدد 20 شود/
      3*5+4-1*4/3+1
      /پست 33
    آخرین ویرایش به وسیله ehp_kz6597 : دوشنبه 03 بهمن 1390 در 08:53 صبح دلیل: به روز رسانی لینک سوالات و پاسخها

  3. #3
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    24

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام خیلی کار خوبی کردین باعث شد من بعد از چندی دوباره پایتون کار کنم ممنون
    import os
    x = int(input("Please enter a number: "))
    x3 = 0
    x2 = 0
    for a in range(1,x + 1):
    x2 = int(input("Please enter a number: "))
    x3 += x2

    print("Sum = " + str(x3) + " Average = " + str(x3 / x))
    os.system("PAUSE")
    آخرین ویرایش به وسیله MohsenPy : پنج شنبه 15 دی 1390 در 21:06 عصر

  4. #4

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    از جناب
    geek1982 بابت پیگیری و همکاریشون ممنونم
    جناب MohsenPy با تشکر از پاسختون ، به نظر شما استفاده از کدهای خط اول و آخر لازمه ؟ اگه اینطوره لطف کنید دلیلش رو زیر پاسختون ارائه کنید
    ------------------------------------------------------------------------------------------
    برنامه ای بنویسید که اعداد بین 0 تا 2 را با فاصله 0.2 نمایش دهد
    خروجی :
    0
    0.2
    0.4
    0.8
    .
    .
    .
    2
    آخرین ویرایش به وسیله ehp_kz6597 : جمعه 16 دی 1390 در 16:29 عصر

  5. #5
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    24

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    من که متوجه این سوال نشدم یعنی در در یک خط با فاصله 0.2 نمایش بده؟خواهشا یکم واضح تر سوال طرح کن جناب ehp_kz6597 عزیز.
    ...
    در مورد اون Pause شدن برنامه نه میشه نوشت میشه ننوشت ولی برای اینکه برنامه سریع بسته نشه نوشتم و یادم رفت برش دارم از کد برنامه برای انتقال به اینجا حالا چطور مگه؟
    آخرین ویرایش به وسیله MohsenPy : جمعه 16 دی 1390 در 16:26 عصر

  6. #6

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

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

  7. #7
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    24

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    خدا خیرت بده سوالو درست کردی
    بفرما:
    for i in range(1,10 + 1):
    print((i / 10) * 2 )

    در ضمن از Python 3.2 هم استفاده میکنم یادم رفت ذکر کنم.
    ...
    والا تا جایی که بنده حقیر یاد دارم اینجوری هست عزیز و تو زبون های دیگه هم مثل c همینه:
    system("pause");

    البته اون راهم هستا ولی من حالا از این راه استفاده میکنم دیگه گیر نده شما.

  8. #8

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    من بیخیالش شدم ولی ...
    جناب MohsenPy ، از پاسخ دادن شما معلومه که مبتدی نیستین ، به همین خاطر همونطور که تو پست اول هم مطرح کردم لطف کنید فردای روزی که سوال مطرح میشه جوابتون رو ارائه کنید تا دوستان تازه وارد هم کمی رو مسئله فکر کنن . مخصوصا که این اوایل سوالات چندان سخت نیست و مفاهیم اولیه رو در غالب شرایط مختلف بررسی میکنه و میتونه برای تقویت پایه های یادگیری مناسب باشه .
    سوالات سخت نیست دوستانی که این پست ها رو مشاهده میکنن سعی کنن تو حل مسائل مطرح شده همکاری کنن .
    -------------------------------------------------------------------------
    برنامه ای بنویسید که کاراکترهای a تا z رو همراه با کد اسکی اون چاپ کنه .

  9. #9
    کاربر جدید
    تاریخ عضویت
    آبان 1390
    محل زندگی
    مشهد
    پست
    24

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    خب مثل اینکه خبری نیست اوکی اینم خودم جواب میدم.
    پاسخ:
    for i in range(97,122 + 1):
    print(chr(i) +" "+ str(i))

    توضیح: کد اسکی حروف کوچک از 97 تا 122 هست و کد اسکی حروف بزرگ از 65 تا 90.

  10. #10

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    بابا ایول به این همه فعالیت . آخه من موندم کدوم کد رو به عنوان پاسخ سوال درج کنم
    باز هم دوست عزیز جناب MohsenPy . اگه نبود احتمالا در این تاپیک تخته میشد
    ------------------------------------------------------------------
    این سوال هم آسونه و هم به نوعی در ارتباط با سوال قبله . پس دوستان سعی کنن این یکی رو جواب بدن
    برنامه ای بنویسید که رشته ای رو از ورودی دریافت کنه و کد اسکی اون رو نشون بده . در خروجی فقط کد اسکی و یک فاصله چاپ بشه (به صورت افقی) مثلا
    ورودی : abc خروجی : 99 98 97

  11. #11
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    ناراحت نشو عزیز
    نمیذارم در این تاپیک تخته شه:
    فقط از اونجایی که خودم رو استاد در پایتون میدونم! (بالاخره از آشنایی من و پایتون نزدیک به دو سه هفته میگذره!) صبر میکنم تا بقیه کدشون رو بذارن
    python 2.7 - windows


    x=raw_input('please enter a word: ')
    for i in x:
    print ord(i),

  12. #12

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    ناراحت که نیستم ولی وقتی ببینم دوستان استقبال بیشتر میکنن ، فعالیت میکنن و ... خب روحم شاد میشه
    از طرفی این سوالات و آموزشها برای افراد تازه کار بیشتر مناسبه (انشاء الله تا مراحل پیشرفته تر ادامه داره) . وقتی هم میگین دو سه هفته یعنی یعنی با اصول اولیه آشنایید و مطمئنا با یه کم تلاش و جستجو میتونین سوالات رو حل کنید و این تلاش و جستجو برای پیدا کردن جواب تاثیر عجیبی در یادگیری داره
    از پاسختون ممنونم
    کد بالا در پایتون 3 به صورت زیر تغییر میکنه :
    x=input('please enter a word: ')
    for i in x:
    print (ord(i),end=' ')

  13. #13

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    برنامه ای بنویسید که رشته ای را از ورودی دریافت کرده و تعداد فضای خالی بین کلمات را شمارش کند . رشته مورد نظر با دریافت سه نقطه پشت سر هم (...) به پایان میرسد
    آخرین ویرایش به وسیله ehp_kz6597 : سه شنبه 20 دی 1390 در 15:56 عصر دلیل: اصلاح سوال / احتمال برداشت اشتباه از سوال

  14. #14

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    x=input("Enter text and end it with ...")
    noOfSpace=0
    for i in range(0,len(x),1):
    if x[i]==" ":
    noOfSpace+=1
    if x[i:i+3]=="...":
    break
    print("Total no of spaces is %d" % noOfSpace)


    Python 3.2, Windows Platform
    آخرین ویرایش به وسیله saina2006 : پنج شنبه 22 دی 1390 در 07:42 صبح

  15. #15

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    با تشکر از جناب saina2006
    الف - سوال قبل را با while پیاده سازی کنید.
    ب -آیا هر کد نوشته شده با حلقه while را میتوان به for تبدیل کرد و برعکس ؟ در صورتی که پاسخ به این سوال منفی است با دلیل و مثال نقض اثبات کنید
    (2 نمره )

  16. #16

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    x=input("Enter text and end it with ...")
    noOfSpace=0
    i=0
    while not x[i:i+3]=="...":
    if x[i]==" ":
    noOfSpace+=1
    i+=1
    print("Total no of spaces is %d" % noOfSpace)

    Python 3.2, Windows Platform

    به نظر من میشه چون در حقیقت for شکل دیگه ای از while هست

  17. #17
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    نقل قول نوشته شده توسط ehp_kz6597 مشاهده تاپیک
    ب -آیا هر کد نوشته شده با حلقه while را میتوان به for تبدیل کرد و برعکس ؟ در صورتی که پاسخ به این سوال منفی است با دلیل و مثال نقض اثبات کنید[/COLOR] (2 نمره )
    ساخت حلقه بینهایت با دستور for فکر میکنم یه خورده مشکله
    با زبونی مثل vb مطمئنم به این راحتیا نمیشه ولی با اون چیزی که از پایتون دیدم احساس میکنم با یک کم تلا ش بشه.
    اصلا میتونه سوال بعدیت همین باشه:
    ساخت حلقه بینهایت با for
    !!!

  18. #18

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    نقل قول نوشته شده توسط asedjavad مشاهده تاپیک
    ساخت حلقه بینهایت با دستور for فکر میکنم یه خورده مشکله
    با زبونی مثل vb مطمئنم به این راحتیا نمیشه ولی با اون چیزی که از پایتون دیدم احساس میکنم با یک کم تلا ش بشه.
    اصلا میتونه سوال بعدیت همین باشه:
    ساخت حلقه بینهایت با for
    !!!
    ساخت حلقه بینهایت با for خیلی ساده هست فقط کافیه start=1 وend=0 و step=1 باشه

  19. #19

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    با تشکر از دوستان

    ForLoop
    ؟ When do I use for loops
    For loops are traditionally used when you have a piece of code which you want to repeat n number of times. As an alternative, there is the WhileLoop, however, while is used when a condition is to be met, or if you want a piece of code to repeat forever

    WhileLoop
    ؟ When do I use them
    While loops, like the ForLoop, are used for repeating sections of code - but unlike a for loop, the while loop will not run n times, but until a defined condition is met. As the for loop in Python is so powerful, while is rarely used, except in cases where a user's input is required

    با توجه به توضیحات رسمی پایتون ، میشه این طور برداشت کرد که برعکس برخی زبانهای دیگه که تبدیل این دو حلقه به هم راحت تر انجام میشه ، اینجا قرار نیست شما اصلا اینو جای اون استفاده کنید و از اون مهمتر انگار شما نباید با for یه حلقه بینهایت ایجاد کنید (به لینکهای بالا مراجعه کنید)
    ولی خب اگه کسی حال داشت بشینه اینو بررسی کنه و جوابشو اینجا بذاره
    ساخت حلقه بینهایت با for
    یه کوچولو ور رفتم هنگ کردم و ctrl + alt + delete > end process



    آخرین ویرایش به وسیله ehp_kz6597 : جمعه 23 دی 1390 در 15:10 عصر دلیل: تصحیح لینک ها

  20. #20

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    دوستان اگه تکنیک خاصی توی کد هاشون استفاده می کنن ان ها رو شرح بدن مثلا همین string slicing که به کار رفته
    http://rgruet.free.fr/PQR27/PQR2.7.html

  21. #21

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    برنامه ای بنویسید که عدادی را از ورودی دریافت کند و درصورتی که تعداد ارقام عدد فرد است و یک رقمی نیست وارون آن را چاپ کند و در غیر اینصورت --- را چاپ کند
    برنامه باید با ورود هر عدد خروجی را در همان لحظه نمایش دهد
    این برنامه زمانی به پایان میرسد که کاربر عبارت exit را تایپ کند

    ورودی : 123 خروجی : 321 ورودی : 9 خروجی :---

  22. #22
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    یه نمونه حلقه تا حدودی بینهایت با for در python 2.7 در ویندوز:
    البته نمیشه گفت به طور کامل حلقه بینهایته ولی تا جایی که حافظه یاری کنه، کار میکنه ظاهرا!

    a=[1]
    for i in a:
    a.append(1)

    این چیزی بود که به ذهن من رسید
    هرچند نه سرعتش مناسبه و نه میزان استفاده از حافظش
    ولی بالاخره کار میکنه!

    حالا با اجازه میخوام دوباره همین سوال رو مطرح کنم که
    -آیا هر کد نوشته شده با حلقه while را میتوان به for تبدیل کرد و برعکس ؟ در صورتی که پاسخ به این سوال منفی است با دلیل و مثال نقض اثبات کنید

  23. #23

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    دوستان سوالات رو کمی پیچیده تر کنن ( استفاده از keyword های بیشتری از زبان منظورمه به طوری که از خود زبان چیز یاد بگیریم )

  24. #24

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    while True:
    num=""
    numrev=""
    num=str(input("Enter a number [For exit enter exit]: "))
    if num=="exit":
    break
    if len(num)==1:
    print("---")
    continue
    if len(num)%2 !=1:
    continue
    for i in range(len(num)-1,-1,-1):
    numrev+=num[i]
    print("Reverse Number is: %s" % numrev)


    Phython 3.2, Windows Platform

  25. #25
    کاربر دائمی
    تاریخ عضویت
    مرداد 1387
    محل زندگی
    35°41′46″N 51°25′23″E
    سن
    28
    پست
    1,545

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    -آیا هر کد نوشته شده با حلقه while را میتوان به for تبدیل کرد و برعکس ؟ در صورتی که پاسخ به این سوال منفی است با دلیل و مثال نقض اثبات کنید
    حلقه ی For از روی While ساخته شده، یعنی حالت خاصی از While هست.

  26. #26
    کاربر تازه وارد آواتار black phoenix
    تاریخ عضویت
    خرداد 1390
    محل زندگی
    زیر سایه ی امام زمان (ع)
    سن
    30
    پست
    86

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)


    while True:

    num=""

    numrev=""

    num=str(input("Enter a number [For exit enter exit]: "))

    if num=="exit":

    break

    if len(num)==1:

    print("---")

    continue

    if len(num)%2 !=1:

    continue

    for i in range(len(num)-1,-1,-1):

    numrev+=num[i]

    print("Reverse Number is: %s" % numrev)



    سلام
    میشه یه توضیح راجع به کدتون بدید؟

  27. #27

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    الان از سر امتحان اومدم . سرم داره منفجر میشه ، چشام داره میترکه و حالم شبیه اینه . اگه مطلب چرت و پرتی دیدید به بزرگواری ببخشید
    میشه یه توضیح راجع به کدتون بدید؟
    خب اینکه توضیح خاصی نمیخواد
    تازمانی که حلقه while درست است (حلقه بینهایت ) ، ورودی را از کاربر میگیرد و در num قرار میدهد .برنامه مقدار num را چک میکند که اگر برابر exit باشد حلقه خاتمه می یابد (دستور breack ) . سپس ( len(num ، یعنی طول ورودی کاربر ، را بررسی میکند . در صورتی که برابر 1 بود ، یعنی عدد وارد شده تک رقمی بود "---" چاپ میشود .
    len(num)%2 !=1 این کد هم بررسی میکنه که اگر طول عدد وارد شده فرد باشد ، از ادامه حلقه منصرف شده و دور بعد شروع میشود (دوباره از کاربر درخواست ورودی میکند ) // البته قرار بود که در این حالت نیز همون "---" چاپ شود ولی خب تو کلیت جواب تاثیری نداره
    اگر همه شرایط روبه راه بود میاد و از طول عبارت وارد شده منهای 1 تا 1- رو یکی یکی دنده عقب میره یعنی مثلا 5 4 3 2 1 0 و کاراکتر ها رو چاپ میکنه
    ---------------------------------------------------
    اینجا قرار بر اینه که بیشتر سوال و راه حل ببینیم و با نکات ریز آشنا بشیم . خیلی وقتا راهایی هست که یا نمیدونیم یا تو اون لحظه به ذهنمون نمیاد و ...
    پس دیگه توضیح مفصل برای کدها داده نخواهد شد

    -------------------------------------------------
    حلقه ی For از روی While ساخته شده، یعنی حالت خاصی از While هست.
    با قسمت دوم موافقم ولی با قطعیتی که تو قسمت اول وجود داره کمی مشکل دارم .
    1- فقط تو پایتون اینجوره ؟
    2- یعنی کامپایلر و یا مفسر کد for رو به while تبدیل میکنه ???? منبع ؟؟
    دوستان سوالات رو کمی پیچیده تر کنن ( استفاده از keyword های بیشتری از زبان منظورمه به طوری که از خود زبان چیز یاد بگیریم )
    اگه منظورتون keyword همون چندتا کلمه کلیدی هست که با دستور help >keyword نشون میده که فکر کنم به همین ترتیب که پیش بریم تا چند سوال دیگه تقریبا همشون حداقل یکبار مورد استفاده قرار میگیرن ، اگه نه لطف کنید کمی بیشتر توضیح بدید ممنون میشم
    به عنوان مثال همین سوال قبل 6-7 تا کلمه کلیدی استفاده شده
    در مورد سختی سوالات هم ، چشم ،سعی میکنم از این به بعد دو سوال در دو سطح مطرح کنم ولی خداییش سوال هدف دار طرح کردن سخته . احتمال زیاد تا یه چند مدت دیگه سوالاتی که مطرح میکنم خودم هم تو حلش گیر کنم

  28. #28

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    این سوال چطوره ؟
    برنامه ای بنویسید که اولویت اعمال در عبارت زیر را بگونه ای تنظیم کند که نتیجه محاسبه عدد 20 شود

    3*5+4-1*4/3+1

  29. #29
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    فقط تو پایتون اینجوره ؟
    2- یعنی کامپایلر و یا مفسر کد for رو به while تبدیل میکنه
    تا اونجایی که من اطلاع دارم (هر چند اطلاعاتم خیلی ناقصه) دو تا از ساده ترین . ابتدایی ترین دستورات هر پروسسور دستور شرط و دستور پرش هست
    یعنی این عبارت که "اگه شرط برقراره، بپر به خط فلان"
    و این اساس کار انواع حلقه هاست.

    برنامه ای بنویسید که اولویت اعمال در عبارت زیر را بگونه ای تنظیم کند که نتیجه محاسبه عدد 20 شود
    سوال جالبیه!

  30. #30

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    1- فقط تو پایتون اینجوره ؟
    2- یعنی کامپایلر و یا مفسر کد for رو به while تبدیل میکنه ???? منبع ؟؟
    کلا در کامپیوتر حلقه وحود نداره و در Assembly تمامی حلقه ها با دو دستور انجام میشه که cmp و دستورات jmp مثل jmp,jae,je,jg,jge,... و آدرس خط کد بوجود میان

  31. #31

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    نقل قول نوشته شده توسط ehp_kz6597 مشاهده تاپیک
    این سوال چطوره ؟
    برنامه ای بنویسید که اولویت اعمال در عبارت زیر را بگونه ای تنظیم کند که نتیجه محاسبه عدد 20 شود

    3*5+4-1*4/3+1
    میشه یکم بیشتر توضیح بدی؟؟؟
    خود برنامه اینقدر امتحان کنه تا ببینه چطور جوابش 20 میشه یا اینکه عبارت رو اینجوری بنویسیم
    3*5+(((4-1)*4)/3)+1

  32. #32

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

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

  33. #33
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    خدمت شما:
    یه عبارت ریاضی (شامل جمع، ضرب، منها، تقسیم، باقیمانده و توان) بهش میدی، بعد حاصل نهایی رو هم میدی، بهتون عبارت درست رو میده
    فقط نکته ای که مهمه اینه که مثلا عبارت مورد نظر در سوال رو به صورت "3 * 5 + 4 - 1 * 4 / 3 + 1" بدید نه به صورت "3*5+4-1*4/3+1" (منظورم فاصله هاشه)

    در ضمن تشکر میکنم از آقای ehp_kz6597 بابت این سوال که برا اولین بار در عمر چند ساله برنامه نویسیم، اهمیت توابع بازگشتی رو بهم نشون داد

    پایتون 2.7 - سیستم عامل تست شده: سیمبین

    def hesab(lst,num,k=0):
    global olaviat
    if len(lst)<=3:
    if eval(''.join(lst))==num:
    return True
    else:
    return False
    else:
    for i in range(0,len(lst)-2,2):
    A=lst[:i]
    A.append(str(eval(''.join(lst[i:i+3]))))
    A.extend(lst[i+3:])
    if hesab(A,num,k+1):
    olaviat[k]=i
    return True

    x=str(raw_input('ebarat ra vared konid'))
    n=int(input('hasel ra vared konid'))
    a=x.split()
    olaviat=((len(a)-3)/2)*[0]
    if hesab(a,n):
    for i in olaviat:
    a[i]='(' + a[i] + a[i+1] + a[i+2] + ')'
    del(a[i+1:i+3])
    print ''.join(a)
    else:
    print 'Nashod......'


    منتظر جوابهای دیگر عزیزان هم هستم

  34. #34

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    جناب asedjavad
    olaviat=((len(a)-3)/2)*[0]
    تو py3 با خطای زیر مواجه شدم . تو py2 بدون مشکل اجرا شد ؟
    متن خطا :TypeError: can't multiply sequence by non-int of type 'float'
    اصلا اون [0] که نوشتین مربوط به چیه . به نظر میاد که به خونه صفری اشاره داره ولی برای کدوم متغیر؟

  35. #35
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    Python 2.7.2 (default, Jun 12 2011, 15:08:59) [MSC v.1500 32 bit (Intel)] on win
    32
    >>> 4*[0]
    [0, 0, 0, 0]
    >>> 6*['a']
    ['a', 'a', 'a', 'a', 'a', 'a']


    فکر کنم با این مثال معلوم میشه!
    آخرین ویرایش به وسیله ASedJavad : جمعه 30 دی 1390 در 21:23 عصر

  36. #36

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سلام
    خب الان واضح شد. خیلی ممنون
    ولی انگار اون خط 20 تو py3 مشکل داره که همون خطایی که در پست قبل اشاره کردم رخ میده
    دوستانی که از py3 استفاده میکنن خط 20 رو به صورت زیر تغییر بدن
    olaviat=(int((len(a)-3)/2))*[0]

    یعنی نتیجه اون تقسیم باید یه عدد صحیح باشه تا جواب بدست بیاد . در غیر اینصورت مثل این میمونه که بگی آقا دوتا و نیم [0] میخوام

  37. #37

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    2- تابع
    سلام دوستان
    در این پست و پست های آینده به مبحث توابع می پردازیم (هرچند سوال قبل هم به وسیله تابع پیاده سازی شد ولی فکر کنم برای شروع سنگین بود)
    برنامه ای بنویسید که با گرفتن طول اضلاع یک مثلث قائم الزاویه ، مقادیر سینوس ، کسینوس ، تانژانت و کتانژانت زوایای غیر قائم را بدست آورد. / از تابع استفاده کنید

  38. #38
    کاربر دائمی آواتار ASedJavad
    تاریخ عضویت
    فروردین 1387
    محل زندگی
    زیر سایه امام رئوف
    پست
    856

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    سعی کردم از هر دو نوع روش معرفی تابع استفاده کنم:
    برنامه دو ضلع زاویه مورد نظر رو میگیره و چیزایی که خواسته بودید، تحویل میده:
    پایتون 2.7 ویندوز:
    def zele3(a,b):
    a=float(a)
    b=float(b)
    if a>b:
    return pow(a**2-b**2,0.5)
    else:
    return pow(b**2-a**2,0.5)
    sin=lambda x1,x2:zele3(x1,x2)/max(x1,x2)
    cos=lambda x1,x2:float(min(x1,x2))/max(x1,x2)
    tan=lambda x1,x2:sin(x1,x2)/cos(x1,x2)
    cot=lambda x1,x2:1/tan(x1,x2)
    x=input("2 Zel'e zavieye morede nazar ra vared konid:\n mesal: 3,5\n")
    print "sin: %f"%sin(x[0],x[1])
    print "cos: %f"%cos(x[0],x[1])
    print "tan: %f"%tan(x[0],x[1])
    print "cot: %f"%cot(x[0],x[1])

  39. #39

    نقل قول: تاپیک سورسهای موضوعی پایتون (آموزشی)

    در حاشیه :
    http://codingbat.com/python
    اینجا هم حتما یه سری بزنید میتونید مسائل رو به صورت انلاین حل کنید و نتیجه رو ببینید

قوانین ایجاد تاپیک در تالار

  • شما نمی توانید تاپیک جدید ایجاد کنید
  • شما نمی توانید به تاپیک ها پاسخ دهید
  • شما نمی توانید ضمیمه ارسال کنید
  • شما نمی توانید پاسخ هایتان را ویرایش کنید
  •