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

تطبيق شروط و حلقات مختصرة في بايثون

Adam Ebrahim

السؤال

هل تدعم بايثون لتعبيرات الشروط المختصرة 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

يمكننا فعل ذلك كالتالي

y=20
x = True if y >= 20 else False
print(x)

حيث سوف يتم تخزين قيمة true في المتغير x اذا كان الشرط صحيح أما اذا كان خاطئا فسوف يتم تخزين قيمة false

رابط هذا التعليق
شارك على الشبكات الإجتماعية

  • 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.

  • إعلانات

  • تابعنا على



×
×
  • أضف...