لماذا 1 +++ 2 = 3؟
-
19-08-2019 - |
سؤال
وكيف بيثون تقييم 1+++2
التعبير؟
وكم +
من أي وقت مضى أضع بين، فإنه طباعة 3
كجواب. يرجى يمكن لأحد أن يفسر هذا السلوك
ول1--2
هو طباعة 3
و1---2
هو طباعة -1
المحلول
والتعبير الخاص بك هو نفسه على النحو التالي:
1+(+(+2))
وأي تعبير رقمي يمكن أن يسبقه -
لجعلها سلبية، أو +
لا علاقة له (الخيار موجودا لالتماثل). مع إشارات سلبية:
1-(-(2)) = 1-(-2)
= 1+2
= 3
و
1-(-(-2)) = 1-(2)
= -1
وأراك أوضح سؤالك أن أقول إن كنت أتيت من خلفية C. في بيثون، لا توجد شركات زيادة مثل ++
و--
في C، الذي ربما كان مصدر خزيا. لزيادة أو إنقاص وi
متغير أو j
في بيثون استخدام هذا الأسلوب:
i += 1
j -= 1
نصائح أخرى
ووالاضافي + الصورة ليست incrementors (مثل ++ لأو ++ في ج ++). أنها مجرد تبين أن عدد إيجابية.
وليس هناك عامل مثل ++. وهناك عامل + الأحادية والأحادية - مشغل بالرغم من ذلك. المشغل + أحادي ليس له تأثير على حجتها. والأحادية - مشغل ينفي مشغلها أو mulitplies من قبل -1.
+1
-> 1
++1
-> 1
وهذا هو نفس + (+ (1))
1+++2
-> 3 لأنه من نفس 1 + (+ (+ (2))
وبالمثل يمكن أن تفعله --1 أن يعني - (-1) وهو +1
--1
-> 1
لاكتمال لا يوجد * opeartor أحادي. لذلك * 1 هو خطأ. ولكن هناك ** المشغل الذي هو قوة، فإنه يأخذ 2 الحجج.
2**3
-> 8
1 + (+ (+ 2)) = 3
1 - (-2) = 3
1 - (- (- 2)) = -1
ووالأحادية - (ناقص) عامل ينتج نفي حجتها رقمية
.وو+ أحادي (زائد) عامل ينتج حجتها رقمية دون تغيير.
اقتباس فقرة>>>> +2
2
>>> ++2
2
>>> +++2
2
>>> -2
-2
>>> --2
2
>>> ---2
-2
>>> 1+(++2)
3
وأعتقد أنه يجري تحليل كما، أول + كعملية ثنائية (إضافة)، والباقي كما عملية أحادية (جعل إيجابية).
1 + (+(+2))
وأعتقد أنه ك 1 + (+1 * (+ 1 * 2))). أول + غير مشغل وبعد علامات زائد هي علامة على المعامل الثاني (= 2).
وتماما مثل 1 --- 2 هو نفس 1 - - (- (2)) أو 1- (-1 * (- 1 * (2))