जवाबों:
पायथन 3.x में, 5 / 2
वापस आ जाएगा 2.5
और 5 // 2
वापस आ जाएगा 2
। पूर्व फ्लोटिंग पॉइंट डिवीजन है, और बाद वाला फ़्लोर डिवीज़न है , जिसे कभी-कभी पूर्णांक विभाजन भी कहा जाता है ।
पायथन 2.2 में या बाद में 2.x लाइन में, पूर्णांक के लिए कोई अंतर नहीं है जब तक कि आप एक प्रदर्शन नहीं करते हैं from __future__ import division
, जो 3.x व्यवहार को अपनाने के लिए पायथन 2.x का कारण बनता है।
भविष्य के आयात के बावजूद, ऑपरेशन के फर्श विभाजन परिणाम के बाद से 5.0 // 2
वापस आ जाएगा 2.0
।
आप विस्तृत विवरण https://docs.python.org/whatsnew/2.2.html#pep-238-changing-the-division-operator पर पा सकते हैं
python -Qnew
। अन्य विभाजन विकल्प: -Qold
(डिफ़ॉल्ट) -Qwarn
,-Qwarnall
5.0 / 2
रिटर्न की ओर इशारा करते हुए 2.5
, जैसा कि करता है 5 / 2.0
- पुराने व्यवहार केवल भिन्न होते हैं जब दोनों ऑपरेंड होते हैं int
।
पायथन 2.x लाइन के लिए स्पष्ट करने के लिए, /
न तो फर्श विभाजन है और न ही सच विभाजन है। इस पर वर्तमान स्वीकृत उत्तर स्पष्ट नहीं है।
/
फर्श विभाजन तब होता है जब दोनों आर्ग होते हैं int
, लेकिन यह सही विभाजन है जब या तो दोनों आर्ग होते हैंfloat
।
उपरोक्त अधिक सत्य बताता है, और स्वीकृत उत्तर में दूसरे पैराग्राफ से अधिक स्पष्ट है।
//
आपके प्रकार की परवाह किए बिना "फर्श विभाजन" को लागू करता है। तो
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()
यदि आप यह सुनिश्चित नहीं कर रहे हैं कि यूनिरी ऑपरेटरों के साथ क्या हो रहा है।
/
और //
बाय-नैरी ऑपरेटर (दो ऑपरेंड, बाएं और दाएं, अंश और हर)
/ -> फ्लोटिंग पॉइंट डिवीजन
// -> मंजिल विभाजन
कुछ उदाहरणों को अजगर 2.7 और पायथन 3.5 दोनों में देखें।
पायथन 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
अब यदि आप अजगर 3.5 में समान आउटपुट (अजगर 2.7) में चाहते हैं, तो आप निम्न कार्य कर सकते हैं:
पायथन 2.7.10
from __future__ import division
print (2/3) ----> 0.6666666666666666 #Python 2.7
print (4/2) ----> 2.0 #Python 2.7
जहां दोनों पायथन 2.7 और पायथन 3.5 में फ्लोर डिवीजन के बीच कोई अंतर नहीं है
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
-100 // 33
100 // -33
-100 // -33
जैसा कि सभी ने पहले ही उत्तर दिया है, //
मंजिल विभाजन है।
यह महत्वपूर्ण क्यों है कि //
2.2 से सभी पायथन संस्करणों में, unthiguously फर्श विभाजन है, जिसमें पायथन 3.x संस्करण शामिल हैं।
के /
आधार पर बदल सकता है का व्यवहार :
__future__
आयात या नहीं (मॉड्यूल-स्थानीय)-Q old
या-Q new
>>> print 5.0 / 2
2.5
>>> print 5.0 // 2
2.0
अजगर 2.7 और अजगर के अन्य आगामी संस्करण:
/
)दाएं हाथ के ऑपरेंड से बाएं हाथ का ऑपरेशन
उदाहरण: 4 / 2 = 2
//
)परिचालनों का वह भाग जहाँ परिणाम वह भागफल होता है जिसमें दशमलव बिंदु के बाद के अंक हटा दिए जाते हैं। लेकिन यदि किसी एक ऑपरेंड नकारात्मक है, तो परिणाम शून्य हो जाता है, अर्थात शून्य से दूर (नकारात्मक अनंत की ओर):
उदाहरण: 9//2 = 4
और 9.0//2.0 = 4.0
, -11//3 = -4
,-11.0//3 = -4.0
/
डिवीजन और //
फ्लोर डिवीजन ऑपरेटर दोनों समान फैशन में काम कर रहे हैं।
डबल स्लैश, //
फर्श विभाजन है:
>>> 7//3
2
//
मंजिल विभाजन है, यह आपको हमेशा परिणाम के पूर्णांक मंजिल देगा। अन्य 'नियमित' विभाजन है।
उपरोक्त उत्तर अच्छे हैं। मैं एक और बिंदु जोड़ना चाहता हूं। कुछ मूल्यों तक दोनों का परिणाम एक ही भागफल में होता है। उसके बाद फ्लोर डिवीजन ऑपरेटर ( //
) ठीक काम करता है लेकिन डिवीजन ( /
) ऑपरेटर नहीं।
- > int(755349677599789174/2)
- > 377674838799894592 #wrong answer
- > 755349677599789174 //2
- > 377674838799894587 #correct answer
5.0//2
में परिणाम 2.0
, और नहीं 2
क्योंकि वापसी के प्रकार वापसी से मान//
ऑपरेटर अजगर बलात्कार (प्रकार कास्टिंग) नियमों का पालन करती।
पायथन डेटा के नुकसान से बचने के लिए निचले डेटाटाइप (पूर्णांक) को उच्च डेटा प्रकार (फ्लोट) में बदलने को बढ़ावा देता है।
//
मंजिल विभाजन है, यह आपको हमेशा परिणाम का फर्श मूल्य देगा।/
फ्लोटिंग-पॉइंट डिवीजन है।अनुगमन के बीच अंतर है /
और //
; मैंने पायथन 3.7.2 में ये अंकगणितीय ऑपरेशन चलाए हैं
>>> print (11 / 3)
3.6666666666666665
>>> print (11 // 3)
3
>>> print (11.3 / 3)
3.7666666666666667
>>> print (11.3 // 3)
3.0
//
।