پاسخ آزمون خودسنجی فصل صفر

Please login to bookmark Close

پاسخ‌ها را با جواب‌های خودتان مقایسه کنید و طبق راهنمای انتهای فایل نمره بدهید. «تقریباً درست» هم نمره دارد — دنبال عین جمله‌های ما نباشید، دنبال درستی مفهوم باشید.

مشاهده سوالات آزمون خودسنجی فصل صفر

تمرین ۱ – مفاهیم پایه

۱. هر دو دنباله‌ای از مقادیرند، اما list قابل‌تغییر است (اضافه/حذف/جایگزینی) و tuple تغییرناپذیر. برای مختصات جغرافیایی فروشگاه tuple مناسب‌تر است: دو مقدار به‌هم‌چسبیده که بعد از ساخت نباید دستکاری شوند — تغییرناپذیری اینجا یک محافظ است، نه محدودیت.

۲.

  • الف) set — عضویت بدون تکرار، و تست «آیا این کاربر امروز آمده؟» سریع است.
  • ب) list — ترتیب ثبت مهم است و سفارش جدید مدام اضافه می‌شود.
  • ج) dict — هر مشخصه یک نام روشن (کلید) دارد: {"name": ..., "price": ..., "stock": ...}.
  • د) tuple — سه مقدار ثابت به‌هم‌چسبیده مثل (1370, 7, 14).

۳. print مقدار را فقط روی صفحه نمایش می‌دهد؛ return مقدار را به فراخواننده برمی‌گرداند تا در ادامه‌ی برنامه قابل‌استفاده باشد. تابعی که return ندارد (یا به آن نمی‌رسد)، None برمی‌گرداند.

۴. برچسبی جدید روی همان مقدار. در پایتون متغیرها جعبه نیستند که مقدار داخلشان کپی شود؛ ارجاع‌اند. اگر مقدار زیرین تغییرپذیر باشد (مثل لیست)، تغییر از طریق y از چشم x هم دیده می‌شود. (این موضوع در فصل دوم — بخش self — و فصل چهاردهم — حافظه — عمیق باز می‌شود.)

تمرین ۲ – خواندن کد

۵.

3 mouse

append به انتها اضافه می‌کند (طول: ۳) و ایندکس از صفر شروع می‌شود، پس cart[1] یعنی mouse.

۶.

0
3

get("price", 0) چون کلید price وجود ندارد، پیش‌فرض 0 را برمی‌گرداند (و خطا نمی‌دهد). موجودی هم از ۵ به ۳ رسیده.

۷.

180000.0
100000.0

فراخوانی اول از percent پیش‌فرض (۱۰) استفاده می‌کند، دومی آن را با ۵۰ جایگزین می‌کند. (اعشار به‌خاطر تقسیم است — تقسیم در پایتون همیشه float می‌دهد.)

۸.

350

continue یعنی «همین دور را رها کن و برو سراغ بعدی»؛ پس ۴۰۰ (بزرگ‌تر از ۳۰۰) جمع نمی‌شود: ۱۰۰ + ۲۵۰.

۹.

hello sara
None

سوال کلیدی این آزمون. greet فقط print می‌کند و return ندارد؛ پس result برابر None است. اگر این را درست جواب دادید، مهم‌ترین دام پیش‌رویتان را رد کرده‌اید.

۱۰.

OK

f = shout بدون پرانتز، خود تابع را (نه نتیجه‌اش را) در f می‌گذارد؛ حالا f نام دیگری برای همان تابع است. توابع در پایتون شیءاند — این ایده در فصل پنجم (دکوراتورها) ستاره می‌شود.

تمرین ۳ – نوشتن کد

۱۱.

def is_valid_password(password):
    return len(password) >= 8

راه دیگر: با if/else هم درست است، اما برگرداندن مستقیم نتیجه‌ی مقایسه کوتاه‌تر و رایج‌تر است — عبارت len(password) >= 8 خودش True/False است.

۱۲.

def count_paid(orders):
    count = 0
    for order in orders:
        if order["paid"]:
            count += 1
    return count

راه دیگر (پیشرفته‌تر):

def count_paid(orders):
    return sum(1 for order in orders if order["paid"])

اگر نسخه‌ی دوم به ذهنتان رسید عالی است، ولی برای این دوره نسخه‌ی اول کاملاً کافی است.

۱۳.

def describe_user(username, role="member"):
    return f"{username} ({role})"

print(describe_user("ali", "admin"))   # ali (admin)
print(describe_user("sara"))           # sara (member)

تمرین ۴ – خواندن Traceback

۱۴.

  • الف) ZeroDivisionError — تلاش برای تقسیم بر صفر؛ یعنی count صفر بوده.
  • ب) فایل app.py، خط ۷، درون تابع show_report.
  • ج) از خط ۱۲ همان فایل (سطح اصلی برنامه) با فراخوانی show_report(sales).

اگر پاسخ‌ها را از خط آخر Traceback شروع کردید و بالا آمدید، مهارت را درست به‌کار برده‌اید.

۱۵. خطا KeyError: 'email' است: کلید email در دیکشنری وجود ندارد. دو راه رفع: قبل از دسترسی وجودش را بررسی کنید (if "email" in user:) یا از user.get("email", "unknown") استفاده کنید که به‌جای خطا، مقدار پیش‌فرض می‌دهد.

راهنمای نمره‌گذاری

به هر سوال که مفهومش را درست جواب داده‌اید ۱ نمره بدهید (سوال‌های چندقسمتی: اگر بیش از نیمی از قسمت‌ها درست بود، ۱ نمره). جمع کل از ۱۵:

نمرهوضعیتتوصیه
۱۲ تا ۱۵آماده‌ایدمستقیم بروید فصل اول.
۸ تا ۱۱تقریباً آمادهفصل صفر را یک‌بار با تایپ همه‌ی کدها بخوانید، مخصوصاً بخش‌هایی که غلط داشتید؛ بعد شروع کنید.
کمتر از ۸هنوز زود استیکی دو هفته با مقدمات پایتون تمرین کنید (متغیرها، لیست/دیکشنری، توابع) و دوباره همین آزمون را بدهید. عجله نکنید — این دوره جایی نمی‌رود.

یک نکته‌ی دلگرم‌کننده: سوال‌های ۳، ۹ و ۱۰ مهم‌ترین‌های این آزمون بودند. اگر آن سه را درست جواب داده‌اید، سخت‌ترین بدفهمی‌های مسیر را ندارید؛ بقیه با تمرین حل می‌شود.

Please login to bookmark Close
نظرات

دیدگاهتان را بنویسید

فهرست مطالب

سرفصل دوره

تمرین

این قسمت تمرین ندارد!

پاسخ تمرین ها

هنوز برای تمرین‌های این قسمت پاسخی ثبت نشده است!

اشتراک گذاری

چرا بهتره از فیلترشکن استفاده کنید؟

من همه ویدئو ها و پادکست های کُدباز رو توی یوتیوب و ساندکلود و پلتفرم هایی آپلود می‌کنم که اغلب فیلتر هستند.

اغلب آموزش‌ها ویدئو و پادکست دارند. پس اگر می‌خواهید از محتوای سایت بیشترین استفاده رو ببرید نیاز به فیلتر شکن دارید.

توجه داشته باشید که برای خرید از فروشگاه بهتره فیلتر شکن رو خاموش کنید.

تنظیمات

انتخاب زبان
تغییر تم