اذهب إلى المحتوى

السؤال

نشر

هل تدعم بايثون لتعبيرات الشروط المختصرة short if ؟ في لغات مثل JavaScript يمكنني فعل الآتي:

condition ? exprIfTrue : exprIfFalse

 أريد أن أقوم بتطبيق جمل شرطية مختصرة في بايثون كذلك الأمر بالنسبة إلى الحلقات المختصرة

Recommended Posts

  • 1
نشر

نعم بالطبع تدعم بايثون هذه الطريقة مثل ternary operator لكن ترتيب الشروط فيها مختلف:

a, b = 1, 2
min = a if a < b else b
print(min)

حيث نضع القيمة التي نريد إعادتها في حال تحقق الشرط، ثم الشرط وأخيرا القيمة الأخرى في حال لم يتحقق الشرط والشكل العام لها:

[on_true] if [expression] else [on_false] 

كما يوجد عبارة مختصرة لكل من:

a, b = 1, 2
  
# اختيارقيمة بناءاً على tuple
# (if_test_false,if_test_true)[test]
print( (b, a) [a < b] )
  
# أو القاموس
print({True: a, False: b} [a < b])

بالنسبة لحلقة for المختصرة يوجد عدة أشكال عامة لها:

for i in <collection>
    <loop body>
_____________________
for <var> in <iterable>:
    <statement(s)>
_____________________
مثال

>>> a = [1, 2, 3]
>>> for i in a:
...     print(i)
...
1
2
3

حيث أدرجت مثال للمرور على قائمة بكل بساطة بدون أي تعقيدات.

كما تعمل مع القواميس:

>>> d = {'foo': 1, 'bar': 2, 'baz': 3}
>>> for k in d:
...     print(k)
...
foo
bar
baz
_____________________
>>> for k in d:
...     print(d[k])
...
1
2
3

كما يمكن المرور على قائمة من tuple :

>>> i, j = (1, 2)
>>> print(i, j)
1 2

>>> for i, j in [(1, 2), (3, 4), (5, 6)]:
...     print(i, j)
...
1 2
3 4
5 6

 

  • 0
نشر (معدل)

نعم يوجد إختصار لل if في البايثون ولكن ليس مثل javascript وهو كما في المثال التالي

a,b=5,7
x = a > b and "True" or "False"
#or  يتم إرجاع ما بعد ال false  وإذا كان  and  يتم إرجاع ما بعد ال  true في حالة  

 

تم التعديل في بواسطة عبدالباسط ابراهيم
خطأ إملائي
  • 0
نشر

العامل الثلاثي في لغة بايثون مُختلف نوعاً ما مثلاً في جافاسكربت العامل الثلاثي بهذا الشكل:

// condition ? exprIfTrue : exprIfFalse
  
// مثال:

let x = 2,
	y = 4;
let a = y > x ? y : x;
console.log(a); // 4

أما في بايثون:

# <expression1> if <condition> else <expression2>

# وهي موافقة لِ

# if <condition>: <expression1> else: <expression2>
  
# مثال:

x = 2
y = 4

a = y if y > x else x
print(a) # 4

 

انضم إلى النقاش

يمكنك أن تنشر الآن وتسجل لاحقًا. إذا كان لديك حساب، فسجل الدخول الآن لتنشر باسم حسابك.

زائر
أجب على هذا السؤال...

×   لقد أضفت محتوى بخط أو تنسيق مختلف.   Restore formatting

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   جرى استعادة المحتوى السابق..   امسح المحرر

×   You cannot paste images directly. Upload or insert images from URL.

  • إعلانات

  • تابعنا على



×
×
  • أضف...