نمونه سوالات برنامهنویسی پایتون با جواب در این صفحه، شامل تمرینهایی از مباحث مختلف این زبان، از متغیرها و شرطها تا حلقهها، توابع و کار با دادههاست؛در این مجموعه ابتدا سوالات کدنویسی را بررسی میکنیم، سپس سراغ سوالات خروجی کد، عیبیابی، تستی و مصاحبهای میرویم و در پایان PDF و آزمون آنلاین را داریم. اگر قصد شرکت در کلاس پایتون مشهد یا دورههای آموزشی در تهران و سایر شهرها را دارید، پیش از انتخاب، درباره سابقه مدرس، سرفصلها و شیوه برگزاری کلاس اطلاعات کافی به دست آورید.

سوالات مقدماتی برای تمرین مفاهیم پایه پایتون طراحی شدهاند و بیشتر روی متغیرها، دریافت اطلاعات، عملگرها، شرطها، حلقهها و کار با رشته و لیست تمرکز دارند. ابتدا چند مسئله ساده را حل میکنیم و سپس به سوالاتی میرسیم که ترکیبی از همین مفاهیم را به کار میگیرند.
یکی از دلایلی که چرا پایتون برای مبتدیان مناسب است، ساختار ساده و خوانای دستورات آن میباشد؛ به همین دلیل یادگیری مفاهیمی مانند متغیر، دریافت ورودی، انجام محاسبات و نمایش خروجی با کدهای کوتاه امکانپذیر است. در ادامه، این مفاهیم را با چند نمونه سوال و کد پایتون تمرین میکنیم.
برنامهای بنویسید که دو عدد صحیح را از کاربر دریافت کند و حاصل جمع آنها را نمایش دهد.
پاسخ کد پایتون:
number1 = int(input("عدد اول را وارد کنید: "))
number2 = int(input("عدد دوم را وارد کنید: "))
sum_result = number1 + number2
print("حاصل جمع:", sum_result)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
20 = 12 + 8
خروجی:
حاصل جمع: 20
نکته: مقداری که با input() دریافت میشود بهصورت رشته است؛ بنابراین برای انجام محاسبات عددی باید آن را با int() به عدد صحیح تبدیل کنیم. اگر قرار باشد اعداد اعشاری نیز دریافت شوند، میتوان از float() استفاده کرد.
پاسخ کد پایتون:
length = float(input("طول مستطیل را وارد کنید: "))
width = float(input("عرض مستطیل را وارد کنید: "))
area = length * width
print("مساحت مستطیل:", area)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
60 = 12 × 5
خروجی:
مساحت مستطیل: 60.0
نکته: در این برنامه از float() استفاده شده تا کاربر بتواند علاوه بر اعداد صحیح، مقدارهای اعشاری مانند 5.5 را نیز وارد کند.
پاسخ کد پایتون:
number = int(input("یک عدد صحیح وارد کنید: "))
if number % 2 == 0:
print("عدد زوج است.")
else:
print("عدد فرد است.")
مراحل حل:
نمونه اعداد ورودی:
عدد: 17
محاسبه:
1 = 2 % 17
خروجی:
عدد فرد است.
نکته: هر عدد صحیحی که باقیمانده تقسیم آن بر ۲ برابر صفر باشد، زوج است؛ در غیر این صورت، عدد فرد خواهد بود.
برنامهای بنویسید که سه عدد را از کاربر دریافت کند و میانگین آنها را محاسبه و نمایش دهد.
پاسخ کد پایتون:
number1 = float(input("عدد اول را وارد کنید: "))
number2 = float(input("عدد دوم را وارد کنید: "))
number3 = float(input("عدد سوم را وارد کنید: "))
average = (number1 + number2 + number3) / 3
print("میانگین:", average)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
(12 + 15 + 18) ÷ 3 = 15
خروجی:
میانگین: 15.0
نکته: چون از float() استفاده شده است، برنامه میتواند اعداد اعشاری را نیز دریافت کند. همچنین نتیجه تقسیم در پایتون میتواند بهصورت عدد اعشاری نمایش داده شود.
سوال 5؛ دریافت دما و تبدیل سلسیوس به فارنهایت:
برنامهای بنویسید که دمای هوا را برحسب درجه سلسیوس از کاربر دریافت کند و معادل آن را برحسب فارنهایت محاسبه و نمایش دهد.
پاسخ کد پایتون:
celsius = float(input("دما بر حسب سلسیوس را وارد کنید: "))
fahrenheit = (celsius * 9 / 5) + 32
print("دما بر حسب فارنهایت:", fahrenheit)
مراحل حل:
نمونه اعداد ورودی:
دما بر حسب سلسیوس: 25
محاسبه:
(25 × 9 ÷ 5) + 32 = 77
خروجی:
دما بر حسب فارنهایت: 77.0
نکته: در پایتون عملگر / نتیجه تقسیم را بهصورت عدد اعشاری برمیگرداند؛ به همین دلیل خروجی ممکن است حتی برای یک مقدار صحیح، مانند 25، به شکل 77.0 نمایش داده شود.
برنامهای بنویسید که شعاع یک دایره را از کاربر دریافت کند و مساحت و محیط آن را محاسبه و نمایش دهد.
پاسخ کد پایتون:
import math
radius = float(input("شعاع دایره را وارد کنید: "))
area = math.pi * radius ** 2
circumference = 2 * math.pi * radius
print("مساحت دایره:", area)
print("محیط دایره:", circumference)
مراحل حل:
نمونه اعداد ورودی:
شعاع دایره: 5
محاسبه:
خروجی:
نکته: مقدار math.pi مقدار تقریبی عدد π را در اختیار برنامه قرار میدهد. اگر خروجی با تعداد رقم اعشار مشخصی لازم باشد، میتوان از قالببندی عدد در print() استفاده کرد.
برنامهای بنویسید که قیمت یک کالا و تعداد آن را از کاربر دریافت کند و مبلغ کل خرید را محاسبه و نمایش دهد.
پاسخ کد پایتون:
price = float(input("قیمت کالا را وارد کنید: "))
quantity = int(input("تعداد کالا را وارد کنید: "))
total = price * quantity
print("مبلغ کل:", total)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
85000 × 3 = 255000
خروجی:
مبلغ کل: 255000.0
نکته: برای قیمت از float() استفاده شده تا در صورت وجود مقدار اعشاری نیز برنامه بتواند آن را دریافت کند؛ اما تعداد کالا با int() دریافت میشود، چون تعداد معمولا بهصورت عدد صحیح وارد میشود.
برنامهای بنویسید که یک عدد و توان مورد نظر را از کاربر دریافت کند و حاصل توان را نمایش دهد.
پاسخ کد پایتون:
number = float(input("عدد را وارد کنید: "))
power = int(input("توان را وارد کنید: "))
result = number ** power
print("حاصل توان:", result)
مراحل حل:
نمونه اعداد ورودی:
محاسبه: 4³ = 64
خروجی: حاصل توان: 64.0
نکته: در پایتون از عملگر ** برای محاسبه توان استفاده میشود. برای مثال، 2 ** 3 برابر با 8 است.
برنامهای بنویسید که مدت زمان یک فعالیت را بر حسب دقیقه از کاربر دریافت کند و آن را به ساعت و دقیقه تبدیل و نمایش دهد.
پاسخ کد پایتون:
minutes = int(input("مدت زمان را بر حسب دقیقه وارد کنید: "))
hours = minutes // 60
remaining_minutes = minutes % 60
print("ساعت:", hours)
print("دقیقه:", remaining_minutes)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
135 ÷ 60 = 2 ساعت و 15 دقیقه باقیمانده
خروجی:
ساعت: 2، دقیقه: 15
نکته: عملگر // فقط قسمت صحیح حاصل تقسیم را برمیگرداند و % باقیمانده تقسیم را به دست میآورد.
برنامهای بنویسید که مدت زمان یک فعالیت را بر حسب ثانیه از کاربر دریافت کند و آن را به دقیقه و ثانیه تبدیل و نمایش دهد.
پاسخ کد پایتون:
seconds = int(input("مدت زمان را بر حسب ثانیه وارد کنید: "))
minutes = seconds // 60
remaining_seconds = seconds % 60
print("دقیقه:", minutes)
print("ثانیه:", remaining_seconds)
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
145 ÷ 60 = 2 دقیقه و 25 ثانیه باقیمانده
خروجی:
دقیقه: 2، ثانیه: 25
نکته: در این تمرین، // برای بهدستآوردن تعداد کامل دقیقهها و % برای محاسبه زمان باقیمانده استفاده میشود.

در سطح متوسط، سوال ها علاوه بر مفاهیم پایه، به کار با ساختارهای داده، توابع و حل مسئله نیاز دارند. این نمونه سوالات با استفاده از مباحث مطرحشده در بهترین کتاب آموزش پایتون و منابع آموزشی معتبر انتخاب شدهاند تا تمرینها از مفاهیم کاربردی و مهم این سطح فاصله نگیرند. در این بخش، موضوعاتی مانند لیست، تاپل، دیکشنری و حل مسائل الگوریتمی را تمرین میکنیم.
پاسخ کد پایتون:
numbers = [10, 20, 30]
list_reference = numbers
list_copy = numbers[:]
list_reference.append(40)
list_copy.append(50)
print("لیست اصلی:", numbers)
print("لیست ارجاعی:", list_reference)
print("لیست کپیشده:", list_copy)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: استفاده از = برای نسبت دادن یک لیست به متغیر دیگر، کپی مستقل ایجاد نمیکند. برای ایجاد یک کپی ساده از لیست میتوان از [:] استفاده کرد.
پاسخ کد پایتون:
students = {
"علی": 18,
"سارا": 20,
"مریم": 17
}
for name, score in students.items():
print("نام:", name, "- نمره:", score)
مراحل حل:
نمونه ورودی:
محاسبه: در هر بار اجرای حلقه، یک جفت کلید و مقدار از دیکشنری دریافت و چاپ میشود.
خروجی:
نکته: متد items() جفتهای کلید و مقدار دیکشنری را در اختیار حلقه قرار میدهد؛ برای دسترسی فقط به کلیدها میتوان از keys() و برای مقادیر از values() استفاده کرد.
سوال 13؛ مرتبسازی کلمات بر اساس حروف الفبا در پایتون:
برنامهای بنویسید که چند کلمه را در یک لیست قرار دهد و آنها را به ترتیب حروف الفبا مرتب و نمایش دهد.
پاسخ کد پایتون:
words = ["banana", "apple", "orange", "cherry"]
sorted_words = sorted(words)
print("کلمات مرتبشده:", sorted_words)
مراحل حل:
نمونه ورودی:
محاسبه:
ترتیب الفبایی کلمات به این شکل است: apple، banana، cherry، orange
خروجی:
نکته: تابع sorted() یک لیست جدید و مرتبشده برمیگرداند و لیست اصلی را تغییر نمیدهد. اگر بخواهید خود لیست اصلی تغییر کند، میتوانید از متد sort() استفاده کنید.
برنامهای بنویسید که یک متن را دریافت کند و تمام علائم نگارشی موجود در آن را حذف و متن پاکسازیشده را نمایش دهد.
پاسخ کد پایتون:
import string
text = input("متن را وارد کنید: ")
clean_text = text.translate(str.maketrans("", "", string.punctuation))
print("متن بدون علائم نگارشی:", clean_text)
مراحل حل:
نمونه ورودی:
محاسبه:
Hello, Python! How are you ← حذف
, و ! و ? → Hello Python How are you
خروجی:
نکته: string.punctuation شامل علائم نگارشی رایج انگلیسی است. اگر متن فارسی داشته باشیم، برای حذف علائم نگارشی فارسی باید مجموعه علائم فارسی را نیز جداگانه در نظر گرفت.
برنامهای بنویسید که چند عدد را در یک لیست قرار دهد، آن را به تاپل تبدیل کند و نتیجه را نمایش دهد.
پاسخ کد پایتون:
numbers = [10, 20, 30, 40, 50]
numbers_tuple = tuple(numbers)
print("لیست اصلی:", numbers)
print("تاپل تبدیلشده:", numbers_tuple)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: لیستها قابل تغییر هستند، اما عناصر یک تاپل پس از ایجاد آن قابل تغییر نیستند. به همین دلیل تاپل برای نگهداری دادههایی که نباید تغییر کنند، کاربرد دارد.
برنامهای بنویسید که یک لیست شامل اعداد تکراری را دریافت کند و یک لیست جدید بدون عناصر تکراری ایجاد و نمایش دهد.
پاسخ کد پایتون:
numbers = [4, 7, 4, 2, 7, 9, 2, 5]
unique_numbers = list(set(numbers))
print("لیست بدون عناصر تکراری:", unique_numbers)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: set عناصر تکراری را حذف میکند، اما ترتیب عناصر در آن تضمینشده نیست؛ بنابراین ممکن است ترتیب خروجی در اجرای برنامه متفاوت باشد.
برنامهای بنویسید که یک تابع، دو عدد را دریافت کند و حاصل جمع و حاصل ضرب آنها را بهصورت همزمان برگرداند.
پاسخ کد پایتون:
def calculate(number1, number2):
total = number1 + number2
product = number1 * number2
return total, product
number1 = 8
number2 = 5
sum_result, multiplication_result = calculate(number1, number2)
print("حاصل جمع:", sum_result)
print("حاصل ضرب:", multiplication_result)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: در پایتون میتوان چند مقدار را با return برگرداند. این مقادیر در واقع بهصورت یک تاپل برگردانده میشوند و میتوان آنها را همزمان در چند متغیر قرار داد.
برنامهای بنویسید که توان دوم چند عدد را با استفاده از تابع lambda و map() محاسبه و نمایش دهد.
پاسخ کد پایتون:
numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda number: number ** 2, numbers))
print("توان دوم اعداد:", squares)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: lambda برای تعریف توابع کوتاه و ساده استفاده میشود و map() یک تابع را روی تکتک عناصر یک مجموعه اجرا میکند.
برنامهای بنویسید که از بین چند عدد، اعدادی را که بر ۱۳ بخشپذیر هستند پیدا کند و نمایش دهد.
پاسخ کد پایتون:
numbers = [13, 26, 35, 39, 50, 52, 64, 78]
divisible_numbers = list(filter(lambda number: number % 13 == 0, numbers))
print("اعداد بخشپذیر بر 13:", divisible_numbers)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: در filter() فقط عناصری باقی میمانند که شرط مشخصشده برای آنها مقدار True داشته باشد. عملگر % نیز باقیمانده تقسیم را محاسبه میکند.
برنامهای بنویسید که دو عدد را بهعنوان ابتدا و انتهای یک محدوده دریافت کند و تمام اعداد اول موجود در آن محدوده را نمایش دهد.
پاسخ کد پایتون:
start = int(input("ابتدای محدوده را وارد کنید: "))
end = int(input("انتهای محدوده را وارد کنید: "))
prime_numbers = []
for number in range(start, end + 1):
if number < 2:
continue
is_prime = True
for divisor in range(2, int(number ** 0.5) + 1):
if number % divisor == 0:
is_prime = False
break
if is_prime:
prime_numbers.append(number)
print("اعداد اول:", prime_numbers)
مراحل حل:
نمونه ورودی:
محاسبه:
اعداد اول بین ۱۰ و ۳۰ عبارتاند از: 11، 13، 17، 19، 23، 29
خروجی:
نکته: عدد اول بزرگتر از 1 است و فقط بر 1 و خودش بخشپذیر است. در این کد بهجای بررسی تمام اعداد تا خود عدد، فقط تا جذر آن بررسی میشود که تعداد محاسبات را کاهش میدهد.

در سطح پیشرفته، سوال ها به مفاهیمی مانند بازگشت (Recursion)، شی گرایی، توابع پیشرفته، کار با فایل و ساختارهای داده نیاز دارند. در این بخش، نمونه سوالات برنامه نویسی پایتون با جواب را با تمرکز بر مفاهیم کاربردی و مسائل چالشبرانگیزتر ارائه میکنیم تا مهارت حل مسئله و پیادهسازی الگوریتمها تقویت شود.
برنامهای بنویسید که یک عدد طبیعی را دریافت کند و مجموع اعداد ۱ تا آن عدد را با استفاده از تابع بازگشتی محاسبه و نمایش دهد.
پاسخ کد پایتون:
def sum_numbers(number):
if number <= 1:
return number
return number + sum_numbers(number - 1)
number = int(input("عدد را وارد کنید: "))
result = sum_numbers(number)
print("مجموع اعداد طبیعی:", result)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: در تابع بازگشتی، تابع خودش را فراخوانی میکند و حتما باید یک شرط توقف داشته باشد تا فراخوانیها بینهایت ادامه پیدا نکنند.
برنامهای بنویسید که تعداد جملههای دنباله فیبوناچی را دریافت کند و با استفاده از تابع بازگشتی، جملههای این دنباله را نمایش دهد.
پاسخ کد پایتون:
def fibonacci(number):
if number <= 1:
return number
return fibonacci(number - 1) + fibonacci(number - 2)
count = int(input("تعداد جملهها را وارد کنید: "))
print("دنباله فیبوناچی:")
for number in range(count):
print(fibonacci(number), end=" ")
مراحل حل:
نمونه ورودی:
محاسبه:
0، 1، 1، 2، 3، 5، 8، 13
خروجی:
دنباله فیبوناچی: 0 1 1 2 3 5 8 13
نکته: این روش برای تعداد جملههای زیاد به دلیل فراخوانیهای تکراری بازگشتی، کارایی پایینی دارد و برای مسائل بزرگتر بهتر است از روشهای بهتر استفاده شود.
برنامهای بنویسید که یک عدد صحیح نامنفی را دریافت کند و با استفاده از تابع بازگشتی، نمایش باینری آن را محاسبه و نمایش دهد.
پاسخ کد پایتون:
def decimal_to_binary(number):
if number < 2:
return str(number)
return decimal_to_binary(number // 2) + str(number % 2)
number = int(input("عدد دهدهی را وارد کنید: "))
binary = decimal_to_binary(number)
print("عدد باینری:", binary)
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی: عدد باینری: 1101
نکته: این تابع برای اعداد صحیح نامنفی نوشته شده است. در هر مرحله، // خارجقسمت صحیح و % باقیمانده تقسیم را به دست میآورد.
برنامهای بنویسید که یک کلاس برای اطلاعات یک دانشآموز ایجاد کند و با استفاده از type() و __name__، نام کلاس شیء را نمایش دهد.
پاسخ کد پایتون:
class Student:
def __init__(self, name):
self.name = name
student = Student("Ali")
class_name = type(student).__name__
print("نام کلاس:", class_name)
مراحل حل:
نمونه ورودی:
محاسبه: نوع شیء student برابر با کلاس Student است؛ بنابراین type(student).__name__ مقدار Student را برمیگرداند.
خروجی: نام کلاس: Student
نکته: type() نوع یا کلاس یک شیء را برمیگرداند و ویژگی __name__ نام آن کلاس را بهصورت رشته در اختیار ما قرار میدهد.
برنامهای بنویسید که یک کلاس پایه و یک کلاس فرزند ایجاد کند و با استفاده از type() و isinstance() نوع یک شیء را بررسی و نتیجه هر دو روش را نمایش دهد.
پاسخ کد پایتون:
class Animal:
pass
class Dog(Animal):
pass
dog = Dog()
print("نتیجه type:", type(dog) == Animal)
print("نتیجه isinstance:", isinstance(dog, Animal))
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: type() نوع دقیق شیء را بررسی میکند، اما isinstance() رابطه ارثبری را هم در نظر میگیرد. به همین دلیل شیء Dog با isinstance(dog, Animal) از نوع Animal نیز شناخته میشود.
برنامهای بنویسید که ابتدا و انتهای یک محدوده را دریافت کند و تمام اعداد آرمسترانگ موجود در آن محدوده را نمایش دهد.
پاسخ کد پایتون:
start = int(input("ابتدای محدوده را وارد کنید: "))
end = int(input("انتهای محدوده را وارد کنید: "))
armstrong_numbers = []
for number in range(start, end + 1):
digits = str(number)
power = len(digits)
total = sum(int(digit) ** power for digit in digits)
if total == number:
armstrong_numbers.append(number)
print("اعداد آرمسترانگ:", armstrong_numbers)
مراحل حل:
نمونه ورودی:
محاسبه:
برای عدد 153 داریم:
1³ + 5³ + 3³ = 1 + 125 + 27 = 153
بنابراین 153 یک عدد آرمسترانگ است.
خروجی:
نکته: در یک عدد آرمسترانگ، مجموع توان رقمهای آن با توان برابر تعداد رقمهای عدد، برابر خود عدد است. برای مثال، اعداد سهرقمی با مجموع مکعب رقمهایشان بررسی میشوند.
پاسخ کد پایتون:
matrix1 = [
[1, 2],
[3, 4]
]
matrix2 = [
[5, 6],
[7, 8]
]
result = []
for i in range(len(matrix1)):
row = []
for j in range(len(matrix1[i])):
row.append(matrix1[i][j] + matrix2[i][j])
result.append(row)
print("حاصل جمع دو ماتریس:")
for row in result:
print(row)
مراحل حل:
نمونه ورودی:
ماتریس اول:
ماتریس دوم:
محاسبه:
خروجی:
حاصل جمع دو ماتریس:
نکته: برای جمع دو ماتریس، هر عنصر باید با عنصر متناظر خود در ماتریس دیگر جمع شود؛ بنابراین دو ماتریس باید تعداد سطر و ستون یکسانی داشته باشند.
دو ماتریس را در پایتون تعریف کنید و حاصلضرب آنها را با استفاده از حلقههای تو در تو به دست آورید. برای ضرب ماتریسها، تعداد ستونهای ماتریس اول باید با تعداد سطرهای ماتریس دوم برابر باشد.
پاسخ کد پایتون:
matrix1 = [
[1, 2],
[3, 4]
]
matrix2 = [
[5, 6],
[7, 8]
]
result = []
for i in range(len(matrix1)):
row = []
for j in range(len(matrix2[0])):
total = 0
for k in range(len(matrix2)):
total += matrix1[i][k] * matrix2[k][j]
row.append(total)
result.append(row)
print("حاصل ضرب دو ماتریس:")
for row in result:
print(row)
مراحل حل:
نمونه اعداد ورودی:
ماتریس اول:
ماتریس دوم:
محاسبه:
خروجی:
حاصل ضرب دو ماتریس:
نکته: در ضرب ماتریسها، برای محاسبه هر عنصر باید سطر ماتریس اول در ستون ماتریس دوم ضرب داخلی شود. همچنین تعداد ستونهای ماتریس اول باید با تعداد سطرهای ماتریس دوم برابر باشد.
برنامهای بنویسید که زمان اجرای یک بخش از کد را اندازهگیری کند و مدت زمان سپریشده را بر حسب ثانیه نمایش دهد.
پاسخ کد پایتون:
import time
start_time = time.perf_counter()
total = 0
for number in range(1, 1000001):
total += number
end_time = time.perf_counter()
elapsed_time = end_time - start_time
print("مجموع اعداد:", total)
print("زمان اجرای برنامه:", elapsed_time, "ثانیه")
مراحل حل:
نمونه اعداد ورودی:
محاسبه:
خروجی:
نکته: time.perf_counter() برای اندازهگیری مدت زمان سپریشده مناسب است، چون برای سنجش بازههای زمانی با دقت بالا طراحی شده است. مقدار زمان اجرا ممکن است در هر بار اجرای برنامه متفاوت باشد.
برنامهای بنویسید که مسیر یک فایل را دریافت کند و حجم آن را بر حسب بایت نمایش دهد.
پاسخ کد پایتون:
import os
file_path = input("مسیر فایل را وارد کنید: ")
if os.path.isfile(file_path):
file_size = os.path.getsize(file_path)
print("حجم فایل:", file_size, "بایت")
else:
print("فایل موردنظر پیدا نشد.")
مراحل حل:
نمونه ورودی:
محاسبه:
خروجی:
نکته: تابع os.path.getsize() اندازه فایل را بر حسب بایت برمیگرداند. اگر بخواهید حجم فایل را به کیلوبایت نمایش دهید، میتوانید مقدار بهدستآمده را بر 1024 تقسیم کنید.
در این بخش، باید کدهای پایتون را با دقت بررسی کنید و خروجی آنها را قبل از اجرای برنامه تشخیص دهید. سوال ها روی مفاهیمی مانند متغیرها، شرطها، حلقهها و ساختارهای داده تمرکز دارند.
خروجی کد زیر چیست؟
پاسخ کد پایتون:
number = 15
if number % 2 == 0:
print("زوج")
else:
print("فرد")
پاسخ: فرد
مراحل حل:
نکته: عملگر % باقیمانده تقسیم را برمیگرداند. اگر باقیمانده تقسیم یک عدد بر 2 برابر صفر باشد، عدد زوج میباشد؛ در غیر این صورت عدد فرد است.
خروجی کد زیر چیست؟
پاسخ کد پایتون:
numbers = [10, 20, 30, 40]
numbers.append(50)
numbers[1] = 25
print(numbers)
print(numbers[-1])
خروجی:
مراحل حل:
نکته: در پایتون، اندیس لیست از 0 شروع میشود و اندیس -1 برای دسترسی به آخرین عنصر استفاده میشود.
خروجی کد زیر چیست؟
پاسخ کد پایتون:
total = 0
for number in range(1, 5):
total += number
print(total)
مراحل حل:
خروجی: 10
نکته: عدد انتهایی در range() شامل محدوده نیست؛ بنابراین range(1, 5) شامل اعداد 1، 2، 3 و 4 است.
سوالهای چهارگزینهای پایتون برای مرور مفاهیم و سنجش میزان یادگیری مناسب هستند؛ در ادامه به بررسی این سوالها میپردازیم و پاسخ صحیح همراه با توضیح کوتاه مشخص خواهد شد.
number = 17
result = number // 5
print(result)
گزینهها:
الف) 2
ب) 3
ج) 3.4
د) 4
پاسخ صحیح:
گزینه ب) 3
توضیح: عملگر // در پایتون برای تقسیم صحیح استفاده میشود و بخش اعشاری حاصل تقسیم را حذف میکند. بنابراین حاصل 17 // 5 برابر 3 است.
نکته: تفاوت // و / را در سوال های پایتون به خاطر داشته باشید؛ 17 / 5 مقدار 3.4 و 17 // 5 مقدار 3 را برمیگرداند.
student = {
"name": "Ali",
"score": 18
}
print(student.get("age", 20))
گزینهها:
الف) None
ب) 18
ج) 20
د) KeyError
پاسخ صحیح:
گزینه ج) 20
توضیح: کلید age در دیکشنری وجود ندارد، اما متد get() در صورت پیدا نکردن کلید، مقدار پیشفرضی را که به عنوان آرگومان دوم مشخص شده است برمیگرداند. در اینجا مقدار پیشفرض 20 است.
نکته: استفاده از get() برای دسترسی به کلیدهای احتمالیِ موجود در دیکشنری، از ایجاد KeyError در صورت نبودن کلید جلوگیری میکند.
numbers = [10, 20, 30]
values = (10, 20, 30)
numbers[0] = 50
گزینهها:
الف) هر دو متغیر قابل تغییر هستند.
ب) فقط numbers قابل تغییر است.
ج) فقط values قابل تغییر است.
د) هیچکدام قابل تغییر نیستند.
پاسخ صحیح:
گزینه ب) فقط numbers قابل تغییر است.
توضیح: numbers یک لیست (List) است و عناصر آن پس از ایجاد میتوانند تغییر کنند. در مقابل، values یک تاپل (Tuple) است و عناصر آن قابل تغییر نیستند.
نکته: قابلتغییر بودن یکی از تفاوتهای مهم لیست و تاپل در پایتون است. برای مثال، numbers[0] = 50 مجاز است، اما تغییر مستقیم values[0] باعث ایجاد TypeError میشود.
در این بخش، خطاهای رایج در کدهای پایتون را بررسی میکنیم و علت ایجاد خطا و روش اصلاح کد را مشخص میکنیم. این تمرینها به تقویت مهارت پیدا کردن و رفع خطا کمک میکنند.
کد دارای مشکل:
numbers = [1, 2, 4, 6, 7, 8, 10]
for number in numbers:
if number % 2 == 0:
numbers.remove(number)
print(numbers)
پاسخ کد اصلاحشده:
numbers = [1, 2, 4, 6, 7, 8, 10]
numbers = [number for number in numbers if number % 2 != 0]
print(numbers)
مراحل حل:
خروجی: [1, 7]
نکته: هنگام حذف چند عنصر از یک لیست، بهتر است در همان زمان روی خود لیست پیمایش نکنید. استفاده از List Comprehension یا ساخت یک لیست جدید، از تغییر همزمان ساختار لیست جلوگیری میکند.
کد دارای مشکل:
def add_name(name, names=[]):
names.append(name)
return names
print(add_name("Ali"))
print(add_name("Sara"))
print(add_name("Reza"))
خروجی کد اولیه:
پاسخ کد اصلاحشده:
def add_name(name, names=None):
if names is None:
names = []
names.append(name)
return names
print(add_name("Ali"))
print(add_name("Sara"))
print(add_name("Reza"))
خروجی کد اصلاحشده:
مراحل حل:
نکته: استفاده از لیست، دیکشنری یا سایر اشیای قابلتغییر بهعنوان مقدار پیشفرض تابع میتواند باعث حفظ تغییرات بین فراخوانیهای مختلف شود. استفاده از None و ساخت شیء جدید داخل تابع، الگوی رایج برای جلوگیری از این مشکل است.
کد دارای مشکل:
scores = ["18", "16", "20", "15"]
total = sum(scores)
average = total / len(scores)
print("میانگین:", average)
پاسخ کد اصلاحشده:
scores = ["18", "16", "20", "15"]
scores = [float(score) for score in scores]
total = sum(scores)
average = total / len(scores)
print("میانگین:", average)
مراحل حل:
خروجی: میانگین: 17.25
نکته: دریافت داده با input() نیز به صورت رشته انجام میشود؛ بنابراین هنگام انجام محاسبات ریاضی، معمولا باید ورودی را با int() یا float() به نوع عددی تبدیل کنید.
سوال های مفهومی به درک بهتر نحوه عملکرد پایتون کمک میکنند و مفاهیم مهم این زبان را بدون نیاز به نوشتن برنامههای طولانی مرور میکنند.
کد:
numbers = [10, 20, 30]
reference = numbers
copy_numbers = numbers[:]
reference.append(40)
copy_numbers.append(50)
print(numbers)
print(reference)
print(copy_numbers)
پاسخ:
توضیح:
نکته:
کپی سطحی برای لیستهای ساده مناسب است، اما اگر لیست شامل اشیای تودرتو و قابلتغییر باشد، ممکن است عناصر داخلی همچنان بین کپی و لیست اصلی مشترک باشند.
کد:
numbers1 = [1, 2, 3]
numbers2 = [1, 2, 3]
print(numbers1 == numbers2)
print(numbers1 is numbers2)
خروجی:
توضیح:
numbers1 = [1, 2, 3]
numbers2 = numbers1
print(numbers1 == numbers2)
print(numbers1 is numbers2)
در این حالت هر دو نتیجه True هستند، زیرا numbers2 به همان شیئی اشاره میکند که numbers 1 به آن اشاره دارد.
نکته:
برای مقایسه مقدار معمولا از == و برای بررسی هویت یک شیء از is استفاده میشود. استفاده از is برای مقایسه معمول مقادیر، روش درستی نیست.
کد:
class Student:
school = "Python Academy"
def __init__(self, name):
self.name = name
student1 = Student("Ali")
student2 = Student("Sara")
student1.name = "Reza"
Student.school = "Code Academy"
print(student1.name)
print(student2.name)
print(student1.school)
print(student2.school)
خروجی:
توضیح:
نکته: ویژگیهای نمونه با self به هر شیء اختصاص دارند، اما ویژگیهای کلاس به خود کلاس تعلق دارند و میتوانند بین نمونههای آن کلاس مشترک باشند.
اگر میخواهید نمونه سوالات برنامه نویسی پایتون با جواب را برای مطالعه و تمرین ذخیره کنید، نسخه PDF میتواند دسترسی به سوالها را ساده کند. فایل PDF این مجموعه را میتوانید برای مرور مباحث، تمرین حل مسئله و آمادگی آزمون در اختیار داشته باشید و در زمانهای مختلف به سوال ها مراجعه کنید.
تیم تحریریه رادمان با ارائه مقالات آموزشی و کاربردی در زمینه فناوری، کسبوکار، مهارتهای فنی و توسعه فردی، تلاش میکند دانش بهروز و عملی را در اختیار کاربران قرار دهد. هدف ما تولید محتوای مفید و قابل اجرا برای کمک به رشد و پیشرفت شما در دنیای دیجیتال و حرفهای است.
نویسنده مقاله : رادمان
برای شروع، آشنایی با متغیرها، انواع داده، ورودی و خروجی، شرطها، حلقهها و ساختارهای داده پایه مانند لیست و دیکشنری کافی است.
میتوانید ابتدا سوال ها را بدون مشاهده جواب حل کنید، زمان مشخصی برای پاسخگویی در نظر بگیرید و در پایان پاسخها را بررسی کنید. سوال هایی که اشتباه حل کردهاید، برای مرور مجدد مناسبتر هستند.
بله، این سوال ها باعث میشوند ترتیب اجرای دستورات، تغییر مقدار متغیرها و رفتار ساختارهایی مانند شرط، حلقه و لیست را دقیقتر بررسی کنید و درک بهتری از کد داشته باشید.
بله، حل مسئله در کنار یادگیری مباحث پایتون به درک بهتر مفاهیم و تقویت مهارت کدنویسی کمک میکند. بهتر است ابتدا سوال را بدون دیدن پاسخ حل کنید و سپس راهحل خود را با پاسخ مقایسه کنید.
این مجموعه از سوال های مقدماتی تا پیشرفته را پوشش میدهد؛ بنابراین میتوانید بر اساس سطح فعلی خود، از سوال های سادهتر شروع کرده و به تمرینهای چالشبرانگیزتر برسید.