রিটার্ন স্টেটমেন্ট কীসের সাধারণ বেসিক ব্যাখ্যা, পাইথনে এটি কীভাবে ব্যবহার করবেন?
এবং এটি এবং print
বিবৃতি মধ্যে পার্থক্য কি ?
রিটার্ন স্টেটমেন্ট কীসের সাধারণ বেসিক ব্যাখ্যা, পাইথনে এটি কীভাবে ব্যবহার করবেন?
এবং এটি এবং print
বিবৃতি মধ্যে পার্থক্য কি ?
উত্তর:
print()
ফাংশন লিখছেন, অর্থাত, "প্রিন্ট", কনসোলে একটি স্ট্রিং। return
বিবৃতি তার আহ্বানকারী একটি মান প্রস্থান করুন এবং হাত পিছনে আপনার ফাংশন ঘটায়। সাধারণভাবে ফাংশনগুলির বিষয় হ'ল ইনপুট গ্রহণ করা এবং কিছু ফিরিয়ে দেওয়া। return
বিবৃতি যখন একটি ফাংশন তার আহ্বানকারী একটি মান ফিরতে প্রস্তুত ব্যবহৃত হয়।
উদাহরণস্বরূপ, এখানে একটি ফাংশন উভয় ব্যবহার এর print()
এবং return
:
def foo():
print("hello from inside of foo")
return 1
এখন আপনি এমন কোড চালাতে পারেন যা foo কে কল করে, যেমন:
if __name__ == '__main__':
print("going to call foo")
x = foo()
print("called foo")
print("foo returned " + str(x))
আপনি যদি .py
পাইথন ইন্টারপ্রেটারের বিপরীতে স্ক্রিপ্ট হিসাবে (যেমন একটি ফাইল) চালনা করেন তবে আপনি নিম্নলিখিত আউটপুট পাবেন:
going to call foo
hello from inside foo
called foo
foo returned 1
আমি আশা করি এটি আরও পরিষ্কার হয়ে যায়। দোভাষী অনুবাদকটি কনসোলটিতে রিটার্ন মানগুলি লিখেন যাতে আমি বুঝতে পারি যে কেন কেউ বিভ্রান্ত হতে পারে।
দোভাষী থেকে অন্য উদাহরণ এখানে দেখায় যে:
>>> def foo():
... print("hello from within foo")
... return 1
...
>>> foo()
hello from within foo
1
>>> def bar():
... return 10 * foo()
...
>>> bar()
hello from within foo
10
আপনি দেখতে পাচ্ছেন যে যখন কল foo()
করা হবে তখন bar()
1 কনসোলে লিখিত হয় না। পরিবর্তে এটি থেকে প্রাপ্ত মান গণনা করতে ব্যবহৃত হয় bar()
।
print()
পার্শ্ব প্রতিক্রিয়া সৃষ্টি করে এমন একটি ফাংশন (এটি কনসোলে একটি স্ট্রিং লিখেছে), তবে পরবর্তী বিবৃতি দিয়ে মৃত্যুদন্ড কার্যকর করা হয় res return
ফাংশনটি সম্পাদন বন্ধ করে দেয় এবং এটি যাকে বলে তাকে একটি মান ফিরিয়ে দেয়।
"foo returned " + str(x)
অন্যথায় আপনি পাবেন TypeError: cannot concatenate 'str' and 'int' objects
।
মুদ্রণ বিবৃতিটিকে একটি পার্শ্ব-প্রভাবের কারণ হিসাবে ভাবুন , এটি আপনার ফাংশনটিকে কিছু পাঠ্য ব্যবহারকারীর কাছে লিখে দেয়, তবে এটি অন্য ফাংশন দ্বারা ব্যবহার করা যায় না ।
আমি উইকিপিডিয়া থেকে কয়েকটি উদাহরণ এবং কয়েকটি সংজ্ঞা দিয়ে এটি আরও ভাল করে ব্যাখ্যা করার চেষ্টা করব।
এখানে উইকিপিডিয়া থেকে একটি ফাংশন সংজ্ঞা দেওয়া হয়
গণিতে একটি ফাংশন, একটি পরিমাণকে যুক্ত করে, ফাংশনের যুক্তি, যা ইনপুট হিসাবে পরিচিত, অন্য পরিমাণের সাথে, ফাংশনের মান, আউটপুট হিসাবেও পরিচিত ..
আরেক বারের চিন্তা করুন। আপনি যখন বলবেন যে ফাংশনটির একটি মূল্য আছে তখন এর অর্থ কী?
এর অর্থ হ'ল আপনি কোনও ফাংশনের মানকে স্বাভাবিক মানের সাথে প্রতিস্থাপন করতে পারেন! (দুটি মান একই ধরণের মান হিসাবে ধরে নেওয়া)
আপনি চাইলে কেন চান?
ইনপুট হিসাবে একই ধরণের মান গ্রহণ করতে পারে যে অন্যান্য ফাংশন সম্পর্কে কি ?
def square(n):
return n * n
def add_one(n):
return n + 1
print square(12)
# square(12) is the same as writing 144
print add_one(square(12))
print add_one(144)
#These both have the same output
ফাংশনগুলির জন্য একটি অভিনব গাণিতিক শব্দ রয়েছে যা কেবলমাত্র আউটপুট উত্পাদন করতে তাদের ইনপুটগুলির উপর নির্ভর করে: রেফারেনশিয়াল ট্রান্সপারেন্সি। আবার, উইকিপিডিয়া থেকে একটি সংজ্ঞা।
রেফারেনশিয়াল স্বচ্ছতা এবং রেফারেনশিয়াল অস্বচ্ছতা কম্পিউটার প্রোগ্রামগুলির অংশগুলির বৈশিষ্ট্য। কোনও প্রোগ্রামের আচরণ পরিবর্তন না করে যদি এর মান দিয়ে এটি প্রতিস্থাপন করা যায় তবে একটি অভিব্যক্তিটিকে রেফারেন্টালি স্বচ্ছ বলে জানানো হয়
আপনি যদি প্রোগ্রামিংয়ে কেবল নতুন হন তবে এর অর্থ কী তা বোঝা কিছুটা কঠিন হতে পারে তবে আমি মনে করি কিছু পরীক্ষার পরে আপনি এটি পাবেন। যদিও সাধারণভাবে, আপনি কোনও ফাংশনে মুদ্রণের মতো জিনিসগুলি করতে পারেন এবং শেষে আপনার কাছে একটি বিবরণী বিবৃতিও থাকতে পারে।
শুধু মনে রাখবেন যে আপনি যখন রিটার্ন ব্যবহার করবেন আপনি মূলত "এই ফাংশনটিতে একটি কল ফিরে আসবে এমন মান লেখার সমান"
পাইথন আসলে আপনার জন্য একটি রিটার্ন মান সন্নিবেশ করিয়ে দেয় যদি আপনি নিজের নিজের মধ্যে রাখতে অস্বীকার করেন তবে এটিকে "কিছুই নয়" বলা হয় এবং এটি একটি বিশেষ ধরণের যার অর্থ কেবল কিছুই নয় বা নਾਲ।
পাইথনে, আমরা "ডিএফ" দিয়ে একটি ফাংশন সংজ্ঞায়িত শুরু করি এবং সাধারণত, "রিটার্ন" দিয়ে ফাংশনটি শেষ করি না।
ভেরিয়েবল এক্স এর একটি ফাংশন f (x) হিসাবে চিহ্নিত করা হয়। এই ফাংশনটি কী করে? মনে করুন, এই ফাংশনটি 2 থেকে x এ যুক্ত করে। সুতরাং, চ (এক্স) = এক্স + 2
এখন, এই ফাংশনের কোডটি হ'ল:
def A_function (x):
return x + 2
ফাংশনটি সংজ্ঞায়িত করার পরে, আপনি যে কোনও পরিবর্তনশীল জন্য এটি ব্যবহার করতে পারেন এবং ফলাফল পেতে পারেন। যেমন:
print A_function (2)
>>> 4
আমরা কোডটি কিছুটা ভিন্নভাবে লিখতে পারি, যেমন:
def A_function (x):
y = x + 2
return y
print A_function (2)
এটি "4 "ও দিত।
এখন, আমরা এমনকি এই কোডটি ব্যবহার করতে পারি:
def A_function (x):
x = x + 2
return x
print A_function (2)
এটিও ৪ দেয় See দেখুন, রিটার্নের পাশে থাকা "x" এর অর্থ (x + 2), "A_function (x)" এর x নয়।
আমি এই সহজ উদাহরণ থেকে অনুমান, আপনি রিটার্ন কমান্ড এর অর্থ বুঝতে হবে।
return
এর অর্থ, "এই ফাংশন থেকে এই মানটি আউটপুট করুন"।
print
এর অর্থ, "এই মানটি (সাধারণত) স্টাডআউটে প্রেরণ করুন"
পাইথন আরপিএলে একটি ফাংশন রিটার্ন স্ক্রিনে ডিফল্ট হয়ে যাবে (এটি প্রিন্টের মতো নয়)।
এটি মুদ্রণের একটি উদাহরণ:
>>> n = "foo\nbar" #just assigning a variable. No output
>>> n #the value is output, but it is in a "raw form"
'foo\nbar'
>>> print n #the \n is now a newline
foo
bar
>>>
এটি প্রত্যাবর্তনের উদাহরণ:
>>> def getN():
... return "foo\nbar"
...
>>> getN() #When this isn't assigned to something, it is just output
'foo\nbar'
>>> n = getN() # assigning a variable to the return value. No output
>>> n #the value is output, but it is in a "raw form"
'foo\nbar'
>>> print n #the \n is now a newline
foo
bar
>>>
এই উত্তরটি এমন কয়েকটি ক্ষেত্রে যায় যা উপরে আলোচনা করা হয়নি। রিটার্ন এ বক্তব্যে আপনি কি করতে পারবেন বিনষ্ট একটি ফাংশন সঞ্চালনের আগে আপনি শেষে পৌঁছানোর। এর ফলে মৃত্যুদণ্ডের প্রবাহটি তাত্ক্ষণিক কলারে ফিরে আসে।
৪ নং লাইনে:
def ret(n):
if n > 9:
temp = "two digits"
return temp #Line 4
else:
temp = "one digit"
return temp #Line 8
print("return statement")
ret(10)
শর্তসাপেক্ষ বিবৃতি কার্যকর হওয়ার পরে (লাইন 4) ret()
কারণে ফাংশনটি বন্ধ হয়ে যায় return temp
। সুতরাংprint("return statement")
কার্যকর করা হয় না।
আউটপুট:
two digits
এই কোডটি শর্তাধীন বিবৃতিগুলির পরে প্রদর্শিত হয় বা নিয়ন্ত্রণের প্রবাহ যে জায়গায় পৌঁছাতে পারে না, তা হ'ল ডেড কোড ।
রিটার্নিং মান
4 ও 8 লাইনগুলিতে, শর্তটি কার্যকর হওয়ার পরে রিটার্ন স্টেটমেন্টটি অস্থায়ী ভেরিয়েবলের মান ফেরত দিতে ব্যবহৃত হয়।
মুদ্রণ এবং ফেরতের মধ্যে পার্থক্য আনতে :
def ret(n):
if n > 9:
print("two digits")
return "two digits"
else :
print("one digit")
return "one digit"
ret(25)
আউটপুট:
two digits
'two digits'
শুধু @ নাথন হিউজেসের দুর্দান্ত উত্তরে যুক্ত করতে:
return
বিবৃতি নিয়ন্ত্রণ প্রবাহ এক ধরনের হিসাবে ব্যবহার করা যাবে। return
কোনও ফাংশনের মাঝখানে একটি (বা আরও) বক্তব্য রেখে আমরা বলতে পারি: "এই ফাংশনটি সম্পাদন করা বন্ধ করুন either হয় আমরা যা চেয়েছিলাম তা পেয়েছি বা কিছু ভুল হয়েছে!"
এখানে একটি উদাহরণ:
>>> def make_3_characters_long(some_string):
... if len(some_string) == 3:
... return False
... if str(some_string) != some_string:
... return "Not a string!"
... if len(some_string) < 3:
... return ''.join(some_string,'x')[:,3]
... return some_string[:,3]
...
>>> threechars = make_3_characters_long('xyz')
>>> if threechars:
... print threechars
... else:
... print "threechars is already 3 characters long!"
...
threechars is already 3 characters long!
দেখুন কোড স্টাইল অধ্যায় ব্যবহারের এই ভাবে আরও পরামর্শের জন্য পাইথন গাইডের return
।
"রিটার্ন" এবং "মুদ্রণ" এর মধ্যে পার্থক্য নীচের উদাহরণেও পাওয়া যাবে:
প্রত্যাবর্তন:
def bigger(a, b):
if a > b:
return a
elif a <b:
return b
else:
return a
উপরের কোডটি সমস্ত ইনপুটগুলির জন্য সঠিক ফলাফল দেবে।
ছাপা:
def bigger(a, b):
if a > b:
print a
elif a <b:
print b
else:
print a
দ্রষ্টব্য: এটি অনেক পরীক্ষার ক্ষেত্রে ব্যর্থ হবে।
ত্রুটি:
----
FAILURE
: Test case input: 3, 8.
Expected result: 8
FAILURE
: Test case input: 4, 3.
Expected result: 4
FAILURE
: Test case input: 3, 3.
Expected result: 3
You passed 0 out of 3 test cases
আমি মনে করি একটি সহজ উত্তর এখানে দরকারী হতে পারে:
return
কলকারী দ্বারা ব্যবহারের জন্য মান (একটি পরিবর্তনশীল, প্রায়শই) উপলভ্য করে তোলে (উদাহরণস্বরূপ, ফাংশনটি যে ফাংশনটির মধ্যে রয়েছে তা দ্বারা সংরক্ষণ করা যেতে পারে return
)। ছাড়া return
, আপনার মান বা পরিবর্তনশীল কল / পুনরায় ব্যবহারের জন্য কলারের পক্ষে উপলব্ধ হবে না।
print
স্ক্রিনে মুদ্রণ করে, তবে কলার দ্বারা ব্যবহারের জন্য মান বা পরিবর্তনশীল উপলব্ধ করে না।
(পুরোপুরি স্বীকার করা যে আরও বিশদ উত্তর আরও নির্ভুল।)
এখানে আমার বোঝাপড়া। (আশা করি এটি কাউকে সহায়তা করবে এবং এটি সঠিক)।
def count_number_of(x):
count = 0
for item in x:
if item == "what_you_look_for":
count = count + 1
return count
সুতরাং কোডের এই সাধারণ টুকরোটি কোনও কিছুর সংখ্যার সংখ্যাকে গণনা করে। প্রত্যাবর্তনের স্থানটি উল্লেখযোগ্য is এটি আপনার প্রোগ্রামটি জানায় যে আপনার মূল্যটি কোথায় দরকার। সুতরাং আপনি যখন মুদ্রণ করবেন, আপনি স্ক্রিনে আউটপুট প্রেরণ। আপনি ফিরে যখন আপনি কোথাও যেতে মান বলতে। এই ক্ষেত্রে আপনি দেখতে পারেন যে গণনা = 0টি রিটার্নের সাথে ইন্ডেন্টেড হয় - আমরা মানটি (গণনা + 1) 0 প্রতিস্থাপন করতে চাই আপনি যদি রিটার্ন কমান্ড ইনডেন্ট করার পরে কোডটির লজিক অনুসরণ করার চেষ্টা করেন তবে আউটপুট সর্বদা 1 হবে , কারণ আমরা কখনই প্রাথমিক গণনাটি পরিবর্তন করতে বলি না। আমি আশা করি আমি এটা ঠিক পেয়েছি। ওহ, এবং ফিরে আসা সবসময় কোনও ফাংশনের অভ্যন্তরে থাকে।
return
ফাংশন সম্পর্কে সর্বোত্তম জিনিস হ'ল আপনি ফাংশন থেকে কোনও মান ফিরিয়ে দিতে পারেন তবে আপনি print
পার্থক্যটি কি তাই করতে পারেন ? মূলত return
এটি ফিরিয়ে দেওয়ার বিষয়ে নয়, এটি অবজেক্ট ফর্মের আউটপুট দেয় যাতে আমরা সেই রিটার্নের মানটি কোনও চলক থেকে ফাংশন থেকে সংরক্ষণ করতে পারি তবে আমরা এটি করতে পারি না print
কারণ এটির মতো stdout/cout
এটি C Programming
।
আরও ভাল বোঝার জন্য নীচের কোড অনুসরণ করুন
def add(a, b):
print "ADDING %d + %d" % (a, b)
return a + b
def subtract(a, b):
print "SUBTRACTING %d - %d" % (a, b)
return a - b
def multiply(a, b):
print "MULTIPLYING %d * %d" % (a, b)
return a * b
def divide(a, b):
print "DIVIDING %d / %d" % (a, b)
return a / b
print "Let's do some math with just functions!"
age = add(30, 5)
height = subtract(78, 4)
weight = multiply(90, 2)
iq = divide(100, 2)
print "Age: %d, Height: %d, Weight: %d, IQ: %d" % (age, height, weight, iq)
# A puzzle for the extra credit, type it in anyway.
print "Here is a puzzle."
what = add(age, subtract(height, multiply(weight, divide(iq, 2))))
print "That becomes: ", what, "Can you do it by hand?"
আমরা এখন জন্য আমাদের নিজস্ব ম্যাথ ফাংশন করছেন add, subtract, multiply,
এবং divide
। গুরুত্বপূর্ণ বিষয়টি লক্ষ্য করার জন্য হ'ল সর্বশেষ লাইনটি যেখানে আমরা বলি ফিরে a + b
(ইন add
)। এটি যা করে তা নিম্নলিখিত:
a
এবং b
।a + b
। আপনি যত, এই বলতে পারে "আমি যোগ a
এবং b
তারপর তাদের ফিরে।"a + b
পরিবর্তনটিকে একটি ভেরিয়েবলের জন্য নির্ধারণ করতে সক্ষম হবে ।return
পুনরাবিপন্ন ফাংশন / পদ্ধতিগুলির জন্য ব্যবহার করা উচিত বা আপনি আপনার অ্যালগরিদমে পরবর্তী অ্যাপ্লিকেশনগুলির জন্য ফিরে আসা মানটি ব্যবহার করতে চান।
print
আপনি যখন ব্যবহারকারীর কাছে একটি অর্থবহ এবং পছন্দসই আউটপুট প্রদর্শন করতে চান তখন ব্যবহার করা উচিত এবং আপনি মধ্যবর্তী ফলাফলের সাথে পর্দা বিশৃঙ্খলা করতে চান না যা ব্যবহারকারী আগ্রহী নয়, যদিও তারা আপনার কোডটি ডিবাগ করার জন্য সহায়ক।
নিম্নলিখিত কোডটি কীভাবে ব্যবহার করতে হবে return
এবং print
সঠিকভাবে দেখায় :
def fact(x):
if x < 2:
return 1
return x * fact(x - 1)
print(fact(5))
এই ব্যাখ্যাটি কেবল অজগর নয়, সমস্ত প্রোগ্রামিং ভাষার জন্য সত্য ।