آزمون پایتون

نمونه سوال آزمون کلاسی پایتون ۱ آموزشگاه هوش مصنوعی

۱- نمونه سوال پایتون ۱ پاییز ۱۴۰۴

آزمون پایتون – آموزشگاه هوش مصنوعی (تیروتیر)

آزمون پایتون — آموزشگاه هوش مصنوعی (تیروتیر)

بخش اول — سؤالات چندگزینه‌ای با پاسخ و توضیح

  1. 1. کدام یک از موارد زیر عملگر صحیح جمع در پایتون است؟ (الف) + (ب) – (ج) * (د) /
    پاسخ: (الف) +
    عملگر + برای جمع در پایتون به‌کار می‌رود.
  2. 2. برای چاپ متنی در پایتون، از کدام دستور استفاده می‌کنیم؟ (الف) display (ب) print (ج) show (د) write
    پاسخ: (ب) print
    برای چاپ در کنسول از تابع print استفاده می‌شود.
  3. 3. متغیر در پایتون می‌تواند با یکی از این علامت‌ها آغاز شود؟ (الف) $ (ب) @ (ج) # (د) _
    پاسخ: (د) _
    متغیرها می‌توانند با حروف یا زیرخط (_) شروع شوند؛ $,@,# مجاز نیستند.
  4. 4. کدام یک از موارد زیر یک نوع داده عددی در پایتون نیست؟ (الف) int (ب) float (ج) bool (د) string
    پاسخ: (د) string
    string (رشته) نوع متنی است؛ int و float عددی و bool منطقی‌اند.
  5. 5. برای تعریف یک لیست در پایتون، از کدام علامت‌گذاری استفاده می‌کنیم؟ (الف) [] (ب) {} (ج) () (د) //
    پاسخ: (الف) []
    لیست‌ها با کروشه‌های مربعی تعریف می‌شوند.
  6. 6. برای دسترسی به عنصری از لیست در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) [] (ب) {} (ج) () (د) //
    پاسخ: (الف) []
    برای ایندکس‌گذاری از براکت مربع استفاده می‌کنیم.
  7. 7. کدام یک از موارد زیر دستور شرط در پایتون است؟ (الف) if (ب) else (ج) elif (د) all of the above
    پاسخ: (د) all of the above
    if, elif و else بخش‌های ساختار شرطی‌اند (همه در ساختار شرط نقش دارند).
  8. 8. برای اجرای دستورات به صورت تکراری در پایتون، از کدام ساختار استفاده می‌کنیم؟ (الف) for (ب) while (ج) do-while (د) any of the above
    پاسخ: (الف) و (ب) — for و while (پایتون do-while ندارد)
    در پایتون از for و while برای تکرار استفاده می‌شود.
  9. 9. کدام یک از موارد زیر کتابخانه‌ای استاندارد در پایتون نیست؟ (الف) math (ب) random (ج) sys (د) mylib
    پاسخ: (د) mylib
    mylib یک نام فرضی است؛ بقیه ماژول‌های استاندارد هستند.
  10. 10. برای وارد کردن داده از کاربر در پایتون، از کدام دستور استفاده می‌کنیم؟ (الف) input (ب) get (ج) read (د) capture
    پاسخ: (الف) input
    تابع input برای دریافت ورودی متنی از کاربر است.
  11. 11. کدام یک از موارد زیر برای حذف یک عنصر از لیست در پایتون استفاده می‌شود؟ (الف) del (ب) remove (ج) pop (د) all of the above
    پاسخ: (د) all of the above
    هر کدام رفتار متفاوتی دارند اما همه برای حذف استفاده می‌شوند.
  12. 12. برای الحاق یک عنصر به لیست در پایتون، از کدام روش استفاده می‌کنیم؟ (الف) append (ب) insert (ج) extend (د) all of the above
    پاسخ: (د) all of the above
    append، insert و extend هر کدام برای افزودن به لیست کاربرد دارند.
  13. 13. کدام یک از موارد زیر برای چک کردن نوع یک متغیر در پایتون استفاده می‌شود؟ (الف) type (ب) isinstance (ج) both (a) and (b) (د) none of the above
    پاسخ: (ج) both (a) and (b)
    type و isinstance هر دو برای بررسی نوع به‌کار می‌روند؛ isinstance معمولاً مناسب‌تر برای وراثت است.
  14. 14. برای تبدیل یک نوع داده به نوع دیگر در پایتون، از کدام عملگر استفاده می‌کنیم؟ (الف) cast (ب) convert (ج) change (د) all of the above
    پاسخ: توضیح — در پایتون از توابع تبدیل مثل int(), float(), str() استفاده می‌شود؛ گزینه‌های ذکرشده عملگر زبان نیستند.
    مثال: int(“5”) => 5
  15. 15. کدام یک از موارد زیر برای تعریف یک تابع در پایتون استفاده می‌شود؟ (الف) def (ب) function (ج) procedure (د) routine
    پاسخ: (الف) def
    برای تعریف تابع در پایتون از def استفاده می‌کنیم.
  16. 16. برای فراخوانی یک تابع در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) () (ب) {} (ج) [] (د) //
    پاسخ: (الف) ()
    برای اجرای تابع از پرانتز استفاده می‌شود.
  17. 17. آرگومان در تابع پایتون چیست؟ (الف) ورودی تابع (ب) خروجی تابع (ج) بدنه تابع (د) نام تابع
    پاسخ: (الف) ورودی تابع
    آرگومان مقادیری هستند که به تابع داده می‌شوند.
  18. 18. کدام یک از موارد زیر برای بازگشت مقدار از یک تابع در پایتون استفاده می‌شود؟ (الف) return (ب) yield (ج) both (a) and (b) (د) none of the above
    پاسخ: (ج) both (a) and (b)
    return مقدار را برمی‌گرداند؛ yield برای ساخت جنراتور استفاده می‌شود — هر دو خروجی تولید می‌کنند.
  19. 19. ماژول در پایتون چیست؟ (الف) فایلی حاوی کد پایتون (ب) کتابخانه‌ای از توابع و متغیرها (ج) هر دو مورد (الف) و (ب) (د) هیچکدام
    پاسخ: (ج) هر دو
    ماژول می‌تواند یک فایل حاوی توابع و متغیرها باشد و نقش کتابخانه را ایفا کند.
  20. 20. برای وارد کردن ماژول در پایتون، از کدام دستور استفاده می‌کنیم؟ (الف) import (ب) include (ج) use (د) require
    پاسخ: (الف) import
    import برای وارد کردن ماژول استفاده می‌شود.
  21. 21. کلاس در برنامه‌نویسی شیءگرا به چه معناست؟ (الف) طرحی برای اشیاء (ب) نمونه‌ای از یک شیء (ج) مجموعه‌ای از اشیاء (د) هیچکدام
    پاسخ: (الف) طرحی برای اشیاء
    کلاس blueprint یا قالب برای ساخت اشیاء است.
  22. 22. برای تعریف کلاس در پایتون، از کدام کلمه کلیدی استفاده می‌کنیم؟
    پاسخ: class — مثال: class MyClass:
  23. 23. برای ایجاد یک شیء از یک کلاس در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) () (ب) {} (ج) [] (د) //
    پاسخ: (الف) ()
    برای ساخت نمونه از کلاس از پرانتز استفاده می‌کنیم: obj = MyClass()
  24. 24. برای دسترسی به ویژگی‌های یک شیء در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) . (نقطه) (ب) -> (فلش) (ج) / (اسلش) (د) هیچکدام
    پاسخ: (الف) .
    نقطه برای دسترسی به ویژگی‌ها و متدها استفاده می‌شود.
  25. 25. برای فراخوانی متد (تابع تعریف شده درون کلاس) روی یک شیء در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) . (نقطه) (ب) -> (فلش) (ج) / (اسلش) (د) هیچکدام
    پاسخ: (الف) .
    مثال: obj.method()
  26. 26. برای ارث‌بری در پایتون، از کدام کلمه کلیدی استفاده می‌کنیم؟ (الف) inherit (ب) extends (ج) subclass (د) super
    پاسخ: توضیح — خود پایتون از نگارش کلاس مانند class Child(Parent): استفاده می‌کند؛ هیچ‌یک از گزینه‌های داده‌شده دقیقاً یک کلمه‌کلیدی پایتون برای ارث‌بری نیستند. (تابع super() برای دسترسی به والد به‌کار می‌رود)
  27. 27. کدام یک از موارد زیر برای مدیریت خطا در پایتون استفاده می‌شود؟ (الف) try-except (ب) if-else (ج) for-loop (د) all of the above
    پاسخ: (الف) try-except
    برای گرفتن و مدیریت استثناها از try/except استفاده می‌کنیم.
  28. 28. برای کامنت تک خطی در پایتون، از چه علامتی استفاده می‌کنیم؟ (الف) # (ب) // (ج) /* */ (د) none of the above
    پاسخ: (الف) #
  29. 29. برای کامنت چند خطی در پایتون، از چه علامت‌هایی استفاده می‌کنیم؟ (الف) # (ب) // (ج) ”’ or “”” (د) none of the above
    پاسخ: (ج) ”’ or “””
    برای رشتهٔ چندخطی که معمولاً به‌عنوان کامنت چندخطی استفاده می‌شود، از سه‌تایی‌های نقل‌قول استفاده می‌کنیم.
  30. 30. کدام یک از موارد زیر برای مرتب‌سازی لیستی از اعداد به صورت صعودی در پایتون استفاده می‌شود؟ (الف) sort() (ب) order() (ج) arrange() (د) none of the above
    پاسخ: (الف) sort()
    متد list.sort() لیست را درجا مرتب می‌کند؛ همچنین sorted() تابع معادل است.

بخش دوم — کدها و برنامه‌ها

برنامه 1 — صحبت صوتی انگلیسی، پرسش از کاربر، تابع، حلقه‌ها، شرط، کلاس/شیء
# file: lesson_example_1.py
# Requires: pip install pyttsx3
import pyttsx3
import time

class SpeakerAsker:
    def __init__(self):
        self.engine = pyttsx3.init()

    def speak(self, text):
        self.engine.say(text)
        self.engine.runAndWait()

    def ask_and_return(self, prompt):
        self.speak(prompt)
        return input(prompt + "\n> ")

def main():
    sa = SpeakerAsker()
    sa.speak("Hello! This is a short English sentence spoken by the program.")
    name = sa.ask_and_return("What is your name?")

    def greet(n):
        if n.strip() == "":
            print("You didn't enter a name.")
        else:
            print(f"Hello, {n}! Nice to meet you.")

    greet(name)

    for i in range(3):
        print(f"[for loop] Welcome message #{i+1}")

    count = 3
    while count > 0:
        print(f"[while loop] Countdown: {count}")
        time.sleep(0.5)
        count -= 1

    if len(name) > 5:
        print("Your name is long.")
    else:
        print("Your name is short or medium.")

if __name__ == "__main__":
    main()
برنامه 2 — پنجره با عنوان، متن و دکمه (tkinter)
# file: lesson_example_2_gui.py
import tkinter as tk
from tkinter import simpledialog, messagebox

class MyApp:
    def __init__(self, root):
        self.root = root
        root.title("عنوان پنجره من")
        root.geometry("350x200")

        self.label = tk.Label(root, text="سلام! این یک متن نمونه است.")
        self.label.pack(pady=10)

        self.button = tk.Button(root, text="از من بپرس", command=self.ask_user)
        self.button.pack(pady=10)

        self.for_button = tk.Button(root, text="نمایش ۵ پیغام", command=self.show_five)
        self.for_button.pack(pady=5)

    def ask_user(self):
        answer = simpledialog.askstring("پرسش", "لطفاً یک عدد بین 1 و 10 وارد کنید:")
        if answer is None:
            return
        try:
            v = int(answer)
            if 1 <= v <= 10:
                messagebox.showinfo("خوب", f"شما عدد {v} را وارد کردید.")
            else:
                messagebox.showwarning("خطر", "عدد باید بین 1 و 10 باشد.")
        except ValueError:
            messagebox.showerror("خطا", "مقدار وارد شده عدد نیست.")

    def show_five(self):
        msgs = []
        for i in range(1, 6):
            msgs.append(f"پیغام شماره {i}")
        messagebox.showinfo("پیغام‌ها", "\n".join(msgs))

if __name__ == "__main__":
    root = tk.Tk()
    app = MyApp(root)
    root.mainloop()
برنامه 3 — تعامل با فایل‌ها (ذخیره و خواندن)
# file: lesson_example_3_file_io.py
def save_and_show():
    text = input("متنی را وارد کنید تا در فایل ذخیره شود:\n> ")
    filename = "user_text.txt"
    with open(filename, "w", encoding="utf-8") as f:
        f.write(text)
    print(f"متن در فایل '{filename}' ذخیره شد.\n---- محتوای فایل ----")
    with open(filename, "r", encoding="utf-8") as f:
        content = f.read()
    print(content)

if __name__ == "__main__":
    save_and_show()
برنامه 4 — بازی حدس عدد (1 تا 50)
# file: lesson_example_4_guess_number.py
import random

def guess_game():
    target = random.randint(1, 50)
    print("حدس بزن عدد بین 1 تا 50 است.")
    attempts = 0
    while True:
        attempts += 1
        try:
            guess = int(input("حدس شما: "))
        except ValueError:
            print("لطفاً یک عدد وارد کنید.")
            continue
        if guess < target:
            print("خیلی کوچک است. دوباره تلاش کن.")
        elif guess > target:
            print("خیلی بزرگ است. دوباره تلاش کن.")
        else:
            print(f"آفرین! درست حدس زدی. تعداد تلاش‌ها: {attempts}")
            break

if __name__ == "__main__":
    guess_game()
برنامه 5 — رسم مربع با لاک‌پشت (turtle)
# file: lesson_example_5_turtle_square.py
import turtle

def draw_square(side_length=100):
    t = turtle.Turtle()
    t.speed(3)
    for _ in range(4):
        t.forward(side_length)
        t.right(90)
    turtle.done()

if __name__ == "__main__":
    draw_square(150)
برنامه 6 — نسخهٔ اصلاح‌شده کد خطاها (با توضیحات)
# file: lesson_example_6_fix_errors.py
x = 10
print(x)

y = str(5) + " سلام"
print(y)

def ali():
    return "ali_called"
z = ali()
print(z)

def my_function():
    a = 3
    if a < 5:
        print("درست")
    else:
        print("غلط")

my_function()

name = 'John Doe'
print(f"hi {name}")

import pandas as pd  # pip install pandas

age = input("سن خود را وارد کنید: ")
try:
    age_num = int(age)
    print(age_num + 5)
except ValueError:
    print("سن وارد شده عدد نیست.")

den = 0
if den == 0:
    print("نمیتوان تقسیم بر صفر انجام داد.")
else:
    number = 1 / den
    print(number)

my_list = [1, 2, 3, "چهار"]
print(my_list)

my_dict = {"a": 1, "b": 2}
print(my_dict.get("c", "کلید موجود نیست"))
آموزشگاه هوش مصنوعی

نسخهٔ نهایی وب تعاملی — پروژه‌های پایتون

وب تعاملی: نسخهٔ نهایی — پروژه‌های پایتون

هر بخش یک «صورت سوال» (تمرین) دارد و کدها در پنل کد چپ‌چین نشان داده شده‌اند. برخی تمرین‌ها در مرورگر قابل اجرا هستند.

برای بهترین تجربه از مرورگر کروم یا فایرفاکس استفاده کنید

۱ — پخش صوت (Text-to-Speech)

صورت سوال:
  1. یک جملهٔ انگلیسی از کاربر دریافت کن.
  2. با استفاده از مرورگر آن جمله را به‌صورت صوتی پخش کن.
  3. کد پایتون و توضیح آن را نمایش بده (چپ‌چین).
این بخش از Web Speech API در مرورگر استفاده می‌کند — نیاز به اینترنت ندارد.

نمونهٔ کد (پایتون — نمایش فقط)

from gtts import gTTS
import os

text = "Hello, welcome to Python class!"
tts = gTTS(text=text, lang='en')
tts.save("voice.mp3")
os.system("voice.mp3")

کد اجرا‌شونده (مرورگر — جاوااسکریپت)

// uses Web Speech API
const utter = new SpeechSynthesisUtterance('Hello');
utter.lang = 'en-US';
speechSynthesis.speak(utter);
وضعیت: آماده

۲ — ایجاد پنجره گرافیکی (شبیه‌سازی tkinter)

صورت سوال:
  1. یک عنوان و متن دلخواه از کاربر بگیر.
  2. یک پنجرهٔ سادهٔ گرافیکی نمایش بده (درون صفحه).
  3. نسخهٔ تابعی، تکراری (for/while) و OOP آن را نشان بده.
پنجرهٔ شبیه‌سازی شده درون صفحه باز می‌شود.

نمونهٔ کد (پایتون — نمایش)

import tkinter as tk
root = tk.Tk()
root.title("My Window")
label = tk.Label(root, text="Hello!")
label.pack()
root.mainloop()

۳ — تعامل با فایل‌ها (.txt)

صورت سوال:
  1. متنی از کاربر بگیر و آن را در یک فایل متنی ذخیره کن.
  2. فایل را باز کرده و محتوای آن را در کنسول (پنل خروجی) نشان بده.
  3. کد پایتون آن را نمایش بده و یک دکمه برای دانلود فایل بساز.
فایل به‌صورت محلی در مرورگر ساخته و قابل دانلود می‌شود.

نمونهٔ کد (پایتون — نمایش)

text = input("Enter some text: ")
with open("data.txt", "w") as f:
    f.write(text)
with open("data.txt", "r") as f:
    print(f.read())
خروجی فایل اینجا نمایش داده می‌شود

۴ — بازی حدس عدد (۱ تا ۵۰)

صورت سوال:
  1. برنامه‌ای بنویس که یک عدد تصادفی بین 1 تا 50 انتخاب کند.
  2. کاربر تا پیدا کردن عدد صحیح حدس می‌زند و راهنمایی (بیشتر/کمتر) می‌گیرد.
  3. نسخهٔ تابعی و OOP را نیز توضیح بده.
بازی آماده — روی "شروع بازی جدید" کلیک کنید

نمونهٔ کد (پایتون — نمایش)

import random

number = random.randint(1, 50)
while True:
    guess = int(input("Guess the number (1-50): "))
    if guess < number:
        print("Higher!")
    elif guess > number:
        print("Lower!")
    else:
        print("Correct!")
        break

۵ — رسم مربع (لاک‌پشت -> بوم HTML)

صورت سوال:
  1. یک مربع با طول ضلع مشخص توسط کاربر رسم کن.
  2. کد پایتون لاک‌پشت (turtle) را نشان بده و معادل آن با Canvas بنویس.
بوم (Canvas) زیر مربع را نشان می‌دهد.

نمونهٔ کد (پایتون — نمایش)

import turtle

t = turtle.Turtle()
for _ in range(4):
    t.forward(100)
    t.right(90)

turtle.done()
راهنما: هر بخش شامل «صورت سوال»، کد نمونهٔ پایتون (برای یادگیری) و یک پیاده‌سازی تعاملی در مرورگر است. اگر می‌خواهی فایل HTML را برای استفادهٔ آفلاین تحویل بگیرم، بنویس «فایل HTML را صادر کن».