বিভাগের জন্য যখন ব্যবহার করা হয় তখন '/' এবং '//' এর মধ্যে পার্থক্য কী?


473

একে অপরকে ব্যবহার করে কী লাভ? পাইথন 2-এ, তারা উভয়ই একই ফলাফল ফেরত দেবে বলে মনে হচ্ছে:

>>> 6/3
2
>>> 6//3
2

1
অপারেটরটিকে পূর্ণসংখ্যা বিভাগ করতে পরিচয় করানোর কারণ হিসাবে দয়া করে পূর্ণসংখ্যা বিভাগের সাথে সমস্যাটি দেখুন// ।
— শ্রীরাম

উত্তর:


649

পাইথন 3.x এ, 5 / 2ফিরে আসবে 2.5এবং 5 // 2ফিরে আসবে 2। পূর্ববর্তীটি হ'ল ভাসমান পয়েন্ট বিভাগ এবং দ্বিতীয়টি হ'ল মেঝে বিভাগ , কখনও কখনও এটি পূর্ণসংখ্যা বিভাগও বলে ।

পাইথন ২.২ বা তারপরে ২.x লাইনে, পূর্ণসংখ্যার জন্য কোনও পার্থক্য নেই যদি না আপনি একটি সম্পাদনা করেন from __future__ import division, যার ফলে পাইথন ২.x 3.x আচরণ অবলম্বন করে।

ভবিষ্যতের আমদানি নির্বিশেষে, 5.0 // 2ফিরে আসবে 2.0যেহেতু এটি অপারেশনের মেঝে বিভাগের ফলাফল।

আপনি https://docs.python.org/whatsnew/2.2.html#pep-238- পরিবর্তন- the- বিভাজন- অপারেটর এ একটি বিস্তারিত বিবরণ পেতে পারেন


সম্পাদিত: পাইথন ২.২ থেকে আপনি বিভাগ "ঠিক" করতে পারেন! (কেবল লিঙ্কযুক্ত পিইপি পড়ুন)
— u0b34a0f6ae

2
এছাড়াও python -Qnew। অন্যান্য বিভাগের বিকল্পগুলি: -Qold(ডিফল্ট) -Qwarn,,-Qwarnall
— জন লা রুই

2
ওয়ার্থ যে ইশারা 5.0 / 2আয় 2.5সব সংস্করণে, আছে যেমন 5 / 2.0- পুরাতন আচরণ শুধুমাত্র বিভিন্ন যখন উভয় operands হয় int।
— ক্রিস

2
সংখ্যাগুলি নেতিবাচক হলে কী হবে? আচরণটি কি নেতিবাচক পূর্ণসংখ্যার জন্য একই?
— অ্যারন ফ্র্যাঙ্ক

1
@ শ্রীনিবাসু আপনার উদাহরণটি সহায়ক নয়। আরও ভাল হবে 5 // 2 (যা 2 দেয়) এবং -5 // 2 (যা ফল দেয় -3)।
— মার্ভিন

67

পাইথন ২.২ স্পষ্টকরণ:

পাইথন ২.x রেখার জন্য স্পষ্ট করে বলা, /এটি তল বিভাগ বা সত্য বিভাগ নয়। বর্তমান গৃহীত উত্তরটি এ সম্পর্কে পরিষ্কার নয়।

/মেঝে বিভাজন যখন উভয় args হয় int, কিন্তু সত্য বিভাজন যখন পারেন অথবা উভয় args হয় float।

উপরেরটি আরও সত্য বলে, এবং গৃহীত উত্তরের ২ য় অনুচ্ছেদের চেয়ে আরও স্পষ্ট।


33

//আপনার ধরণের নির্বিশেষে "তল বিভাগ" প্রয়োগ করে। তাই 1.0/2.0দেব 0.5, তবে দুটো একসাথে 1/2, 1//2এবং 1.0//2.0দেব 0।

দেখুন https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator বিস্তারিত জানার জন্য


এটি একটি ভাল উত্তর। পিইপি লিঙ্কটি সহায়ক। এছাড়াও, ব্যবহার করার বিষয়ে বিবেচনা করুন math.floor()বা math.fmod()যদি আপনি নিশ্চিত না হন যে ইউনারি অপারেটরগুলির সাথে কী চলছে।
— স্কট লোরে

/এবং //দ্বি-নারি অপারেটরগুলি (দুটি অপারেশন, বাম এবং ডান, সংখ্যক এবং ডিনোমিনেটর)
— আয়নো

28

/ -> ভাসমান পয়েন্ট বিভাগ

// -> তল বিভাগ

পাইথন ২.7 এবং পাইথন ২.৩ উভয় ক্ষেত্রে কয়েকটি উদাহরণ দেখতে দিন।

পাইথন 2.7.10 বনাম পাইথন 3.5

print (2/3)  ----> 0                   Python 2.7
print (2/3)  ----> 0.6666666666666666  Python 3.5

পাইথন 2.7.10 বনাম পাইথন 3.5

  print (4/2)  ----> 2         Python 2.7
  print (4/2)  ----> 2.0       Python 3.5

এখন আপনি পাইথন ৩.৫ এর মতো (পাইথন ২.7 তে) একই আউটপুট পেতে চাইলে আপনি নিম্নলিখিতগুলি করতে পারেন:

পাইথন 2.7.10

from __future__ import division
print (2/3)  ----> 0.6666666666666666   #Python 2.7
print (4/2)  ----> 2.0                  #Python 2.7

যেখানে পাইথন ২.7 এবং পাইথন ৩.৫ উভয় ক্ষেত্রে তল বিভাগের মধ্যে কোনও পার্থক্য নেই

138.93//3 ---> 46.0        #Python 2.7
138.93//3 ---> 46.0        #Python 3.5
4//3      ---> 1           #Python 2.7
4//3      ---> 1           #Python 3.5

এটি কি ইন্টার (5/2) এর মতো?
— পাইরেট অ্যাপ

সংখ্যাগুলি নেতিবাচক হলে কী হবে? আচরণটি কি নেতিবাচক পূর্ণসংখ্যার জন্য একই?
— অ্যারন ফ্র্যাঙ্ক

1
লিখেছেন: ঋণাত্মক সম্মাননা - আচরণ, একই, কিন্তু তাই rounding সর্বদা মনে রাখবেন যে ফলাফলের মেঝে হয় নিচে প্রতি আরো নেতিবাচক । কয়েকটি উদাহরণ: -100 // 33=> -4 ; 100 // -33=> -4 ; তবে মেঝে ফানকের বৃত্তাকার দিকের কারণে, পরবর্তীটির তুলনায় পূর্বেরটি -100 // -33= : > 3 এর তুলনায় স্বতঃসিদ্ধ মনে হতে পারে ।
— এরদস-বেকন

22

সবাই ইতিমধ্যে উত্তর হিসাবে, //মেঝে বিভাগ।

কেন এটি গুরুত্বপূর্ণ তা //হ'ল পাইথন ৩.x সংস্করণ সহ ২.২ থেকে সমস্ত পাইথন সংস্করণে নির্বিঘ্নে মেঝে বিভাগ।

এর /উপর নির্ভর করে আচরণের পরিবর্তন হতে পারে:

  • সক্রিয় __future__আমদানি করুন বা না (মডিউল-স্থানীয়)
  • পাইথন কমান্ড লাইন বিকল্প, হয় -Q oldবা-Q new


5

পাইথন ২.7 এবং পাইথনের অন্যান্য আসন্ন সংস্করণ:

  • বিভাগ ( /)

ডান হাত অপারেন্ড দ্বারা বাম হাত অপারেন্ড ভাগ করে

উদাহরণ: 4 / 2 = 2

  • মেঝে বিভাগ ( //)

অপারেটরগুলির বিভাজন যেখানে ফলাফলটি ভাগফল যেখানে দশমিক বিন্দুর পরে অঙ্কগুলি সরানো হয়। তবে যদি কোনও অপারেশন নেতিবাচক হয় তবে ফলাফলটি মেঝেতে পরিণত হয়, অর্থাৎ শূন্য থেকে দূরে (নেতিবাচক অনন্তের দিকে):

উদাহরণ: 9//2 = 4এবং 9.0//2.0 = 4.0, -11//3 = -4,-11.0//3 = -4.0

/বিভাগ এবং //মেঝে বিভাগ উভয় অপারেটর একই ফ্যাশনে পরিচালনা করছে।


2
অনন্তের দিকে এবং শূন্য থেকে দূরে আলাদা জিনিস। (-1.2 এবং 3.4) এর উদাহরণ: "মেঝে" negativeণাত্মক অনন্ত (-2 এবং 3) এর দিকে, "কাটা" শূন্যের দিকে (-1 এবং 3), "স্যাচুরটিং" শূন্য থেকে দূরে (-2 এবং 4), এবং "সিলিং" ইতিবাচক অনন্তের দিকে (-1 এবং 4)।
— ফার্নোস্ট


3

//মেঝে বিভাগ, এটি আপনাকে সর্বদা ফলাফলের পূর্ণসংখ্যার তল দেবে। অন্যটি হ'ল 'নিয়মিত' বিভাগ।


2

সমীকরণের উত্তরটি পরবর্তী ছোট ছোট পূর্ণসংখ্যায় গোল হয় বা দশমিক বিন্দু হিসাবে .0 দিয়ে ভাসা করে।

>>>print 5//2
2
>>> print 5.0//2
2.0
>>>print 5//2.0
2.0
>>>print 5.0//2.0
2.0

2

উপরের উত্তরগুলি ভাল। আমি আরেকটি বিষয় যুক্ত করতে চাই কিছু মান পর্যন্ত উভয়ই একই ভাগফলের ফলাফল করে। এর পরে মেঝে বিভাগ অপারেটর ( //) সূক্ষ্ম কাজ করে তবে বিভাগ ( /) অপারেটর নয়।

 - > int(755349677599789174/2)
 - > 377674838799894592      #wrong answer
 - > 755349677599789174 //2
 - > 377674838799894587      #correct answer

-1

5.0//2ফলাফলগুলি প্রাপ্ত হয় 2.0, এবং না 2কারণ অপারেটর থেকে রিটার্ন মানের রিটার্ন টাইপ// পাইথন জবরদস্তি (টাইপ কাস্টিং) বিধি অনুসরণ করে।

পাইথন ডেটা ক্ষতি এড়াতে নিম্ন ডেটাটাইপ (পূর্ণসংখ্যা) উচ্চতর ডেটা টাইপ (ফ্লোট) এ রূপান্তরকে উত্সাহ দেয়।


-1
  • // এটি মেঝে বিভাগ, এটি সর্বদা আপনাকে ফলাফলের তল মান দেয়।
  • এবং অন্যটি /হ'ল ভাসমান-বিন্দু বিভাগ।

অনুসরণগুলি হ'ল /এবং এর মধ্যে পার্থক্য //; আমি পাইথনে এই পাটিগণিত অপারেশনগুলি পরিচালনা করেছি 3.7.2

>>> print (11 / 3)
3.6666666666666665

>>> print (11 // 3)
3

>>> print (11.3 / 3)
3.7666666666666667

>>> print (11.3 // 3)
3.0

2
এই উত্তরটি কীভাবে এমন কিছু যুক্ত করবে যা অন্যান্য ধারণাগুলি অন্তর্ভুক্ত নয়? বা এই উত্তরটি অন্য উত্তরগুলির চেয়ে কোনওভাবে কীভাবে ভাল?
— ররি দাউলটন

2
নিম্নলিখিত একটি প্রোগ্রাম আউটপুট। এটি কিছুই ব্যাখ্যা করে।
— লার্নের মারকুইস
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.