• 1
    إدخال وإخراج البيانات
    • المهام
  • 2
    الشروط
    • المهام
  • 3
    حلقة for
    • المهام
  • 4
    السلاسل النصية
    • المهام
  • 5
    حلقة while
    • المهام
  • 6
    القوائم
    • المهام
  • 7
    مصفوفات ثنائية الأبعاد
    • المهام
  • 8
    القواميس
    • المهام
  • 9
    المجموعات
    • المهام
  • 10
    الدوال والتكرار
    • المهام
  • к

درس 2. Conditions

الصعوبة:

иконка человека красный иконка человека белая иконка человека зеленая Pythonlib

مسألة«مزرعة افتراضية»

💻 Python

قرر المزارع فيودور إحصاء مزرعته ووضع جميع الحيوانات في ثلاث زوايا جديدة واسعة. سعة كل زاوية — 10 حيوانات بالضبط.

rn

اكتب برنامجًا يساعد فيودور في تحديد ما إذا كانت المساحة كافية للجميع بسرعة. يجب أن يطلب البرنامج من المزارع عدد الأبقار والأغنام والدجاج، ثم يخبره ما إذا كان يمكن وضعها في الزوايا الثلاث. إذا كانت هناك مساحة، يجب على البرنامج أيضًا حساب عدد الأماكن الحرة المتبقية. إذا لم تكن المساحة كافية، يجب توضيح عدد الحيوانات التي لم تتسع لها المساحة.

تنسيق الإدخال

ثلاثة أعداد صحيحة، يتم إدخال كل منها في سطر جديد بعد الدعوة المناسبة.
الرقم الأول: عدد الأبقار (عدد صحيح).

الرقم الثاني: عدد الأغنام (عدد صحيح).
الرقم الثالث: عدد الدجاج (عدد صحيح).

تنسيق الإخراج


السطر الثاني: عدد الأماكن الحرة المتبقية أو المفقودة (سطر).

مثال

إدخال

5
8
10

إخراج

نعم، يمكن وضع جميع الحيوانات.
سيكون هناك أماكن شاغرة: 7

تلميح

Nested conditions

You can nest some conditional statements (if) into others to create more complex and multi-level checks. This is useful when the next action depends on several consecutive conditions.

The key point here is the correct indentation (usually 4 spaces), which shows Python which block of code belongs to which condition.

Example:

x = 10

if x > 5:
    print("First check passed: x is greater than 5.")
if x < 20:
        print("Second check passed: x is also less than 20.")
else:
print("Second check failed: x is at least 20.")
else:
print("First check failed: x is less than or equal to 5.")

A useful tip: Try not to create too many nesting levels (3 or more). Deeply embedded code becomes difficult to read and understand. Often, complex nesting can be simplified by using logical operators.

Logical operators

Logical operators in Python are used to combine two or more conditions. They allow you to build complex logic without putting conditions into each other. The main logical operators are and, or and not.

The Name Description
or logical "OR" Returns True if at least one condition is true.
and logical "And" Returns True only if both conditions are true.
not logical "NOT" (negation) Inverts the result: True becomes False and vice versa.

Examples:

a = 5
b = 7

# and: both conditions must be true
s1 = a > 3 and b < 10  # True and True -> True

# or: at least one condition must be true
s2 = a != 5 or b >= 7  # False or True -> True

# not: inverts the result
s3 = not (a < b)       # not (True) -> False

When using and, the result will be true only if both operands are true. When using or, it is sufficient for at least one of the operands to be true. The not operator turns a lie into the truth and vice versa.

Analysis of a complex example:

a, b, c = 7, 10, 11
# Original expression:
print(not(a > 7 and b <= 10) or c != 17)

# Let's take it step by step:
# 1. a > 7  ->  7 > 7  -> False
# 2. b <= 10 -> 10 <= 10 -> True
# 3. (False and True) -> False
# 4. not(False) -> True
# 5. c != 17 -> 11 != 17 -> True
# 6. True or True -> True
# Result: True

A useful tip: To improve readability and avoid errors in complex expressions, always use parentheses () to explicitly specify the order of calculations, even if you remember the precedence of operators (not has the highest priority, then and, then or).

The ternary operator

The ternary operator is a compact way to write a simple if-else condition that returns a value. It allows you to assign a variable a value depending on the condition, and all this in one line.

Syntax: [value if true] if [condition] else [value if false]

Examples:

x = 10
# If x > 5, result will be 100, otherwise 200
result = 100 if x > 5 else 200
print(result) # Will output: 100

y = 20
# Assign the larger of the two values to the variable z
z = x if x > y else y
print(z) # Outputs: 20

# Assign a text value
result_text = "positive" if x > 0 else "non-positive"
print(result_text) # Outputs: positive

A useful tip: The ternary operator is great for simple assignments. However, if the logic becomes more complicated or if, depending on the condition, you need to perform different actions (rather than just return a value), it is better to use a full-fledged if-else construct to preserve the readability of the code.

One-line conditions

If the condition body (if, elif, or else) consists of only one instruction, Python allows you to write it in the same line after the colon.

Example:

x = 10
if x > 5: print("x is greater than 5")

Important style note: Although this notation is syntactically correct, it is often not recommended by the Python Code Style Guide (PEP 8). Placing instructions on a separate line with indentation improves readability and is a generally accepted standard. Use a one-line entry with care, mostly for very simple and obvious actions.

main.py
اختبار 1
اختبار 2
اختبار 3
اختبار 4
اختبار 5
اختبار 6
اختبار 7
اختبار 8
اختبار 9
اختبار 10
حل المطور
# Запрашиваем у пользователя количество животных каждого вида.
# Функция int() преобразует введенный текст в целое число.
cows = int(input())
sheep = int(input())
chickens = int(input())

# Рассчитываем общее количество животных путем сложения.
total_animals = cows + sheep + chickens

# Определяем общую вместимость всех загонов (3 загона * 10 мест).
total_capacity = 30

# Используем условие if/else для проверки, поместятся ли все животные.
if total_animals <= total_capacity:
    # Этот блок кода выполняется, если общее количество животных меньше или равно вместимости.
    free_space = total_capacity - total_animals # Вычисляем количество свободных мест.
    print("Да, всех животных можно разместить.")
    print("Останется свободных мест:", free_space)
else:
    # Этот блок кода выполняется, если животных больше, чем мест.
    shortage = total_animals - total_capacity # Вычисляем, скольких мест не хватает.
    print("Нет, всех животных разместить нельзя.")
    print("Не хватает мест:", shortage)

🎉 تهانينا! 🎉

لقد حللت المهمة ببراعة! كان صعبًا لكنك وجدت الحل الصحيح. أنت خطوة أقرب إلى الاحتراف! استمر، كل مرحلة تجعلك أقوى.

AD

إعلان

red-snake blue-snake green-snake

جارٍ تشغيل الكود...

مساعد الذكاء الاصطناعي

مرحباً! أنا مساعدك في البرمجة. اسألني أي شيء عن Python — يمكنني شرح الدوال والطرق ومساعدتك في المهمة الحالية!