سوال شماره 4737 چندگزینه‌ای
آزمون رایگان پایتون فنی و حرفه ای
کدام یک از عبارات زیر به درستی مفهوم 'List Comprehension' را در پایتون نشان می‌دهد و لیستی از مربع اعداد زوج بین 1 تا 10 ایجاد می‌کند؟

گزینه‌ها:

  • 1. (x**2 for x in range(1,11) where x%2==0)
  • 2. [for x in range(1,11): x**2 if x%2==0]
  • 3. [x**2 for x in range(1,11) if x%2==0] ✓ صحیح
  • 4. [x*2 for x in range(1,11)]

پاسخ صحیح:

  • [x**2 for x in range(1,11) if x%2==0]

توضیحات:

گزینه اول صحیح است زیرا سینتکس درست List Comprehension را دارد: [expression for item in iterable if condition]. این عبارت اعداد از 1 تا 10 را پیمایش کرده، فقط اعداد زرم (x%2==0) را انتخاب می‌کند و مربع هر یک (x**2) را محاسبه کرده و در لیست قرار می‌دهد. گزینه دوم فقط اعداد را دوبرابر می‌کند، گزینه سوم سینتکس نادرست دارد و گزینه چهارم از where استفاده کرده که در پایتون معتبر نیست.