2011-01-18 9 views
5

में ऑपरेशन के आदेश जेड शॉ के Learn Python the Hard Way एक उदाहरण (पेज 15-16), वह है अभ्यास मेंModulo और अजगर

100 - 25 * 3 % 4 

परिणाम है 97 (यह कोशिश करो!)

मैं नहीं देख सकते हैं आपरेशन के आदेश है कि ऐसा कर सकता है ..

100 - 25 = 75
3% 4 = 0
या (100-25 * 3) = 225% 4 = ??? लेकिन किसी भी तरह नहीं 97 मुझे नहीं लगता कि ...

ऐसा ही एक उदाहरण 3 + 2 + 1 - 5 + 4 % 2 - 1/4 + 6 जो पैदावार 7

संचालन किस क्रम से किया जाता है में है?

+1

http://docs.python.org/reference/expressions.html#summary –

+1

आप गुणा और घटाव गलत भी हो गया है, वे उसी क्रम बुनियादी गणित में के रूप में इस्तेमाल करते हैं। –

+1

उन्होंने कहा कि विस्तार से बताया जाना चाहिए था। फिर मैं यह निष्कर्ष निकालने में दुखी हूं कि बेहतर पायथन ट्यूटोरियल हैं। " पाइथन में गोता लगाएँ "। –

उत्तर

22

पहले उदाहरण के लिए: * और %- अधिक महत्व दिया जाता है, तो हम पहले 25 * 3 % 4 मूल्यांकन करते हैं। * और % की समान प्राथमिकता और साझेदारी बाएं से दाएं है, इसलिए हम 25 * 3 से शुरू होने से बाएं से दाएं का मूल्यांकन करते हैं। यह 75 पैदा करता है। अब हम 75 % 4 का मूल्यांकन करते हैं, जो प्रदान करते हैं। अंत में, 100 - 397 है।

+0

इस सब के लिए धन्यवाद, आपका उत्तर और जो लोग अनुसरण करते हैं वे बहुत उपयोगी हैं, यहां तक ​​कि संदर्भ भी हैं, और मैंने वास्तव में यह स्पष्ट नहीं किया है, और पूरी मॉड्यूलो अवधारणा मेरे लिए थोड़ा सा विदेशी है .. मुझे लगता है कि मैं इसे प्राप्त करता हूं कभी भी उपयोग का मामला नहीं था। (मॉड्यूलो के लिए ..) – dartdog

+0

एक मानक दीवार घड़ी "मॉड्यूल 60" है क्योंकि एक बार जब आप 59 मिनट तक पहुंच जाते हैं, और 1 मिनट जोड़ते हैं, तो आपको 0 (== 60) –

+0

मिल गया था एक ही सवाल, धन्यवाद! – Drewdin

2

गुणा >> आधुनिक >> घटाव

In [3]: 25 * 3 
Out[3]: 75 

In [4]: 75 % 4 
Out[4]: 3 

In [5]: 100 - 3 
Out[5]: 97 

गुणा और सापेक्ष ऑपरेटर एक ही पूर्वता है, तो आप का मूल्यांकन इस उदाहरण के लिए बाएं से दाएं की है।

+0

यह केवल पहले दिखाई देने वाला प्रश्न नहीं है। उदाहरण के लिए '2 ** 3 ** 4 == 2 ** (3 ** 4)', क्योंकि '**' की साझेदारी छोड़ने का अधिकार है। –

+0

स्वेन की टिप्पणी के आधार पर इसे थोड़ा स्पष्ट बनाने के लिए संपादन। – chauncey

0

यहाँ यह कैसे जाता है:

'*' और '%' एक ही precendence है, तो उन से बाएं से दाएं मूल्यांकन करते हैं।

  1. 25 * 3 = 75
  2. 75% 4 = 3 (4 * 18 = 72, 3 शेष है)
  3. 100 - 3 = 97

Q.E.D.

+0

वही प्राथमिकता के साथ सबकुछ बाएं से दाएं तक मूल्यांकन नहीं किया जाता है - उदा। '2 ** 3 ** 4 == 2 ** (3 ** 4)' दाएं से बाएं से मूल्यांकन किया जाता है। –

0

मूल समस्या: 100 - 25 * 3 % 4

वास्तव में, 25 * 3 मूल्यांकन और 4 का 75% ले जा गलत है, और इस समस्या के लिए आसानी से बाहर काम करने के लिए हुआ।

क्या अजगर में% वास्तव में है एक मापांक ऑपरेटर जहां x% y x/y के शेष देता है। इस मामले में, क्या हुआ था कि 75/4 18 है, शेष 3 के साथ, यही कारण है कि 100 - 3 = 97

प्रतिशत गुणा करने की कोशिश मत करो, यह एक आम गलती है।

0

दूसरा exampe में,% * रूप में एक ही आदेश है तो हम मिल 3 + 2 + 1-5 4% 2-1/4 + 6 = 3 + 2 + 1-5 + (4% 2) - (1/4) + 6 = 1 + (4% 2) - (1/4) +6 = 1 + 0- (1/4) + 6 = 1- (1/4) + 6 = 0.75 + 6 = 6.75 और जब मैं इसे कंसोल पर आज़माता हूं तो यही वह कहता है, इसलिए आपने जो भी किया है, उसे आपने इसे करने के लिए कुछ किया होगा।

0

गणित मेरा मजबूत बिंदु नहीं है, इसलिए हाँ इस प्रश्न ने मुझे एक पल के लिए भी मिला। लेकिन आशा है कि आपको यह उपयोगी लगेगा।

75 4 से विभाजित 18,75

18 4 से गुणा 72

गणना दिया 100-25 * 3% 4 है 97 के एक जवाब के साथ अब (75 से शेष छोड़ने 3) है यह कैसे मैं इसे PEMDAS का उपयोग कर मिलेगा के रूप में वह प्रश्न अनुभाग में की बात करते हैं है:

#!/bin/python 

A = 100 
B = 25 
C = 3 
D = 4 
E = B*C# 75 
F = E%D # 3 
G = A-F # 97 
print("B * C ="), E 
print("E % D ="), F 
print("A - F ="), G 

मुझे लगता है कि आप एक विभाजन के रूप में सापेक्ष (%) के इलाज के लिए है

2

मैं पता लगा एक अपने दूसरे प्रश्न के लिए nswer क्योंकि यह मुझे भी परेशान कर रहा था - जैक की प्रतिक्रिया करीब है, लेकिन 1/4 के परिणाम की हानि पाइथन 2.X की वजह से पूर्णांक विभाजन परिणामों को छोटा कर रही है। तो यह सापेक्ष आपरेशन पहले डिविजन (जो बाद उसमें बदलाव नहीं किया जाता है, 0.

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

अजगर * के बाद% का मूल्यांकन करता है के रूप में, लेकिन पहले + या _ दिया जाता है का मूल्यांकन है, तो।

तो,

(100 - 25 * 3 % 4) 
(100 - 75 % 4) 
(100 - 3) 
(97)