• اگر سمپادی هستی همین الان عضو شو :
    ثبت نام عضویت

کلاس برنامه نویسی Python

المپیاد طلایی ها
وضعیت
موضوع بسته شده است.

Yabançı

کاربر نیمه‌حرفه‌ای
ارسال‌ها
257
امتیاز
969
نام مرکز سمپاد
طلایه داران
شهر
لاچین
رشته دانشگاه
JLE
پاسخ : کلاس برنامه نویسی Python

به نقل از Beyond the Sky :
این کجاش غلطه؟
کد:
def the_flying_circus():
    if   not 7!=7:
        print True
    elif 7==8:
        print False
    else:
        print False
خوب این تعریف تابعتون هست چطور اجراش میکنین؟
احتمالا چنین چیزی در ادامه دارین:
کد:
print(the_flying_circus)
که باعث ارور میشه دلیلش این هست که شما میخواید نتیجه تابع the_flying_circus رو به عنوان آرگومان ورودی به تابع print بدید در حالی که تابع the_flying_circus هیچ مقداری رو برنمیگردونه.
برای اینکه متوجه بشید به این تابع دقت کنید:
کد:
def sum(a,b):
	return a+b
میتونید به صورت زیر تابع رو فراخوانی کنید و نتیجه رو در صفحه چاپ کنید:
کد:
print(sum(1,5))
یا میتونید همان تابع رو با فرم شما بنویسیم:
کد:
def sum(a,b):
	print(a+b)
و به اینصورت فراخوانی کنید:
کد:
sum(1,5)
در حالت دوم تابع نتیجه رو به برنمیگردونه(به عبارت تخصصی‌تر این تابع null برمیگردونه)) و نتیجه رو مستقیما روی صفحه چاپش میکنه برای همین نیاز نیست دوباره از تابع print استفاده کنیم اما در حالت اول تابع نتیجه رو برمیگردونه و اگر بخوایم میتونیم چاپش کنیم یا محاسبه‌ی دیگه‌ای رو نتیجه انجام بدیم، امیدوارم فرق بین دو حالت رو متوجه شده باشید.
معمولا در نوشتن تابع ها سعی میشه داده‌ها بازگردونده بشه تا اینکه مستقیما چاپ بشه استفاده از توابع فراخوان سیستمی مانند print رو باید در قسمت اصلی برنامه نگه داریم، دلیل اینکار اینه که برای تغییرهای کوچک در خروجی نیاز به تغییر تابع نداشته باشیم، فرض کنید در مثالی که زدم بخوام نصف جمع دو عدد رو چاپ کنم در حالت اول و هنگام استفاده از return کافی هست قسمت فراخوانی رو به صورت زیر تغییر بدم:
کد:
print(sum(1,5)/2)
اما اگر به فرم شما تابع رو نوشته باشم باید برم و تابع رو تغییر بدم، در برنامه‌های عادی معمولا تعداد تابع‌ها اینقدر زیاد هست که تغییر یک تابع وقت زیادی رو میبره و همچنین ممکنه اشتباها هنگام اصلاح تابع، مشکلاتی در تابع به وجود بیاریم، ضمنا ممکن هست در یک پروژه‌ی گروهی تابع رو ما ننوشته باشیم و اصلاح تابع خودش سخت و زمانبر باشه. پس تا حد امکان نتیجه تابع باید return بشه.


چند نکته درباره‌ی برنامه‌ای که نوشتید :
۱ - همونطور که احتمالا میدونید تابعی که نوشتید همیشه مقدار true رو برمیگردونه:
کد:
not 7!=7
در شرطی که نوشتید دو بار از نقیض استفاده کردید که در برنامه‌نویسی استفاده نمیشه چون دقیقا معادل شرط زیر هست:
کد:
7==7
برای شرط «اگر مخالف است» نوشتن یک نقیض کافی هست :
کد:
7!=7
یا :
کد:
not 7==7

۲ - سعی کنید وقتی سوالی در برنامه‌نویسی می‌پرسید متن کامل برنامه یا اسکرین شات صفحه + متن ارور رو بدین تا بشه جواب داد، در سوالی که پرسیدید قسمت کد تابعتون رو گذاشتید در حالی که این قسمت مشکلی نداره و احتمالا قسمت فرخوانیش مشکل داره.
 

Beyond the Sky

کاربر حرفه‌ای
ارسال‌ها
548
امتیاز
3,804
نام مرکز سمپاد
فرزانگان
شهر
تبریز
سال فارغ التحصیلی
98
رشته دانشگاه
پزشکی
پاسخ : کلاس برنامه نویسی Python

به نقل از Yabançı :
۲ - سعی کنید وقتی سوالی در برنامه‌نویسی می‌پرسید متن کامل برنامه یا اسکرین شات صفحه + متن ارور رو بدین تا بشه جواب داد، در سوالی که پرسیدید قسمت کد تابعتون رو گذاشتید در حالی که این قسمت مشکلی نداره و احتمالا قسمت فرخوانیش مشکل داره.
کل کد همون بود. :-"
ممنونم. :)
 
  • شروع کننده موضوع
  • #23

rezaezio

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,167
امتیاز
1,954
نام مرکز سمپاد
حلّیِ 2
شهر
تهران
دانشگاه
شریف
رشته دانشگاه
نرم افزار
پاسخ : کلاس برنامه نویسی Python

به نقل از Beyond the Sky :
کل کد همون بود. :-"
ممنونم. :)
منم باز بگم اون کد سالم بود!
اون اروری هم که گفتین، نمیدونم کد رو کجا ران کردین(احتمالا توی ادیتورcodecademy ران کردین) به پایتون مربوط نبود! به کورس مربوط بود :D
و کورس طبق چیزایی که گفته توقع داشته شما چیزی return کنید و شما توی این کد چیزی return نمیکنید، ارور داده :))
 

ali-ai

کاربر نیمه‌فعال
ارسال‌ها
5
امتیاز
5
نام مرکز سمپاد
shahid beheshti
شهر
lar
پاسخ : کلاس برنامه نویسی Python

اگه میشه درباره ساختارهایی با return توضیح بدید
مثلا در برنامه های پیشرفته تر چجوری باید استفاده بشه
یه چیز دیگه
return دقیقا به چی برمی گرده؟
 
  • شروع کننده موضوع
  • #25

rezaezio

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,167
امتیاز
1,954
نام مرکز سمپاد
حلّیِ 2
شهر
تهران
دانشگاه
شریف
رشته دانشگاه
نرم افزار
پاسخ : کلاس برنامه نویسی Python

به نقل از ali-ai :
اگه میشه درباره ساختارهایی با return توضیح بدید
مثلا در برنامه های پیشرفته تر چجوری باید استفاده بشه
یه چیز دیگه
return دقیقا به چی برمی گرده؟
خب ببین وقتی یک تابع تعریف میکنی، وابسته به ورودی های تابع، باید یک چیزی return کنی! این چیزی که return میشه جواب این تابع به ازای این ورودی هاست!
مثلا تابع y=x*x تو ریاضی رو در نظر بگیر! یک x رو به عنوان ورودی میدادیم و یک y به عنوان خروجی بهمون میداد. در حقیقت (f(x رو باید return کنی!
بعد وقتی یجایی از تابع تعریف شده، استفاده کنی، یعنی بنویسی (f(x، مقداری که درون تابع f به ازای x برمیگردونی، به جای (f(x نوشته میشه.
 

Beyond the Sky

کاربر حرفه‌ای
ارسال‌ها
548
امتیاز
3,804
نام مرکز سمپاد
فرزانگان
شهر
تبریز
سال فارغ التحصیلی
98
رشته دانشگاه
پزشکی
پاسخ : کلاس برنامه نویسی Python

این کجاش مشکل داره؟

کد:
def cube(number):
    return number**3
def by_three(number):
    if number % 27 == 0:
        return " %s is cube number " % (number)
    else:
        return False
بعد return یعنی چی؟
 
  • شروع کننده موضوع
  • #27

rezaezio

کاربر فوق‌حرفه‌ای
ارسال‌ها
1,167
امتیاز
1,954
نام مرکز سمپاد
حلّیِ 2
شهر
تهران
دانشگاه
شریف
رشته دانشگاه
نرم افزار
پاسخ : کلاس برنامه نویسی Python

به نقل از Beyond the Sky :
این کجاش مشکل داره؟

کد:
def cube(number):
    return number**3
def by_three(number):
    if number % 27 == 0:
        return " %s is cube number " % (number)
    else:
        return False
بعد return یعنی چی؟
ارورش رو میگی؟ ببین بازم بنظرم کد سالمه ولی چیزی که سایت ازت خواسته نیست!
ریترن رو هم توی پست بالا توضیح دادم
 
وضعیت
موضوع بسته شده است.
بالا