पायथन में% का परिणाम क्या है?


241

%गणना में क्या है ? मुझे लगता है कि यह क्या करता है काम नहीं कर सकता।

क्या यह उदाहरण के लिए गणना का एक प्रतिशत बाहर काम करता है: 4 % 2जाहिरा तौर पर 0. कैसे के बराबर है?

जवाबों:


304

% (Modulo) ऑपरेटर दूसरे तर्क द्वारा पहले तर्क के विभाजन से शेषफल प्राप्त करता है। संख्यात्मक तर्कों को पहले एक सामान्य प्रकार में परिवर्तित किया जाता है। एक शून्य सही तर्क ZeroDivisionError अपवाद को जन्म देता है। तर्क फ़्लोटिंग पॉइंट संख्या हो सकते हैं, उदाहरण के लिए, 3.14% 0.7 बराबर 0.34 (क्योंकि 3.14 बराबर 4 * + + 0.34।) मॉडुलो ऑपरेटर हमेशा अपने दूसरे ऑपरेंड (या शून्य) के समान चिह्न के साथ परिणाम देता है; परिणाम का निरपेक्ष मूल्य दूसरे ऑपरेंड [2] के निरपेक्ष मूल्य से कड़ाई से छोटा है।

Http://docs.python.org/reference/expressions.html से लिया गया

उदाहरण 1: 6%2 मूल्यांकन करता है 0क्योंकि 6 से 2 (3 बार) विभाजित होने पर कोई शेष नहीं रहता है।

उदाहरण 2 : 7%2मूल्यांकन करता है 1क्योंकि 17 के 2 (3 बार) से विभाजित होने पर शेष है ।

तो यह संक्षेप करने के लिए कि, यह एक विभाजन ऑपरेशन के शेष, या 0यदि कोई शेष नहीं है, तो वापस कर देता है । तो 6%2इसका मतलब है 6 के शेष को 2 से विभाजित करें।


7
सभी उदाहरणों के दाईं ओर एक बड़ी संख्या क्यों है? क्या कोई 2% 6 के परिणाम की व्याख्या कर सकता है जो 2 उपज देता है?
वूकी

8
पहला नंबर अंश है और दूसरा भाजक है। आपके उदाहरण में 6 से विभाजित 2 0 शेष 2 है, इसलिए परिणाम 2 है
डेविड

4
कृपया अपना उत्तर अपडेट करें, नीचे अधिक सटीक उत्तर दिए गए हैं। में C / C ++ % 'रेम' जबकि अजगर में% 'आधुनिक' के लिए है। उदाहरण - 21 % 43 पायथन में है।
आजम

क्या आप कृपया बता सकते हैं कि क्यों -11%5 = 4??
दहिया_बोट १iya

@dahiya_boy मैंने GvR के स्पष्टीकरण को मेरे कम उत्कीर्ण उत्तर के साथ जोड़ा है।
पालो स्कार्डिन

143

कुछ हद तक विषय है, %यह स्ट्रिंग स्वरूपण जैसे %=स्ट्रिंग में स्थानापन्न संचालन के लिए भी उपयोग किया जाता है :

>>> x = 'abc_%(key)s_'
>>> x %= {'key':'value'}
>>> x 
'abc_value_'

फिर से, विषय से दूर, लेकिन यह एक छोटी सी प्रलेखित विशेषता प्रतीत होती है जिसने मुझे ट्रैक करने में थोड़ी देर लगाई, और मुझे लगा कि यह पायथन मॉडुलो गणना से संबंधित है जिसके लिए यह एसओ पृष्ठ अत्यधिक रैंक करता है।


क्या% का तर्क भी स्ट्रिंग प्रारूपण संदर्भ के रूप में इस्तेमाल किया जा रहा है या यह इतिहास का सिर्फ एक दुर्घटना है कि प्रतीक ओवरलोड था? क्या यह अपना प्रश्न होना चाहिए?
WAF

5
बेचारा प्रलेखित? मुझे ऐसा नहीं लगता: स्ट्रिंग फॉर्मेटिंग ऑपरेशंस
कुरजामेटल

@KurzedMetal - %=उस पृष्ठ पर नहीं दिखाई देता है
पी। मायर नोर

@WAF %ऑपरेटर को चुना गया क्योंकि यह स्ट्रिंग के भीतर उपयोग किए जाने वाले प्रतिशत-विनिर्देशक को प्रतिबिंबित करता है।
एमआई राइट

@ P.MyerNore मुझे पता है कि यह लगभग 3 साल बाद है, लेकिन दूसरों की मदद कर सकता है। पहले हाइलाइट किए गए पैरा को सेकंड में पढ़ें। 5.6.2 KurzedMetal द्वारा ऊपर जुड़ा हुआ है। "X% = {}" केवल "x = x% {...}" के लिए एक संक्षिप्त रूप है
सुजय फड़के

58

एक अभिव्यक्ति जैसे x % yशेष के लिए मूल्यांकन करता है x ÷ y- ठीक है, तकनीकी रूप से यह "अनुस्मारक" के बजाय "मापांक" है, इसलिए परिणाम भिन्न हो सकते हैं यदि आप अन्य भाषाओं के साथ तुलना कर रहे हैं जहां %शेष ऑपरेटर है। कुछ सूक्ष्म अंतर हैं (यदि आप व्यावहारिक परिणामों में रुचि रखते हैं, तो यह भी देखें कि "पायथन के इंटीजर डिवीजन फ़्लोर" बेली क्यों हैं)।

प्रीपरेंस ऑपरेटरों /(डिवीजन) और *(गुणा) के समान है।

>>> 9 / 2
4
>>> 9 % 2
1
  • 9 को 2 से विभाजित 4 के बराबर है।
  • 4 गुना 2 8 है
  • 9 माइनस 8 1 है - शेष।

पायथन गेटचा : आपके द्वारा उपयोग किए जा रहे पायथन संस्करण पर निर्भर करता है, %यह (पदावनत) स्ट्रिंग प्रक्षेप ऑपरेटर भी है, इसलिए यह देखें कि क्या आप स्वचालित प्रकार की कास्टिंग (जैसे PHP या JS) के साथ एक भाषा से आ रहे हैं जहां एक अभिव्यक्ति '12' % 2 + 3कानूनी है: अजगर यह परिणाम है TypeError: not all arguments converted during string formattingजिसमें शायद आप के लिए बहुत भ्रमित हो जाएगा।

[पायथन 3 के लिए अपडेट करें]

उपयोगकर्ता n00p टिप्पणियाँ:

9/2 अजगर में 4.5 है। आपको पूर्णांक विभाजन करना है जैसे: 9 // 2 यदि आप चाहते हैं कि अजगर आपको बताए कि विभाजन के बाद कितनी पूरी वस्तुएं बची हैं (4)।

सटीक होने के लिए, पूर्णांक विभाजन का उपयोग पायथन 2 में डिफ़ॉल्ट रूप से किया जाता था (आप पर ध्यान दें, यह उत्तर मेरे लड़के की तुलना में पुराना है जो पहले से ही स्कूल में है और उस समय 2.x मुख्यधारा में थे):

$ python2.7
Python 2.7.10 (default, Oct  6 2017, 22:29:07)
[GCC 4.2.1 Compatible Apple LLVM 9.0.0 (clang-900.0.31)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 9 / 2
4
>>> 9 // 2
4
>>> 9 % 2
1

वास्तव में आधुनिक पायथन 9 / 2परिणाम 4.5में:

$ python3.6
Python 3.6.1 (default, Apr 27 2017, 00:15:59)
[GCC 4.2.1 Compatible Apple LLVM 8.1.0 (clang-802.0.42)] on darwin
Type "help", "copyright", "credits" or "license" for more information.
>>> 9 / 2
4.5
>>> 9 // 2
4
>>> 9 % 2
1

[अपडेट करें]

उपयोगकर्ता dahiya_boy ने टिप्पणी सत्र में पूछा:

Q. क्या आप समझा सकते हैं कि क्यों -11 % 5 = 4- दहिया_बॉय

यह अजीब है, है ना? यदि आप इसे जावास्क्रिप्ट में आज़माते हैं:

> -11 % 5
-1

इसका कारण यह है कि जावास्क्रिप्ट %में "शेष" ऑपरेटर है जबकि पायथन में यह "मापांक" (क्लॉक गणित) ऑपरेटर है।

आप सीधे जीवीआर से स्पष्टीकरण प्राप्त कर सकते हैं :


संपादित करें - dahiya_boy

जावा और आईओएस में -11 % 5 = -1जबकि अजगर और माणिक में -11 % 5 = 4

अच्छी तरह से आधा कारण पाउलो स्कर्डाइन द्वारा समझाया गया है , और बाकी स्पष्टीकरण यहां नीचे है

जावा और iOS में, %कि साधन आप को विभाजित करता है, तो शेष देता है 11% 5 देता है Quotient = 2 and remainder = 1और -11% 5 देता है Quotient = -2 and remainder = -1

स्विफ्ट आईओएस में नमूना कोड।

यहां छवि विवरण दर्ज करें

लेकिन जब हम अजगर के बारे में बात करते हैं तो यह घड़ी का मापांक देता है। और नीचे सूत्र के साथ इसका काम

mod(a,n) = a - {n * Floor(a/n)}

इसका मतलब है,

mod(11,5) = 11 - {5 * Floor(11/5)} => 11 - {5 * 2}

इसलिए, mod(11,5) = 1

तथा

mod(-11,5) = -11 - 5 * Floor(11/5) => -11 - {5 * (-3)}

इसलिए, mod(-11,5) = 4

पायथन 3.0 में नमूना कोड।

यहां छवि विवरण दर्ज करें


क्यों पायथन का इंटेगर डिवीजन फ्लोर

मुझे आज (फिर से) यह बताने के लिए कहा गया था कि पायथन में पूर्णांक विभाजन शून्य सी के बजाय ट्रंकिंग के बजाय परिणाम का फर्श क्यों लौटाता है।

सकारात्मक संख्याओं के लिए, कोई आश्चर्य की बात नहीं है:

>>> 5//2
2

लेकिन अगर किसी एक ऑपरेंड नकारात्मक होता है, तो परिणाम शून्य हो जाता है, अर्थात शून्य से दूर (नकारात्मक अनंत की ओर)

>>> -5//2
-3
>>> 5//-2
-3

यह कुछ लोगों को परेशान करता है, लेकिन एक अच्छा गणितीय कारण है। पूर्णांक विभाजन ऑपरेशन (//) और इसकी सिबलिंग, मोडुलो ऑपरेशन (%), एक साथ चलते हैं और एक अच्छे गणितीय संबंध को संतुष्ट करते हैं (सभी चर पूर्णांक हैं):

a/b = q with remainder r

ऐसा है कि

b*q + r = a and 0 <= r < b

(ए और बी मान रहे हैं = = 0)।

यदि आप चाहते हैं कि संबंध ऋणात्मक a (b को धनात्मक रखते हुए) का विस्तार करें, तो आपके पास दो विकल्प हैं: यदि आप q को शून्य की ओर काटते हैं, तो r ऋणात्मक हो जाएगा, जिससे कि अक्रियाशील 0 में बदल जाता है </ abs (r) <अन्यथा, आप ऋणात्मक अनंतता की ओर q मंजिल कर सकते हैं, और अपरिवर्तनीय रहता है 0 <= r <b। [अद्यतन: इस पैरा तय]

गणितीय संख्या सिद्धांत में, गणितज्ञ हमेशा बाद की पसंद को देखते हैं (उदाहरण के लिए विकिपीडिया )। पायथन के लिए, मैंने एक ही विकल्प बनाया क्योंकि मॉडुलो ऑपरेशन के कुछ दिलचस्प अनुप्रयोग हैं जहां एक का संकेत निर्बाध है। POSIX टाइमस्टैम्प (1970 की शुरुआत के बाद से सेकंड) लेने और दिन के समय में बदलने पर विचार करें। चूँकि एक दिन में 24 * 3600 = 86400 सेकंड होते हैं, यह गणना केवल% 86400 है। लेकिन अगर हम 1970 से पहले के समय को नकारात्मक संख्याओं का उपयोग करते हुए व्यक्त करते हैं, तो "शून्य की ओर छंटनी" नियम एक व्यर्थ परिणाम देगा! फर्श नियम का उपयोग करना यह सब ठीक काम करता है।

अन्य अनुप्रयोगों के बारे में मैंने सोचा है कि कंप्यूटर ग्राफिक्स में पिक्सेल पदों की गणना है। मुझे पूरा भरोसा है कि वहां और अधिक चीजे हैं।

नकारात्मक बी के लिए, वैसे, सब कुछ बस फ़्लिप हो जाता है, और आक्रमणकारी बन जाता है:

0 >= r > b.

तो सी इस तरह से क्यों नहीं करता है? संभवतः C ने जिस समय डिज़ाइन किया था उस समय हार्डवेयर ने ऐसा नहीं किया था। और हार्डवेयर ने शायद इसे इस तरह से नहीं किया क्योंकि सबसे पुराने हार्डवेयर में, इन दिनों उपयोग किए गए दो पूरक प्रतिनिधित्व (कम से कम पूर्णांकों के लिए) के बजाय नकारात्मक संख्या को "साइन + परिमाण" के रूप में दर्शाया गया था। मेरा पहला कंप्यूटर एक कंट्रोल डाटा मेनफ्रेम था और इसने पूर्णांक के साथ-साथ फ्लोट के लिए भी पूरक का उपयोग किया। 60 लोगों के एक पैटर्न का मतलब नकारात्मक शून्य था!

टिम पीटर्स, जो जानते हैं कि सभी पायथन फ्लोटिंग पॉइंट कंकाल कहाँ दफ़न हैं, ने इन नियमों को फ़्लोटिंग पॉइंट मोडुलो तक विस्तारित करने की मेरी इच्छा के बारे में कुछ चिंता व्यक्त की है। वह शायद सही है; truncate- की ओर ऋणात्मक-अनन्तता नियम x% 1.0 के लिए सटीक नुकसान का कारण बन सकता है जब x एक बहुत छोटी ऋणात्मक संख्या है। लेकिन यह पूर्णांक मोड्यूलो को तोड़ने के लिए मेरे लिए पर्याप्त नहीं है, और // इसे कसकर युग्मित किया गया है।

पुनश्च। ध्यान दें कि मैं / के बजाय // का उपयोग कर रहा हूं - यह पायथन 3 सिंटैक्स है, और यह भी कि आप पूर्णांक विभाजन का आह्वान कर रहे हैं, इस पर जोर देने के लिए पायथन 2 में अनुमति दी गई है। पायथन 2 में / ऑपरेटर अस्पष्ट है, क्योंकि यह इंट और फ्लोट या दो फ्लोट की तुलना में दो पूर्णांक ऑपरेंड के लिए एक अलग परिणाम देता है। लेकिन यह बिलकुल अलग कहानी है; PEP 238 देखें।

Guido van Rossum द्वारा सुबह 9:49 बजे पोस्ट किया गया


1
इसके अलावा, help(divmod)दस्तावेज में अपरिवर्तनीय q, r = divmod(x y) <==> q*y + r == x
18

49

मापांक एक गणितीय ऑपरेशन है, जिसे कभी-कभी "घड़ी अंकगणित" के रूप में वर्णित किया जाता है। मुझे लगता है कि इसे केवल एक शेष के रूप में वर्णन करना भ्रामक और भ्रमित करने वाला है क्योंकि यह वास्तविक कारण है कि यह कंप्यूटर विज्ञान में बहुत अधिक उपयोग किया जाता है। यह वास्तव में चक्र के चारों ओर लपेटने के लिए उपयोग किया जाता है।

एक घड़ी के बारे में सोचो: मान लीजिए कि आप "सैन्य" समय में एक घड़ी को देखते हैं, जहां समय की सीमा 0:00 - 23.59 से जाती है। अब अगर आप हर दिन आधी रात को कुछ करना चाहते हैं, तो आप चाहते हैं कि मौजूदा समय मॉड 24 शून्य हो:

यदि (घंटा% 24 == 0):

आप इतिहास के सभी घंटों के बारे में 24 घंटे और अधिक से अधिक चक्र के चारों ओर लपेटने के बारे में सोच सकते हैं और दिन का वर्तमान समय है कि असीम रूप से लंबी संख्या मॉड 24। यह सिर्फ एक शेष की तुलना में बहुत अधिक गहरा अवधारणा है, यह एक गणितीय तरीका है साइकिल से निपटने के लिए और यह कंप्यूटर विज्ञान में बहुत महत्वपूर्ण है। इसका उपयोग सरणियों के चारों ओर लपेटने के लिए भी किया जाता है, जिससे आप सूचकांक को बढ़ा सकते हैं और सरणी के अंत तक पहुंचने के बाद मापांक का उपयोग करके शुरुआत में वापस लपेट सकते हैं।


1
इस तरह इसे पायथन में लागू किया गया है:a % b = a - b * floor(a/b)
ऐमन अल-अरियानी


7

अधिकांश भाषाओं में% का उपयोग मापांक के लिए किया जाता है । अजगर कोई अपवाद नहीं है।


11
जहाँ तक मैं देख सकता हूँ, पायथन असामान्य है कि यह मापांक के लिए% का उपयोग करता है; फोरट्रान, C / C ++, और जावा का उपयोग शेष रहने के लिए% है। (देखें stackoverflow.com/questions/13683563/… , अंतर इस बात के हैं कि नकारात्मक और भिन्नात्मक मूल्यों को कैसे संभाला जाता है।) वे भाषाएँ जो भेद बनाती हैं (जैसे Ada, Haskell, और स्कीम) "रेम" और "मॉड" शब्दों का उपयोग करें (या "शेष" और "मोडुलो")% के बजाय।
जिम पिवार्स्की

5
अपडेट: मुझे भाषा en.wikipedia.org/wiki/Modulo.operation द्वारा मॉडुलो / शेष संचालन की यह महान तालिका मिली । पायथन असामान्य है, लेकिन अद्वितीय नहीं है (उदाहरण के लिए, बंधन और लुआ पायथन के सम्मेलन को साझा करते हैं।)
जिम पिवार्स्की

5

% Modulo ऑपरेटर का उपयोग स्ट्रिंग्स को प्रिंट करने के लिए भी किया जा सकता है (जैसे C में) Google https://developers.google.com/edu/python/strings पर परिभाषित किया गया है ।

      # % operator
  text = "%d little pigs come out or I'll %s and %s and %s" % (3, 'huff', 'puff', 'blow down')

यह विषय से हटकर लगता है लेकिन यह निश्चित रूप से किसी की मदद करेगा।


4

x % yभाग के शेष भाग की गणना करता xहै yजहाँ भागफल एक पूर्णांक होता है । शेष पर हस्ताक्षर है y


पायथन 3 पर गणना की पैदावार 6.75; इसका कारण यह है कि /एक सच्चा विभाजन करता है, अजगर पर पूर्णांक विभाजन नहीं (जैसे डिफ़ॉल्ट रूप से) 2. पायथन 2 पर 1 / 40 देता है, क्योंकि परिणाम गोल है।

पूर्णांक 3 को //संचालक के साथ भी किया जा सकता है , इस प्रकार संचालक के रूप में 7 प्राप्त करने के लिए, आप निष्पादित कर सकते हैं:

3 + 2 + 1 - 5 + 4 % 2 - 1 // 4 + 6

इसके अलावा, आप केवल पंक्ति जोड़कर, पायथन 2 पर पायथन शैली विभाजन प्राप्त कर सकते हैं

from __future__ import division

प्रत्येक स्रोत फ़ाइल में पहली स्रोत कोड लाइन के रूप में।


8
याद रखें कि बच्चे #टिप्पणियों के लिए हैं और //एक ऑपरेटर हैं।
माइक कॉसर

3

मॉड्यूलस ऑपरेटर, इसका उपयोग पूर्णांक पर शेष विभाजन के लिए किया जाता है, आमतौर पर, लेकिन पायथन में फ्लोटिंग पॉइंट संख्याओं के लिए उपयोग किया जा सकता है।

http://docs.python.org/reference/expressions.html

% (Modulo) ऑपरेटर दूसरे तर्क द्वारा पहले तर्क के विभाजन से शेषफल प्राप्त करता है। संख्यात्मक तर्कों को पहले एक सामान्य प्रकार में परिवर्तित किया जाता है। एक शून्य सही तर्क ZeroDivisionError अपवाद को जन्म देता है। तर्क फ़्लोटिंग पॉइंट संख्या हो सकते हैं, उदाहरण के लिए, 3.14% 0.7 बराबर 0.34 (क्योंकि 3.14 बराबर 4 * + + 0.34।) मॉडुलो ऑपरेटर हमेशा अपने दूसरे ऑपरेंड (या शून्य) के समान चिह्न के साथ परिणाम देता है; परिणाम का निरपेक्ष मूल्य दूसरे ऑपरेंड [2] के निरपेक्ष मूल्य से कड़ाई से छोटा है।


3

यह एक मोडुलो ऑपरेशन है, सिवाय इसके कि यह पुराने जमाने की सी-स्टाइल स्ट्रिंग फॉर्मेटिंग ऑपरेटर है, न कि मोडुलो ऑपरेशन । देखें यहाँ जानकारी के लिए। आपको मौजूदा कोड में यह बहुत कुछ दिखाई देगा।


3

इसके अलावा, एक उपयोगी अंतर्निहित कार्य है divmod:

Divmod (ए, बी)

दो (गैर जटिल) संख्याओं को तर्क के रूप में लें और लंबे भाग का उपयोग करते समय संख्याओं की एक जोड़ी को उनके भागफल और शेष से मिलकर लौटाएं।


2

विदित हो कि

(3 +2 + 1 - 5) + (4 % 2) - (1/4) + 6

भले ही पायथन 3.4 में गणना की गई हो, 7 के बजाय 6.75 में कोष्ठक परिणाम।


और '/' ऑपरेटर को समझना आसान नहीं है, भी (python2.7): कोशिश करो ...

- 1/4

1 - 1/4

यह यहाँ थोड़ा सा विषय है, लेकिन उपरोक्त अभिव्यक्ति का मूल्यांकन करते समय विचार किया जाना चाहिए :)


2
यह कभी 7 कैसे होगा? यह सरल करता है (1)+(0)-(0.25)+(6)
जे।

1

% ऑनलाइन के उपयोग के लिए विशिष्ट उपयोग के मामलों को आसानी से खोजना मेरे लिए कठिन था, जैसे कि आंशिक मापांक विभाजन या नकारात्मक मापांक विभाजन क्यों करता है इसका उत्तर उस परिणाम में मिलता है। आशा है कि यह इस तरह से सवालों को स्पष्ट करने में मदद करता है:

मापांक विभाग सामान्य में:

मापांक विभाग एक गणितीय विभाजन ऑपरेशन के शेष को लौटाता है। यह इस प्रकार है:

मान लें कि हमारे पास 5 का लाभांश है और 2 का विभाजक है, निम्न विभाजन ऑपरेशन होगा (x के बराबर):

dividend = 5
divisor = 2

x = 5/2 
  1. मापांक गणना का पहला चरण पूर्णांक विभाजन का संचालन करना है:

    x_int = 5 // 2 (अजगर में पूर्णांक विभाजन दोहरे स्लैश का उपयोग करता है)

    x_int = 2

  2. अगला, x_int का आउटपुट भाजक द्वारा गुणा किया जाता है:

    x_mult = x_int * भाजक x_mult = 4

  3. अंत में, लाभांश x_mult से घटाया जाता है

    लाभांश - x_mult = 1

  4. इसलिए, मापांक ऑपरेशन 1 लौटाता है:

    5% 2 = 1

एक अंश में मापांक लागू करने के लिए आवेदन

Example: 2 % 5 

एक अंश पर लागू होने पर मापांक की गणना ऊपर के समान होती है; हालाँकि, यह नोट करना महत्वपूर्ण है कि पूर्णांक विभाजन शून्य के मान में होगा जब विभाजक लाभांश से बड़ा होगा:

dividend = 2 
divisor = 5

पूर्णांक विभाजन परिणाम 0 में जबकि; इसलिए, जब चरण 3 ऊपर किया जाता है, तो लाभांश का मान शून्य से घटाया जाता है:

dividend - 0 = 2  —> 2 % 5 = 2 

एक नकारात्मक करने के लिए मापांक लागू करने के लिए आवेदन

फ्लोर डिवीजन होता है जिसमें पूर्णांक डिवीजन का मान सबसे कम पूर्णांक मान तक होता है:

import math 

x = -1.1
math.floor(-1.1) = -2 

y = 1.1
math.floor = 1

इसलिए, जब आप पूर्णांक विभाजन करते हैं, तो आप अपनी अपेक्षा से भिन्न परिणाम प्राप्त कर सकते हैं!

निम्नलिखित लाभांश और भाजक पर उपरोक्त चरणों को लागू करना मापांक अवधारणा को दर्शाता है:

dividend: -5 
divisor: 2 

चरण 1: पूर्णांक विभाजन लागू करें

x_int = -5 // 2  = -3

चरण 2: भाजक द्वारा पूर्णांक विभाजन का परिणाम गुणा करें

x_mult = x_int * 2 = -6

चरण 3: गुणा चर से लाभांश घटाएं, दोहरे नकारात्मक को नोटिस करें।

dividend - x_mult = -5 -(-6) = 1

इसलिए:

-5 % 2 = 1

0

% (Modulo) ऑपरेटर दूसरे तर्क द्वारा पहले तर्क के विभाजन से शेषफल प्राप्त करता है। संख्यात्मक तर्कों को पहले एक सामान्य प्रकार में परिवर्तित किया जाता है।

3 + 2 + 1 - 5 + 4% 2 - 1/4 + 6 = 7

यह ऑपरेटर पूर्वता पर आधारित है।


0

%है सापेक्ष3 % 2 = 1,4 % 2 = 0

/ है, (इस मामले में पूर्णांक) विभाजन, इसलिए:

3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6
1 + 4%2 - 1/4 + 6
1 + 0 - 0 + 6
7

0

यह एक मॉडुलो ऑपरेशन है http://en.wikipedia.org/wiki/Modulo_operation

http://docs.python.org/reference/expressions.html

तो संचालन के आदेश के साथ, यह काम करता है

(३ + २ + १-५) + (४% २) - (१/४) + ६

(१) + (०) - (०) + ६

7

1/4 = 0 क्योंकि हम यहाँ पूर्णांक गणित कर रहे हैं।



0

मापांक - दाएं हाथ से बाएं हाथ के ऑपरेंड को बांटा जाता है और शेष बचता है।

यदि यह मदद करता है:

1:0> 2%6
=> 2
2:0> 8%6
=> 2
3:0> 2%6 == 8%6
=> true

... और इसी तरह।


0

मैंने पाया है कि मापांक ऑपरेटर (%) को समझने का सबसे आसान तरीका लंबे विभाजन के माध्यम से है। यह शेष है और एक संख्या निर्धारित करने में उपयोगी हो सकता है या विषम भी हो सकता है:

4%2 = 0

  2
2|4
 -4
  0


11%3 = 2

  3
3|11
 -9
  2

एक विभाजन के शेष भाग को ज्यादा नहीं लेना चाहिए
डेफाल्ट कोडर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.