یادگیری مهارت کدنویسی با زبان برنامه‌نویسی پایتون را می‌توان معادل با تمرین پایتون دانست. به بیان دیگر، آموختن هر مهارت جدیدی نه‌تنها به کسب دانش تئوری نیاز دارد بلکه مستلزم تجربه است که این امر، با تمرین و مداومت در آن به‌دست می‌آید. در این مطلب از مجله فرادرس، گزیده‌ای از بهترین تمرین‌های پایتون در سطوح مختلف را با هم مرور می‌کنیم. صرف‌نظر از اینکه یادگیری پایتون را به‌تازگی شروع کرده‌اید یا اینکه با اصول پایه‌ای آن آشنا هستید اما نمی‌توانید به سطح بالاتری پیشرفت کنید، انجام این تمرینات، شما را تا حد زیادی در زمینه کدنویسی یاری می‌دهند.

فهرست مطالب این نوشته

پایتون، زبان برنامه‌نویسی همه‌منظوره‌ای است که در دامنه گسترده‌ای از زمینه‌ها و کاربرد‌ها مورد استفاده قرار می‌گیرد، درست برعکس زبان‌هایی – مانند SQL برای پایگاه داده – که برای اهداف خاص طراحی و توسعه یافته‌اند. نرم‌افزارها و سیستم‌های گوناگونی وجود دارند که با پایتون نوشته شده‌اند. پایتون در حوزه‌های داغ و محبوب هوش مصنوعی و یادگیری ماشین، کتابخانه‌ها و فریمورک‌های زیادی را در اختیار کاربران قرار می‌دهد که پیاده‌سازی مدل‌های دقیق و پیچیده را آسان می‌سازد. به‌طور مثال، چت‌بات هوش مصنوعی ChatGPT در پایتون، توسعه یافته است. حوزه بسیار مهم دیگر از کاربردهای پایتون، توسعه وب اپلیکیشن است. شرکت‌های بزرگی وجود دارند که از فریمورک وب محبوب پایتون، جنگو برای توسعه وب خود بهره می‌گیرند. پایتون همچنین برای تحلیل داده‌ها، بازی‌سازی، مدل‌های پیش‌بینی‌کننده در زمینه مالی و بسیاری موارد دیگر نیز کاربرد دارد. به همین دلیل یادگیری پایتون بسیار سودمند است و مستلزم تمرین و ممارست فراوان است.

برنامه نویس در حال فکر روی راه حل تمرین پایتون

تمرین پایتون

اکنون که تصمیم به یادگیری پایتون یا برداشتن گام بعدی در آن را دارید، می‌توانید محتوای این مطلب را به‌کار ببندید. تا هنگامی‌که به‌طور عملی اقدام به کدنویسی نکنید، نمی‌توانید بگویید که برنامه نویسی پایتون را بلد هستید. بنابراین اولین مورد که در اینجا به شما می‌گوییم این است که روش‌های برنامه‌نویسی و تمرین پایتون چیست.

یادگیری و تمرین پایتون با مطالعه کتاب

نخستین روش، روش سنتی کتاب خواندن است. می‌توانیم کتابی مناسب با سطح مهارتی کنونی خود انتخاب و مطالعه آن را شروع کنیم. اگر مبتدی هستید، کتابی را انتخاب کنید که مفاهیم پایه و مقدماتی پایتون را توضیح داده است. سپس، شروع به کدنویسی کرده و مفاهیم گوناگونی که فراگرفته‌اید را به‌طور عملی امتحان کنید.

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

بسیاری از افرادی که پایتون را یاد می‌گیرند، دانش تئوری خود را با کتاب‌های مناسب افزایش داده و برای تمرین پایتون منابع دیگری را بر می‌گزینند.

یادگیری و تمرین پایتون با مشاهده آموزش‌های ویدیویی

روش دیگری که برای یادگیری و تمرین پایتون وجود دارد، مشاهده‌ آموزش‌های ویدیویی رایگان و پولی متعددی است که در پلتفرم‌های گوناگون و محبوب وجود دارند. در این روش یادگیری مدرن‌تر، به‌سادگی می‌توانید کانال مربوطه متناسب با سطح مهارتی خود را پیدا کرده و بخش تئوری و همچنین تمرین پایتون را با آموزش‌های آن پیش ببرید. نقدی که می‌توان به این روش و به‌ویژه آموزش‌های رایگان آن وارد کرد، طولانی بودن – بیش از حد – مدت زمان برخی از این ویدیوها است. به‌طوری‌که شاید زمان زیادی صرف صحبت در مورد مباحث غیر ضروری شود. ضمن اینکه این ویدیوها ممکن است شامل تبلیغ باشند و همچنین به‌ محتوای آن نتوان به‌صورت قطعی اعتماد کرد. مانند روش قبلی می‌توانید حین مشاهده ویدیوها، همزمان در محیط توسعه خود نیز کدنویسی کنید و تمرین پایتون را انجام دهید.

اجرای کدهای پایتون در لپتاپ

پلتفرم فرادرس دارای دوره‌های آموزش متعددی در زمینه پایتون می‌باشد که بیشتر آن‌ها پایتون را به‌همراه کدنویسی و پروژه‌محور آموزش می‌دهند. این آموزش‌ها مباحث لازم متناسب برای سطوح مبتدی و حرفه‌ای را در بر می‌گیرند و کتابخانه و فریمورک‌های گوناگون را نیز شامل می‌شوند.

تمرین پایتون برای مبتدیان

در این قسمت به بیان تعدادی مسئله و تمرین پایتون پرداخته‌ایم که برای افراد دارای سطح مهارتی مبتدی مناسب هستند و آن‌ها را در یادگیری سریع‌تر مهارت‌های پایتونی یاری می‌دهند. همچنین، پاسخ این تمرینات را در قالب کدها تشریح کرده‌ایم. در تمرین مفاهیم پایه پایتون با مباحثی نظیر حلقه‌ها، جریان کنترل، انواع داده‌ها، عملگرها، لیست‌ها، رشته‌ها، ورودی-خروجی، توابع درونی و غیره مشغول خواهید شد.

تمرین ۱: محاسبه مجموع و ضرب ۲ عدد

در این تمرین قرار است تا عملیات ریاضی ضرب و جمع ۲ عدد را محاسبه کنیم. ۲ عدد صحیح داده می‌شود. ضرب این ۲ عدد، تنها در صورتی‌که کمتر از ۱۰۰ شود، برگردانده شده، در غیر این‌صورت مجموع این ۲ عدد چاپ می‌شود.

فرض اول

ورودی‌ها به‌صورت آورده شده در زیر هستند.

number1 = 20
number2 = 30

خروجی مورد انتظار به‌صورت آورده شده در زیر است.

The result is 600

فرض دوم

ورودی‌ها به‌صورت آورده شده در ادامه، هستند.

number1 = 40
number2 = 30

خروجی

خروجی مورد انتظار برای برنامه به‌صورت آورده شده در زیر است.

The result is 70

راهنمایی

موارد زیر را به‌عنوان راهنمایی می‌توانیم در نظر بگیریم.

  • تابعی تعریف می‌کنیم که ۲ عدد را به‌عنوان پارامترهای ورودی دریافت می‌کند.
  • حال، در یکی از توابع، ۲ عدد را ضرب کرده و حاصل آن را در متغیر product

     ذخیره می‌کنیم.

  • پس از آن، از شرط if به‌صورت product >1000

     استفاده می‌کنیم تا ببینیم که آیا حاصل‌ضرب، بزرگ‌تر از ۱۰۰ است یا خیر. در صورتی که پاسخ، «بله» باشد، مقدار product

    را بر می‌گرداند.

  • در غیر این‌صورت، به بلوک else

     رفته و مجموع ۲ عدد را محاسبه و بر می‌گرداند.

فردی در حال جست و جوی تمرین پایتون

پاسخ تمرین پایتون ۱

در ادامه، کدهای مربوط به پیاده سازی تمرین پایتون ۱ را آور‌ده‌ایم.

1def multiplication_or_sum(num1, num2):
2    # calculate product of two number
3    product = num1 * num2
4    # check if product is less then 1000
5    if product <= 1000:
6        return product
7    else:
8        # product is greater than 1000 calculate sum
9        return num1 + num2
10
11# first condition
12result = multiplication_or_sum(20, 30)
13print("The result is", result)
14
15# Second condition
16result = multiplication_or_sum(40, 30)
17print("The result is", result)

توضیح کدهای برنامه

در ادامه، توضیح مربوط به خطوط مهم کدهای پیاده‌سازی این تمرین را آورده‌ایم.

  • خط شماره ۱: تابعی به‌نام multiplication_or_sum

     تعریف کرده‌ایم که ۲ پارامتر به‌نام‌های num1

     و num2

     را دریافت می‌کند.

  • خط شماره ۳: اعداد ورودی را در هم ضرب و نتیجه را در متغیر product

     قرار می‌دهد.

  • خط شماره ۵: با استفاده از یک شرط if مقدار  product

    را می‌سنجیم، در صورتی‌که مقدار آن کمتر از ۱۰۰۰ باشد، product

     را برمی‌گرداند. در غیر این‌صورت، مجموع ۲ عدد ورودی را return

     می‌کند.

  • خط شماره ۱۲: تابعی که نوشتیم را با پارامترهای فرض اول – که مجموع ۲ عدد ورودی کمتر از ۱۰۰ می‌شود – فراخوانی و سپس نتیجه آن را در خروجی چاپ می‌کنیم.
  • خط شماره ۳: تابع را با پارامترهای فرض دوم – که مجموع ۲ عدد ورودی بیشتر از ۱۰۰ می‌شود – فراخوانی می‌کنیم. سپس نتیجه آن را در خروجی چاپ می‌کنیم.
نوشیدنی و لپتاپ روی میز و کدهای برنامه نویسی درون آن

تمرین ۲: چاپ مجموع عدد فعلی و عدد قبلی

در این تمرین، قصد نوشتن برنامه‌ای را داریم که ۱۰ عدد را پیمایش و در هر تکرار، مجموع عدد فعلی و قبلی را چاپ کند.

خروجی مورد انتظار

انتظار داریم تا برنامه ما خروجی زیر را چاپ کند.

Printing current and previous number sum in a range(10)
Current Number 0 Previous Number  0  Sum:  0
Current Number 1 Previous Number  0  Sum:  1
Current Number 2 Previous Number  1  Sum:  3
Current Number 3 Previous Number  2  Sum:  5
Current Number 4 Previous Number  3  Sum:  7
Current Number 5 Previous Number  4  Sum:  9
Current Number 6 Previous Number  5  Sum:  11
Current Number 7 Previous Number  6  Sum:  13
Current Number 8 Previous Number  7  Sum:  15
Current Number 9 Previous Number  8  Sum:  17

راهنمایی

از نکاتی که در زیر گفته شده، می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین بهره ببریم.

  • متغیری به‌نام previous_num

     می‌سازیم و به آن مقدار صفر را اختصاص می‌دهیم.

  • با استفاده از تابع range()

     و حلقه for

     ، ۱۰ عدد نخست را یک به یک پیمایش می‌کنیم.

  • سپس، عدد فعلی یا i

     ، عدد پیشین و مجموع هر دو عدد را در هر تکرار از حلقه نمایش می‌دهیم. در آخر، مقدار عدد پیشین را به عدد کنونی به‌صورت previous_num = i

     تغییر می‌دهیم.

پاسخ تمرین پایتون ۲

در زیر، کدهای مربوط به پیاده‌سازی دومین تمرین پایتون را آور‌ده‌ایم.

1print("Printing current and previous number and their sum in a range(10)")
2previous_num = 0
3
4# loop from 1 to 10
5for i in range(1, 11):
6    x_sum = previous_num + i
7    print("Current Number", i, "Previous Number ", previous_num, " Sum: ", x_sum)
8    # modify previous number
9    # set it to the current number
10    previous_num = i

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۲: در این خط متغیر previous_num

     ، تعریف و با صفر مقداردهی شده است.

  • خط شماره ۵: حلقه‌ای در این خطا تعریف شده است که ۱۰ مرتبه پیمایش می‌کند. متغیر این حقله، i

      در هر تکرار یک مقدار افزایش دارد.

  • خط شماره ۶: متغیر x_sum

     در این خط، در هر تکرار مقدار i

    را به مقدار عدد پیشین یا همان previous_num

     ، اضافه و در خود حفظ می‌کند.

  • خط شماره ۷: این خط از کد مقادیر i

    ، previous_num

    و  x_sum

    را به‌ شکلی قابل فهم برای کاربر چاپ می‌کند.

  • خط شماره ۱۰: عدد پیشین یا previous_num

    ، در اینجا اصلاح شده و برابر با عدد فعلی می‌شود.

تمرین ۳: چاپ کاراکترهای موجود در یک رشته با شماره ایندکس زوج

در این تمرین، می‌خواهیم کدهای برنامه‌ای را بنویسیم که رشته‌ای را از کاربر دریافت کرده و کاراکترهایی از آن را نمایش می‌هد که در موقعیت ایندکس زوجی واقع شده‌اند. لازم به یاد‌آوری است که شماره ایندکس توالی‌ها در پایتون، از صفر شروع می‌شود. به‌طور مثال، رشته‌ای با نام و مقدار str = “divanairuop”

 داریم. برنامه‌ای که می‌نویسیم، باید بتواند کاراکترهای d

 ، v

 ، n

 ، i

 و غیره – که ایندکس آن‌ها عددی زوج است – را چاپ کند.

خروجی مورد انتظار

پس، انتظار داریم خروجی برنامه برای رشته “divanairuop”

 به‌ شکل آورده شده در ادامه باشد.

Original String: divanairuop

Printing only even index chars

index[ 0 ] d

index[ 2 ] v

index[ 4 ] n

index[ 6 ] i

index[ 8 ] u

راهنمایی

از نکاتی که در زیر گفته شده، می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین بهره‌مند شویم.

  • برا‌ی دریافت یک رشته از کاربر، تابع Python input()

     را به‌کار می‌بریم.

  • با استفاده از تابع len()

     ، طول رشته ورودی را به‌دست می‌آوریم.

  • در ادامه کار، با استفاده از تابع range()

     و حلقه for

     ، هر یک از کاراکترهای رشته ورودی را پیمایش می‌کنیم.

  •  از ابتدا شروع می‌کنیم start = 0

    ، تا انتها stop = len(s)-1

    به‌صورت یکی در میان step =2

     پیش می‌رویم. علت اینکه مقدار گام را برابر ۲ قرار دادیم این است که تنها به شماره ایندکس‌های زوج نیاز داریم.

  • در هر تکرار از حلقه، برای چاپ کاراکترهای موجود در شماره ایندکس زوج کنونی از s[i]

     استفاده می‌کنیم.

پاسخ تمرین پایتون ۳

کدهای آورده شده در ادامه، پاسخ این تمرین را نشان می‌دهد.

1# accept input string from a user
2word = input('Enter word ')
3print("Original String:", word)
4
5# get the length of a string
6size = len(word)
7
8# iterate a each character of a string
9# start: 0 to start with first character
10# stop: size-1 because index starts with 0
11# step: 2 to get the characters present at even index like 0, 2, 4
12print("Printing only even index chars")
13for i in range(0, size - 1, 2):
14    print("index[", i, "]", word[i])

توضیح کدهای برنامه

در ادامه، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۲: در این خط، رشته ورودی را از کاربر دریافت کرده و در متغیر word

     قرار می‌دهیم. همان‌طور که پیش‌تر نیز گفتیم از تابع input()

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

  • خط شماره ۶: طول رشته ورودی را با استفاده از تابع len()

     به‌دست آورده و در متغیر size

     قرار می‌دهیم.

  • خط شماره ۱۳: در این خط حلقه‌ای تعریف کردیم که از ابتدا تا انتهای لیست را با گام‌های ۲ پیمایش می‌کند.

پاسخ تمرین پایتون ۳ با روش List Slicing

پاسخ این تمرین به‌صورت زیر خواهد بود.

1# accept input string from a user
2word = input('Enter word ')
3print("Original String:", word)
4
5# using list slicing
6# convert string to list
7# pick only even index chars
8x = list(word)
9for i in x[0::2]:
10    print(i)

توضیح کدهای برنامه

در زیر، خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را توضیح داده‌ایم.

  • خط شماره ۸: پس از اینکه ورودی را از کاربر دریافت کردیم، در این خط، آن را به ساختمان داده لیست پایتون تبدیل می‌کنیم.
  • خط شماره ۹: اکنون با یک حلقه و با استفاده از تکنیک «برش‌زنی لیست» (List Slicing) اعضای لیست را از ابتدا و با گام‌های ۲، یعنی ایندکس‌های ۰، ۲، ۴ و غیره چاپ می‌کنیم.

تمرین ۴: حذف n کاراکتر ابتدایی یک رشته

در این تمرین، قصد نوشتن برنامه را داریم که کاراکترهایی را از یک رشته حذف کند. به این‌صورت که از کاراکتر اول شروع کرده و تا موقعیت n

 پیش‌می‌رود و در نهایت، رشته جدید را بر می‌گرداند.

خروجی مورد انتظار

به‌طور مثال، موراد زیر را در نظر بگیرید.

  • با اجرای remove_chars(“divanairuop”, 5)

     خروجی برابر با airuop

     خواهد بود. به بیان دیگر، ۵ کاراکتر ابتدایی رشته ورودی حذف شده است.

  • یا اینکه، با اجرای remove_chars(“orange”, 1)

     ، نخستین کاراکتر رشته ورودی، حذف شده و خروجی برابر با range

     خواهد شد.

نکته مهم در این تمرین این است که مقدار n

 می‌بایست کوچکتر از طول رشته باشد تا منجر به بروز خطا نشود.

راهنمایی

از روش «برش‌زنی رشته» (String Slicing) برای دستیابی به یک زیر رشته استفاده می‌کنیم. به‌طور مثال، برای حذف ۴ کاراکتر ابتدایی یا به ‌عبارت دیگر، نادیده گرفتن آن کارکترها و باقی‌ماندن ادامه رشته، s[4:]

را به‌کار می‌بریم.

پاسخ تمرین پایتون ۴

کدهای پیاده‌سازی این تمرین را در ادامه آورده‌ایم.

1def remove_chars(word, n):
2    print('Original string:', word)
3    x = word[n:]
4    return x
5
6print("Removing characters from a string")
7print(remove_chars("divanairuop", 5))
8print(remove_chars("orange", 1))

توضیح کدهای برنامه

در ادامه، توضیحاتی را در رابطه با کدهای این تمرین بیان کرده‌ایم.

  • خط شماره ۱: تابعی به‌نام remove_chars(word, n)

     با ۲ پارامتر ورودی، تعریف کرده‌ایم. پارامتر word

     ، کلمه مورد نظر و پارامتر n

    ، مشخص‌کننده تعداد کاراکترهایی است که می‌بایست از ابتدای کلمه مورد نظر حذف شوند.

  • خط شماره ۳: با استفاده از تکنیک برش رشته، مقدار متغیر جدید x

     برابر با کاراکترهای n

     به بعد از کلمه word

     خواهد بود.

  • خطوط شماره ۷ و ۸: دو مثال از اجرای تابع ما را نشان می‌دهد.
توسعه دهنده با تبلتی بزرگ در دست که کدهای تمرین پایتون را نشان می دهد

تمرین ۵: بررسی مشابه بودن عنصر ابتدایی وانتهایی یک لیست

در این تمرین، می‌خواهیم کدهای مربوط به تابعی را بنویسیم که در صورت یکسان بودن اعداد ابتدا و انتهایی یک لیست، مقدار True

 و در صورت متفاوت بودن آ‌ن‌ها مقدار False

 را چاپ کند.

خروجی مورد انتظار

فرض کنید، لیست‌های numbers_x

 و numbers_y

 به شکل زیر به برنامه ما داده شده‌اند.

numbers_x = [10, 20, 30, 40, 10]
numbers_y = [75, 65, 35, 75, 30]

خروجی برنامه ما باید به‌صورت زیر باشد.

Given list: [10, 20, 30, 40, 10]
result is True

numbers_y = [75, 65, 35, 75, 30]
result is False

پاسخ تمرین پایتون ۵

در ادامه، کدهای مربوط به تمرین پنجم را آورده‌ایم.

1def first_last_same(numberList):
2    print("Given list:", numberList)
3    
4    first_num = numberList[0]
5    last_num = numberList[-1]
6    
7    if first_num == last_num:
8        return True
9    else:
10        return False
11
12numbers_x = [10, 20, 30, 40, 10]
13print("result is", first_last_same(numbers_x))
14
15numbers_y = [75, 65, 35, 75, 30]
16print("result is", first_last_same(numbers_y))

توضیح کدهای برنامه

توضیحات مربوط به این تمرین را در ادامه آورده‌ایم.

  • خط شماره ۱: در این خط، تابعی به‌نام first_last_same

     تعریف کرده‌ایم که پارامتری به‌نام numberList

     شامل لیستی از اعداد را دریافت می‌کند.

  • خطوط ۴ و ۵: در این خطوط عنصر ابتدایی و انتهایی لیست دریافت‌شده، به‌ترتیب در متغیرهای first_num

     و last_num

     قرار می‌گیرند. numberList[0]

    بیان‌گر عنصر ابتدایی لیست و numberList[-1]

    ، عنصر انتهایی لیست را بر می‌گرداند.

  • خط ۷: در این خط با یک شرط if، برابر بودن این ۲ متغیر را بررسی می‌کنیم. و همان‌طور که گفتیم که در صورت برابر بودن مقدار True و در غیر این صورت مقدار False برگشت داده می‌شود.

تمرین ۶: نمایش دادن اعداد بخش پذیر بر ۵ درون یک لیست

در این تمرین، لیستی شامل اعداد را پیمایش می‌کنیم و به چاپ اعدادی می‌پردازیم که بر ۵ بخش‌پذیر هستند.

خروجی مورد انتظار

فرض کنید لیستی به برنامه ما داده شده است که دارای مقدار مشخص شده به‌صورت زیر است.

Given list is  [10, 20, 33, 46, 55]
Divisible by 5
10
20
55

همان‌طور‌ که مشاهده می‌شود، برنامه ما اعدادی از این لیست که بر ۵ بخش‌پذیر هستند را چاپ کرده است.

پاسخ تمرین پایتون ۶

کدهای مربوط به این تمرین را در ادامه آورده‌ایم.

1num_list = [10, 20, 33, 46, 55]
2print("Given list:", num_list)
3print('Divisible by 5:')
4for num in num_list:
5    if num % 5 == 0:
6        print(num)

توضیح کدهای برنامه

توضیحات مربوط به کدهای تمرین گفته‌شده را در ادامه آورده‌ایم.

  • خط شماره ۱: در این خط لیستی شامل اعداد را تحت نام num_list

     به برنامه داده‌ایم.

  • خط شماره ۴: با پیمایش روی لیست دریافتی، باقی‌مانده هر یک از اعداد موجود در لیست بر ۵ را محاسبه می‌کنیم. سپس در صورتی که مقدار باقی‌مانده برابر با صفر باشد، آن را چاپ می‌کنیم.

تمرین ۷: نمایش تعداد رخداد زیر رشته‌ داده شده در یک رشته

در این تمرین، قصد نوشتن برنامه را داریم که تعداد ظاهر شدن زیررشته مشخص‌شده در یک رشته را پیدا می‌کند.

خروجی مورد انتظار

فرض کنید رشته‌ای به‌ شکل Emma is good developer. Emma is a writer

 داریم. اکنون می‌خواهیم بدانیم که زیررشته Emma

 چند مرتبه در درون این رشته تکرار شده است. انتظار داریم خروجی مانند زیر را دریافت کنیم.

Emma appeared 2 times

راهنمایی

برای حل می‌توانیم از نکات زیر استفاده کنیم.

  • از روش «برش‌زنی رشته».
  • می‌توانیم از متد count()

     که مربوط به رشته است استفاده کنیم.

پاسخ تمرین پایتون ۷

در ادامه، کدهای مربوط به این تمرین را آورده‌ایم.

1str_x = "Emma is good developer. Emma is a writer"
2# use count method of a str class
3cnt = str_x.count("Emma")
4print(cnt)

توضیح کدهای برنامه

در ادامه، توضیح مربوط به خطوط مهم کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: رشته‌ی ورودی برنامه را در str_x

     قرار می‌دهیم.

  • خط شماره ۳: عبارت مورد نظر را با استفاده از متد count()

     درون رشته ورودی جستجو و درون متغیر cnt

     ذخیره می‌کنیم.

پاسخ تمرین پایتون ۷ بدون متد رشته

در ادامه، کدهای مربوط به این تمرین را آورده‌ایم.

1def count_emma(statement):
2    print("Given String: ", statement)
3    count = 0
4    for i in range(len(statement) - 1):
5        count += statement[i: i + 4] == 'Emma'
6    return count
7
8count = count_emma("Emma is good developer. Emma is a writer")
9print("Emma appeared ", count, "times")

توضیح کدهای برنامه

توضیح مربوط به کدهای این روش حل تمرین پایتون را در زیر آورده‌ایم.

  • خط شماره ۱: تابعی به‌نام count_emma(statement)

     تعریف کرده‌ایم که عبارت ورودی را دریافت می‌کند.

  • خط شماره ۴: در این خط حلقه‌ای تعریف کرده‌ایم که به تعداد عناصر رشته ورودی پیمایش می‌کند.
  • خط شماره ۵: در هر مرحله از پیمایش عبارت ورودی، بررسی می‌کند که آیا کاراکتر فعلی به همراه به همراه ۳ کاراکتر بعد از آن برابر با رشته Emma

     می‌شود یا خیر. این مورد برای تمامی کاراکترها انجام شده و تعداد رخداد Emma

    در متغیر count

     حفظ می‌شود.

  • خط شماره ۶: در نهایت نیز مقدار count

    برگردانده می‌شود.

دانشجویی در حال کاوش در تمرین پایتون

تمرین ۸: چاپ الگو

در این تمرین می‌خواهیم الگویی مشخص را چاپ کنیم.

خروجی مورد انتظار

در نهایت، می‌بایست خروجی شبیه آنچه در ادامه آورده شده، به‌دست بیاید.

1 
2 2 
3 3 3 
4 4 4 4 
5 5 5 5 5

راهنمایی

برای چاپ الگوی داده شده می‌توانیم از حلقه for

 استفاده کنیم.

پاسخ تمرین پایتون ۸ بدون متد رشته

کدهای مربوط به این تمرین را در زیر، آورده‌ایم.

1for num in range(10):
2    for i in range(num):
3        print (num, end=" ") #print number
4    # new line after each row to display pattern correctly
5    print("n")

توضیح کدهای برنامه

در ادامه توضیح مربوط به کدهای این تمرین را بیان کرده‌ایم.

  • خط شماره ۱: حلقه اول و بیرونی ما را نشان می‌دهد. این حلقه ۱۰ مرتبه تکرار می‌شود. متغیر این حلقه، num

     نام دارد.

  • خط شماره ۲: بیان‌گر حلقه دوم یا درونی است که تا متغیر num

    پیمایش می‌کند.

  • خط شماره ۳: مقدار num

    به‌همراه یک فاصله درج می‌شود.

  • خط شماره ۵: با درج n

     ، اشاره‌گر چاپ به خط بعد می‌رود تا پترن به‌درستی تشکیل – یا چاپ – شود.

تمرین ۹: بررسی متقارن بودن عدد

در این تمرین، هدف، نوشتن برنامه‌ای است که بررسی کند آیا عدد دریافتی یک عدد متقارن است یا خیر. «عدد متقارن» (Palindrome Number)، عددی است که با وارون خود برابر است. به‌طور مثال عدد ۴۵۴ یک عدد متقارن است. زیرا پس از وارون کردن آن، با همین عدد رو به رو خواهیم شد.

خروجی مورد انتظار

فرض کنید عدد مانند ۱۲۱ را به برنامه می‌دهیم. برنامه پس از بررسی متقارن بودن آن، به ما اعلام می‌کند که این عدد، یک عدد متقارن است یا خیر. در ادامه، خروجی برنامه با ۲ عدد ورودی ۱۲۱ و ۱۲۵ را آورده‌ایم و نتیجه‌ای مشابه آنچه مشاهده می‌کنید را دریافت کرده‌ایم.

original number 121
Yes. given number is palindrome number

original number 125
No. given number is not palindrome number

راهنمایی

نکات گفته شده در زیر را می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین به‌کار ببریم.

  • عدد دریافتی به‌عنوان ورودی را وارون کرده و آن را در متغیر دیگری نگه داریم.
  • اگر شرط if

     برای بررسی یکسان بودن عدد اصلی و عدد وارون استفاده می‌کنیم. اگراین اعداد همانند بودند، مقدار True

      برگردانده می‌شود.

لپتاپی شامل کدهای برنامه نویسی

پاسخ تمرین پایتون ۹

در ادامه، کدهای مربوط به این تمرین را آورده‌ایم.

1def palindrome(number):
2    print("original number", number)
3    original_num = number
4    
5    # reverse the given number
6    reverse_num = 0
7    while number > 0:
8        reminder = number % 10
9        reverse_num = (reverse_num * 10) + reminder
10        number = number // 10
11
12    # check numbers
13    if original_num == reverse_num:
14        print("Given number palindrome")
15    else:
16        print("Given number is not palindrome")
17
18palindrome(121)
19palindrome(125)

توضیح کدهای برنامه

توضیحات مربوط به خطوط کدهای پیاده‌سازی این تمرین را در ادامه، توضیح داده‌ایم.

  • خط شماره ۱: تابعی به‌نام palindrome(number)

      تعریف کرده‌ایم که یک عدد را به‌عنوان پارامتر ورودی دریافت می‌کند.

  • خط شماره ۲: عدد دریافتی در متغیر original_num

     ، به‌عنوان عدد اصلی حفظ می‌شود.

  • خطوط شماره ۶ تا ۱۰: عدد را وارون کرده و در متغیر reverse_num

     ذخیره می‌کند.

  • خط شماره ۱۳: بررسی می‌کنیم که آیا مقدار عدد اصلی یا original_num

    با وارون آن reverse_num

    برابر است یا خیر.

  • خطوط شماره ۱۴ تا ۱۶: نتیجه متقارن بودن عدد را چاپ می‌کند.

تمرین ۱۰: ایجاد لیستی جدید از ۲ لیست با شرایط گفته شده

در این تمرین، قصد نوشتن برنامه‌ای را داریم که با استفاده از شرطی که در ادامه آورده‌ایم، از ۲ لیست موجود حاوی اعداد، لیست جدیدی را ایجاد کند. لیست جدید می‌بایست شامل اعداد فرد از لیست اول و اعداد زوج از لیست دوم باشد.

خروجی مورد انتظار

فرض می‌کنیم که لیست‌هایی از اعداد مانند آنچه در ادامه آورده‌ایم، به برنامه داده شده است.

list1 = [10, 20, 25, 30, 35]
list2 = [40, 45, 60, 75, 90]

انتطار داریم که پس از اجرای برنامه، نتایجی مشابه آنچه در ادامه آورده‌ایم را دریافت کنیم.

result list: [25, 35, 40, 60, 90]

راهنمایی

از نکاتی که در زیر گفته شده، می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین استفاده کنیم.

  • لیستی خالی به‌نام result_list

     ایجاد می‌کنیم.

  • با استفاده از حلقه for

     لیست نخست را پیمایش می‌کنیم.

  • در هر تکرار ، بررسی می‌کنیم مه عدد جاری فرد است یا خیر. این مقایسه با فرمول num % 2 != 0

      انجام می‌شود. به بیان ساده‌تر بررسی می‌کند که باقی‌مانده عدد کنونی از تقسیم بر ۲، نامساوی با صفر باشد. در این‌صورت عدد کنونی، عددی فرد است. در صورت فرد بودن عدد مورد بررسی، آن را به لیست نتیجه اضافه می‌کنیم.

  • حالا، با استفاده از حلقه for

     لیست دوم را پیمایش می‌کنیم.

  • در هر تکرار، با فرمول num % 2 == 0

      بررسی می‌کنیم که عدد جاری، عددی زوج است یا خیر. در صورتی‌که باقی‌مانده عدد کنونی از تقسیم بر ۲ مساوی با صفر باشد. در این‌صورت عدد کنونی، عددی زوج است. در صورت زوج بودن عدد مورد بررسی، آن را به لیست نتیجه اضافه می‌کنیم.

  • لیست نتیجه را چاپ می‌کنیم.

پاسخ تمرین پایتون ۱۰

در ادامه، کدهای مربوط به پیاده‌سازی این تمرین را آورده‌ایم.

1def merge_list(list1, list2):
2    result_list = []
3    
4    # iterate first list
5    for num in list1:
6        # check if current number is odd
7        if num % 2 != 0:
8            # add odd number to result list
9            result_list.append(num)
10    
11    # iterate second list
12    for num in list2:
13        # check if current number is even
14        if num % 2 == 0:
15            # add even number to result list
16            result_list.append(num)
17    return result_list
18
19list1 = [10, 20, 25, 30, 35]
20list2 = [40, 45, 60, 75, 90]
21print("result list:", merge_list(list1, list2))

توضیح کدهای برنامه

در زیر، توضیحات مربوط به خطوط کدهای پیاده‌سازی این تمرین را توضیح داده‌ایم.

  • خط شماره ۱: تابعی به‌نام merge_list(list1, list2)

      تعریف کرده‌ایم که ۲ پارامتر را به‌عنوان ۲ لیست ورودی دریافت می‌کند.

  • خط شماره ۲: لیست جدید به‌نام result_list

     تعریف کرده‌ایم. این لیست، مقادیر نتیجه را در خود نگه می‌دارد.

  • خطوط شماره ۵ تا ۹: لیست اول را پیمایش می‌کند. هر یک از اعداد مورد بررسی را از نظر فرد بودن می‌سنجد، در صورتیکه این عددفرد باشد با متد append()‎ به لیست نتایج اضافه می‌کنیم.
  • خطوط شماره ۱۱ تا ۱۵: با پیمایش لیست دوم، اعداد زوج موجود در آن را به لیست نتیج اضافه می‌کنیم.
  • خط شماره ۱۶: در این خط، لیست نتایج یا result_list

    که اکنون حاوی اعداد فرد از لیست اول و اعداد زوج از لیست دوم است را بر می‌گرداند.

  • خطوط شماره ۱۸ و ۱۹: در این خطوط، ۲ لیست به‌عنوان ورودی‌های برنامه، تعریف شده‌اند.
  • خط شماره ۲۰: با فراخوانی تابع اصلی که برای این تمرین نوشتیم یعنی merge_list

     ، و پاس دادن ۲ لیست تعریف شده در خط قبل به آن، نتیجه را در خروجی چاپ می‌کنیم.

تمرین ۱۱: نوشتن برنامه ای برای بیرون کشیدن هر رقم از یک عدد صحیح با ترتیب معکوس

در این تمرین، قصد نوشتن برنامه‌ای را داریم که هر یک از رقم‌های یک عدد صحیح را با ترتیب معکوس از آن استخراج می‌کند.

خروجی مورد انتظار

فرض کنید عدد 7536

 را به ‌عنوان ورودی به برنامه بدهیم. در این‌صورت خروجی مورد انتظار می‌بایست برابر با “7 5 3 6”

 ، با کاراکتر خالی بین هر رقم باشد.

پاسخ تمرین پایتون ۱۱

در زیر، کدهای مربوط به پیاده‌سازی این پایتون را آور‌ده‌ایم.

1number = 7536
2print("Given number", number)
3while number > 0:
4    # get the last digit
5    digit = number % 10
6    # remove the last digit and repeat the loop
7    number = number // 10
8    print(digit, end=" ")

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: در این خط، متغیری به‌نام number

     تعریف کرده‌ایم که با 7536

     مقداردهی شده است.

  • خط شماره ۳: در این خط، حلقه while

      را تعریف کرده‌ایم که تا زمانی‌که مقدار number

     بزرگتر صفر باشد، به پیمایش خود ادامه می‌دهد.

  • خط شماره ۵: در این خط، باقی‌مانده عدد ورودی بر ۱۰ را محاسبه و در digit

     قرار می‌دهیم.

  • خط شماره ۷: در این خط، تقسیم صحیح عدد ورودی بر ۱۰ انجام و مجدد در number

     قرار می‌گیرد.

  • خط شماره ۸: در نهایت مقدار digit

     چاپ می‌شود و به ابتدای حلقه می‌رویم.

برنامه نویس در حال کدنویسی پایتون

تمرین ۱۲: محاسبه مالیات بر درآمد با پیروی قوانین داده شده

در این تمرین، قصد داریم تا برنامه‌ای بنویسیم که مالیات بر درآمد را طبق قوانین داده شده در جدول آورده شده در زیر محاسبه کند.

درآمد مشمول مالیات نرخ – به درصد
اولین ۱۰٫۰۰۰ دلار صفر
۱۰٫۰۰۰ دلار بعدی ۱۰
باقی‌مانده ۲۰

خروجی مورد انتظار

به‌طور مثال، فرض کنید درآمد مشمول مالیات باربر با ۴۵۰۰۰ است و مالیات قابل پرداخت به‌صورت آورده شده در زیر محاسبه می‌شود.

10000*0% + 10000*10%  + 25000*20% = $6000

پاسخ تمرین پایتون ۱۲

در ادامه، کدهای مربوط به پیاده‌سازی این تمرین را آورده‌ایم.

1income = 45000
2tax_payable = 0
3print("Given income", income)
4
5if income <= 10000:
6    tax_payable = 0
7elif income <= 20000:
8    # no tax on first 10,000
9    x = income - 10000
10    # 10% tax
11    tax_payable = x * 10 / 100
12else:
13    # first 10,000
14    tax_payable = 0
15
16    # next 10,000 10% tax
17    tax_payable = 10000 * 10 / 100
18
19    # remaining 20%tax
20    tax_payable += (income - 20000) * 20 / 100
21
22print("Total tax to pay is", tax_payable)

توضیح کدهای برنامه

در زیر، توضیحات مربوط به خطوط کدهای پیاده‌سازی این تمرین را توضیح داده‌ایم.

  • خط شماره ۱: میزان درآمد را در متغیری به‌نام income با مقدار ۴۵۰۰۰ ذخیره کرده‌ایم.
  • خط شماره ۲: میزان مالیات قابل پرداخت اولیه را با نام tax_payable

     و با صفر، مقداردهی کرده‌ایم.

  • خط شماره ۵ و ۶: با یک شرط if

     بررسی می‌کنیم که اگر درآمد کمتر یا مساوی ۱۰٫۰۰۰ باشد، مالیات قابل پرداخت برابر با صفر باشد.

  • خط شماره ۷ تا ۱۱: با elif

     بررسی می‌کنیم که اگر درآمد کمتر یا مساوی ۲۰٫۰۰۰ باشد، روی ۱۰٫۰۰۰ دلار اول مالیاتی محاسبه نشود. پس ۱۰٫۰۰۰ را از درآمد کسر می‌کنیم و مالیات قابل پرداخت با درصد مشخص شده را محاسبه می‌کنیم.

  • خط شماره ۱۲ تا ۲۰: در صورتی که میزان درآمد بیشتر از موارد بررسی شده در ۲ حالت قبلی باشد. برای هر ۳ حالت، میزان مالیات بر در آمد محاسبه می‌شود.
توسعه دهنده‌ای پشت لپتاپ های خود در حال کدنویسی پایتون

تمرین ۱۳: چاپ جدول ضرب از ۱ تا ۱۰

در این تمرین از مجله فرادرس می‌خواهیم جدول ضرب از اعداد ۱ تا ۱۰ را چاپ کنیم.

خروجی مورد انتظار

انتظار داریم تا خروجی این تمرین، به‌صورتی باشد که در ادامه مشاهده می‌کنید.

1  2 3 4 5 6 7 8 9 10 		
2  4 6 8 10 12 14 16 18 20 		
3  6 9 12 15 18 21 24 27 30 		
4  8 12 16 20 24 28 32 36 40 		
5  10 15 20 25 30 35 40 45 50 		
6  12 18 24 30 36 42 48 54 60 		
7  14 21 28 35 42 49 56 63 70 		
8  16 24 32 40 48 56 64 72 80 		
9  18 27 36 45 54 63 72 81 90 		
10 20 30 40 50 60 70 80 90 100 

راهنمایی

از نکاتی که در زیر گفته شده، می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین بهره ببریم.

  • حلقه for

     بیرونی را به منظور پیمایش اعداد ۱ تا ۱۰ ایجاد می‌کنیم. بدین‌ترتیب، تعداد کل تکرارهای حلقه بیرونی برابر با ۱۰ خواهد بود.

  • حلقه درونی را به منظور تکرار به تعداد ۱۰ مرتبه، ایجاد می‌کنیم.
  • برای هر تکرار حلقه بیرونی، حلقه داخلی ۱۰ مرتبه اجرا می‌شود.
  • در تکرار نخست حلقه‌های تو در تو، number

     برابر با ۱ است و در مرتبه بعدی برابر با ۲ می‌شود و به‌همین ترتیب تا ۱۰ پیش می‌رود.

  • در هر تکرار ار حلقه درونی، ضرب ۲ عدد را محاسبه می‌کنیم. به بیان دیگر، عدد بیرونی فعلی و عدد درونی فعلی را ضرب می‌کنیم.

پاسخ تمرین پایتون ۱۳

در ادامه، کدهای پیاده‌سازی این تمرین را بیان کرده‌ایم.

1for i in range(1, 11):
2    for j in range(1, 11):
3        print(i * j, end=" ")
4    print("tt")

توضیح کدهای برنامه

در ادامه، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: در این خط، حلقه بیرونی با متغیر i

      را تعریف کرده‌ایم که ۱۰ مرتبه تکرار می‌شود.

  • خط شماره ۲ : در اینجا هم حلقه داخلی با متغیر j

      را تعریف کرده‌ایم که این حلقه نیز برای ۱۰ مرتبه تکرار می‌شود.

  • خط شماره ۳: در این خط، مقادیر i

      و j

      در هم ضرب شده و نتیجه آن با یک کاراکتر فاصله، چاپ می‌شود.

تمرین ۱۴: چاپ الگوی نیم هرم رو به پایین

در این تمرین می‌خواهیم یک نیمه‌هرم رو به پایین را با کاراکترهای ستاره چاپ کنیم.

خروجی مورد انتظار

انتظار داریم تا خروجی این تمرین به ‌صورتی که در ادامه آورده شده تشکیل شود.

* * * * *  
* * * *  
* * *  
* *  
*

پاسخ تمرین پایتون ۱۴

کدهای مربوط به پیاده‌سازی این تمرین را در ادامه آور‌ده‌ایم.

1for i in range(6, 0, -1):
2    for j in range(0, i - 1):
3        print("*", end=' ')
4    print(" ")

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: در این خط حلقه‌ای خارجی با متغیر i

     تعریف کرده‌ایم که به‌طور معکوس ۵ مرتبه تکرار می‌شود.

  • خط شماره ۲: در این خط حلقه‌ای داخلی با متغیر j

      تعریف کرده‌ایم که از صفر تا i-1

      پیمایش می‌کند

  • خط شماره ۳: کاراکتر «ستاره» یا *

     را با یک کاراکتر فاصله چاپ می‌کند.

دختر دانشجو در حال کدنویسی

تمرین ۱۵: نوشتن تابعی برای به توان رساندن یک عدد به عددی دیگر

در این تمرین، قصد نوشتن تابعی به‌نام exponent

 را داریم که عدد base

 به توان exp

 را محاسبه می‌کند. نکته قابل توجه این است که exp

 یک عدد صحیح و مثبت و base

 نیز عددی صحیح است.

خروجی مورد انتظار

فرض اول: در این حالت، مقدار پایه را برابر با ۲ و مقدار توان را مساوی با ۵ در نظر گرفته‌ایم.

base = 2
exponent = 5

2 raises to the power of 5: 32 i.e. (2 *2 * 2 *2 *2 = 32)

فرض دوم: در این نمونه، مقدار پایه را برابر با ۵ و توان را برابر با ۴ در نظر گرفته‌ایم.

base = 5
exponent = 4

5 raises to the power of 4 is: 625 
i.e. (5 *5 * 5 *5 = 625)

پاسخ تمرین پایتون ۲

در ادامه، کدهای مربوط به پیاده‌سازی این تمرین را بیان کرده‌ایم.

1def exponent(base, exp):
2    num = exp
3    result = 1
4    while num > 0:
5        result = result * base
6        num = num - 1
7    print(base, "raises to the power of", exp, "is: ", result)
8
9exponent(5, 4)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: در این خط، تابعی به‌نام exponent

    تعریف کرده‌ایم که ۲ پارامتر به عنوان ورودی دریافت می‌کن.

  • خط شماره ۲: مقدار توان دریافت شده یا exp

     را در متغیری به‌نام num

     قرار می‌دهیم.

  • خطوط شماره ۴ تا ۶: در این خط از یک حلقه while

     استفاده کرده‌ایم که تا زمانی‌که مقدار num

     بزرگتر از صفر باشد، تکرار می‌شود. در ادامه، مقدار متغیر result

     - که در خط شماره ۳، تعریف و مقدار آن را برابر با ۱ قرار دادیم – را در base

     یا همان پایه ضرب کرده و در خودش قرار می‌دهیم. از متغیر num

    نیز یک واحد کم می‌کنیم.

تمرین پایتون تولید داده تصادفی

در این قسمت تمریناتی از پایتون را مورد بررسی قرار می‌دهیم که شما را در درک روش‌های تولید داده‌های رندوم یا اعداد تصادفی یاری می‌دهد. پس از انجام این تمرینات، انتظار می‌رود تا آشنایی بهتری با تکنیک‌های تولید داده تصادفی و کار با ماژول random

 کسب کرده باشید.

تمرین ۱۶: تولید ۳ عدد صحیح تصادفی بخش پذیر بر ۵ بین ۱۰۰ و ۹۹۹

در این تمرین، هدف نوشتن کدهایی است که بتوانند ۳ عدد تصادفی بین ۱۰۰ تا ۹۹۹ را تولید کنند که بر ۵ بخش پذیر هستند.

خروجی مورد انتظار

انتظار داریم تا برنامه ما خروجی زیر را چاپ کند.

Generating 3 random integer number between 100 and 999 divisible by 5
970, 285, 845, 

پاسخ تمرین پایتون ۱۶

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import random
2
3print("Generating 3 random integer number between 100 and 999 divisible by 5")
4for num in range(3):
5    print(random.randrange(100, 999, 5), end=', ')

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: ماژول random

     را ایمپورت کرده‌ایم، بدین ترتیب می‌توانیم از قابلیت‌های این ماژول در برنامه خود بهره‌مند شویم.

  • خط شماره ۴: با استفاده از حلقه for و تابع range()

     ‎ برای ۳ مرتبه، با متد randrange()‎

     عددی تصادفی تولید می‌کند.

تمرین ۱۷: انتخاب کاراکتری تصادفی

در این تمرین، می‌خواهیم برنامه‌ای بنویسیم که کاراکتری تصادفی از یک رشته مشخص را انتخاب و در خروجی چاپ کند.

خروجی مورد انتظار

انتظار داریم با تحویل عبارت رشته‌ای divanairuop

 به برنامه، خروجی زیر نمایش داده شود.

random char is  p

پاسخ تمرین پایتون ۱۷

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import random
2
3name = 'divanairuop'
4char = random.choice(name)
5print("random char is ", char)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۳: رشته مورد نظر را در متغیر name

     قرار می‌دهیم.

  • خط شماره ۴: با استفاده از متد choice()‎

      از ماژول random

     و ارسال رشته ورودی به آن، کارکتر انتخابی در متغیر char

     ذخیره می‌شود.

تمرین ۱۸: تولید رمز یک بار امن

در این تمرین، می‌خواهیم برنامه‌ای بنویسیم که رمز تصادفی یک‌بار مصرف و ایمنی را در قالب ۶ رقم تولید کند. در این تمرین از ماژول secrets

 استفاده می‌کنیم.

خروجی مورد انتظار

انتظار داریم تا برنامه ما خروجی رمز یک بار مصرفی به‌صورت آورده شده در ادامه را چاپ کند.

Generating 6 digit random OTP
Secure random OTP is  936418

پاسخ تمرین پایتون ۱۸

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import secrets
2
3#Getting systemRandom class instance out of secrets module
4secretsGenerator = secrets.SystemRandom()
5
6print("Generating 6 digit random OTP")
7otp = secretsGenerator.randrange(100000, 999999)
8
9print("Secure random OTP is ", otp)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: ماژول secrets

     را ایمپورت کرده‌ایم.

  • خط شماره ۴: یک نمونه از کلاس SystemRandom()‎

     موجود در ماژول secrets

     ایجاد کرده‌ایم.

  • خط شماره ۷: با متد randrange

     عددی ۶ رقمی به‌طور تصادفی تولید می‌شود.

تمرین ۱۹: محاسبه ضرب ۲ عدد اعشاری تصادفی

در این تمرین باید ۲ نکته زیر را مد نظر قرار دهیم.

  • نخستین عدد اعشاری تصادفی می‌بایست بین ۰٫۱ و ۱ باشد.
  • دومین عدد اعشاری تصادفی باید بین ۹٫۵ و ۹۹٫۵ باشد.

خروجی مورد انتظار

انتظار داریم تا برنامه ما، خروجی زیر را چاپ کند.

First Random float is  0.5319790431966002
Second Random float is  0.5319790431966002
Multiplication is  20.692261887234682

پاسخ تمرین پایتون ۱۹

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import random
2
3num1  = random.random()
4print("First Random float is ", num1)
5num2 = random.uniform(9.5, 99.5)
6print("Second Random float is ", num1)
7
8num3 = num1 * num2
9print("Multiplication is ", num3)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۴: از random.random()‎

      برای تولید عدد تصادفی اعشاری بین ۰ و ۱ استفاده می‌شود.

  • خط شماره ۶: با استفاده از random.uniform()‎

     ، عددی تصادفی در محدوده تعیین‌شده تولید می‌شود.

تمرین ۲۰: تاس انداختن با شرط گفته شده

در این تمرین، قصد نوشتن برنامه‌ای برای تاس انداختن – با ماژول رندوم که هر بار عددی تصادفی تولید می‌کند – را داریم. نکته قابل توجه در این تمرین این است که می‌خواهیم ۵ بار تاس را بیندازیم و در هر بار عدد یکسانی نشان داده شود.

خروجی مورد انتظار

انتظار داریم تا برنامه ما خروجی زیر را چاپ کند.

Randomly selecting same number of a dice
4
4
4
4
4

راهنمایی

برای اینکه عدد تصادفی یکسانی داشته باشیم، می‌توانیم از random.seed()‎

  استفاده کنیم.

توسعه دهندگان و لپتاپ بزرگ

پاسخ تمرین پایتون ۲۰

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import random
2
3dice = [1, 2, 3, 4, 5, 6]
4print("Randomly selecting same number of a dice")
5for i in range(5):
6    random.seed(25)
7    print(random.choice(dice))

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۳: لیستی حاوی اعداد صحیح ایجاد کرده‌ایم که بیان‌گر اعداد یک تاس هستند. قرار است به صورت تصادفی یکی از این اعداد انتخاب شود.
  • خط شماره ۵: از آنجایی‌که قرار است ۵ مرتبه تاس بیندازیم، حلقه‌ای برای این منظور تعریف کرده‌ایم.
  • خط شماره ۶: با تنظیم کردن مقدار random.seed()‎

     روی عددی دلخواه می‌توانیم در هر بار عتولید تصادفی ثابتی داشته باشیم.

  • خط شماره ۷: random.choice()

     ‎ مقداری تصادفی از لیستی که به ‌عنوان آرگومان به آن دادیم، انتخاب می‌کند. با وجود تنظیم seed

     ، این مقدار برابر با عنصری ثابت خواهد بود.

تمرین پایتون تاریخ و زمان

در این قسمت، تمرین‌های پایتون مربوط به تاریخ و زمان را با هم بررسی می‌کنیم. مرور این تمرین‌ها به شما درک خوبی از کار با تاریخ و زمان در پایتون می‌دهد.

تمرین ۲۱: چاپ تاریخ و زمان کنونی

در این تمرین، قصد نوشتن برنامه‌ای را داریم که ۱۰ عدد را پیمایش و در هر تکرار، مجموع عدد فعلی و قبلی را چاپ کند.

خروجی مورد انتظار

انتظار داریم تا برنامه ما خروجی زیر را چاپ کند.

2024-01-21 08:14:15.784821
08:14:15.784831

راهنمایی

برای نوشتن این تمرین، می‌توانیم از ماژول datetime

 یا time.strftime()‎

 استفاده کنیم.

پاسخ تمرین پایتون ۲۱ با ماژول datetime

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import datetime
2
3# Print date and time
4print(datetime.datetime.now())
5
6# only time
7print(datetime.datetime.now().time())

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: ماژول datetime

     را ایمپورت می‌کنیم.

  • خط شماره ۴: زمان با عناصری مانند سال، ماه، روز، ساعت، ثانیه، دقیقه و غیره چاپ می‌شود.
  • خط شماره ۷: زمان با مواردی نظیر ساعت، ثانیه، دقیقه و غیره چاپ می‌شود.

پاسخ تمرین پایتون ۲۱ با time.strftime

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

1from time import gmtime, strftime
2
3print(strftime("%Y-%m-%d %H:%M:%S", gmtime()))

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: gmtime

     و strftime

     را از ماژول time

     ایمپورت می‌کنیم.

  • خط شماره ۳: تاریخ و زمان را به کمک gmtime()‎

      و strftime()‎

     با فرمت مناسبی چاپ می‌کنیم.

تمرین ۲۲: تبدیل رشته به شی datetime

در این تمرین، قصد نوشتن برنامه‌ای را داریم که یک رشته را به شی تاریخ-زمان پایتون یا datetime تبدیل می‌کند.

خروجی مورد انتظار

به‌طور مثال، فرض کنید تاریخ را به‌ شکل آورده شده در زیر، دریافت کرده‌ایم. اکنون مي خواهیم‌ آن را به آبجکت datetime

 پایتون تبدیل کنیم.

date_string = "Feb 25 2020 4:20PM"

خروجی مورد انتظار، شبیه به چیزی خواهد بود که در ادامه آورده‌ایم.

2020-02-25 16:20:00

پاسخ تمرین پایتون ۲۲

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1from datetime import datetime
2
3date_string = "Feb 25 2020  4:20PM"
4datetime_object = datetime.strptime(date_string, '%b %d %Y %I:%M%p')
5print(datetime_object)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: کلاس datetime

     را از ماژول datetime

     ایمپورت می‌کنیم.

  • خط شماره ۳: رشته‌ای را در متغیر date_string

     قرار داده‌ایم.

  • خط شماره ۴: با متد strptime

     از datetime

     ، رشته مورد نظر را به یک شی datetime

     پایتون تبدیل می‌کنیم.

لپتاپی شامل کدهای برنامه نویسی روی میز

تمرین ۲۳: کم کردن یک هفته از تاریخ داده شده

در این تمرین، می‌خواهیم برنامه‌ای بنویسیم که تاریخ ورودی را به اندازه ۷ روز یا یک هفته کاهش دهد.

خروجی مورد انتظار

فرض کنید ورودی برنامه، تاریخ مشخصی به‌صورت آورده شده در زیر است.

given_date = datetime(2020, 2, 25)

خروجی مورد انتظار از برنامه‌مان را در ادامه آورده‌ایم.

2020-02-18

راهنمایی

از نکاتی که در زیر گفته شده، می‌توانیم به‌عنوان راهنمایی برای نوشتن این تمرین بهره ببریم.

  • استفاده از timedelta: کلاس timedelta

     از ماژول datetime

     برای مدیریت و نمایش اختلاف زمانی بین تاریخ‌ها به‌کار می‌رود. همچین امکان عملیاتی نظیر افزودن یا هش مقداری مشخص به تاریخ و زمان را فراهم می‌کند.

پاسخ تمرین پایتون ۲۳

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1from datetime import datetime, timedelta
2
3given_date = datetime(2020, 2, 25)
4print("Given date")
5print(given_date)
6
7days_to_subtract = 7
8res_date = given_date - timedelta(days=days_to_subtract)
9print("New Date")
10print(res_date)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: کلاس‌های datetime

     و timedelta

     را از ماژول datetime

     ایمپورت می‌کنیم.

  • خط شماره ۳: یک نمونه از شی تاریخ-زمان پایتون شامل تاریخ مورد نظر را در given_date

     قرار داده‌ایم.

  • خط شماره ۷: تعداد روزهایی که قار است از تاریخ مورد نظر کم شود را در متغیر days_to_subtract

     قرار داده‌ایم.

  • خط شماره ۸: با به‌کارگیری کلاس timedelta

     - پاس دادن days_to_subtract

     به آن، به صورتی که در کدها مشخص است – و کم کردن آن از تاریخ مورد نظر ( given_date

     )، تاریخ جدید به‌دست می‌اید که آن را چاپ می‌کنیم.

تمرین ۲۴: چاپ تاریخ در قالبی مشخص

در این تمرین، قصد نوشتن برنامه‌ای را داریم که تاریخ دریافتی را در قالب آورده شده در زیر چاپ کند.

Day_name Day_number Month_name Year

 

خروجی مورد انتظار

فرض کنید ورودی شبیه به تاریخی باشد که در ادامه آورده‌ایم.

given_date = datetime(2020, 2, 25)

خروجی مورد انتظار اجرای کدهای این تمرین می‌بایست شبیه به قالبی باشد که در ادامه آورده‌ایم.

Tuesday 25 February 2020

پاسخ تمرین پایتون ۲۴

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1from datetime import datetime
2
3given_date = datetime(2020, 2, 25)
4print("Given date is")
5print(given_date.strftime('%A %d %B %Y'))

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: ماژول تاریخ-زمان پایتون را ایمپورت کرده‌ایم.
  • خط شماره ۳: نمونه‌ای از شی datetime

     که تاریخ مورد را مشخص می‌کند را در given_date

     قرار داده‌ایم.

  • خط شماره ۵: به کمک متد strftime

    ، یک شی datetime

     را به یک رشته با فرمت خاص تبدیل می‌کند. در ادامه فرمت‌های به‌کار رفته در این مثال را توضیح داده‌ایم.

    • %A

       : نام کامل روز هفته را نشان می‌دهد.

    • %d

       : روز ماه به صورت عددی ۲ رقمی نمایش داده می‌شود.

    • %B

       : بیان‌گر نام کامل ماه است.

    • %Y

       : سال را به‌صورت ۴ رقمی مثل ۲۰۲۰ نشان می‌دهد.

تمرین ۲۵: یافتن روز هفته از تاریخ داده شده

در این تمرین پایتون، می‌خواهیم برنامه‌ای بنویسیم که از تاریخ داده شده به آن تحت عنوان ورودی، روز هفته را پیدا کند.

خروجی مورد انتظار

فرض کنید که نمونه‌ای از شی datetime

  به صورت زیر داریم.

given_date = datetime(2020, 7, 26)

اکنون، برنامه ما می‌بایست خروجی مناسب شبیه به نتیجه آورده شده در زیر را نشان دهد.

Sunday

پاسخ تمرین پایتون ۲۵ روش اول

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1from datetime import datetime
2
3given_date = datetime(2020, 7, 26)
4
5# to get weekday as integer
6print(given_date.today().weekday())
7
8# To get the english name of the weekday
9print(given_date.strftime('%A'))

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۱: کلاس datetime

     را از ماژول datetime

     ایمپورت می‌کنیم.

  • خط شماره ۳: یک نمونه از شی datetime

     با تاریخ مشخص شده ایجاد می‌کند.

  • خط شماره ۶: روز هفته را بر می‌گرداند که عددی بین ۰ تا ۶ است. در اینجا عدد ۶ – بیان‌گر روز دوشنبه – چاپ می‌شود.
  • خط شماره ۹: با توجه به فرمت مشخص شده نام روز هفته را چاپ می‌کند.

پاسخ تمرین پایتون ۲۵ با ماژول calendar

در زیر، کدهای مربوط به پیاده‌سازی این تمرین را آور‌ده‌ایم.

1import calendar
2from datetime import datetime
3
4given_date = datetime(2020, 7, 26)
5weekday = calendar.day_name[given_date.weekday()]
6print(weekday)

توضیح کدهای برنامه

در زیر، توضیح مربوط به خطوط اصلی کدهای پیاده‌سازی تمرین گفته شده را بیان کرده‌ایم.

  • خط شماره ۵: شماره روز هفته به عنوان ایندکس لیست calendar.day_name[]‍‌

     ‎، داده شده و بدین ترتیب عنوان روز هفته در خروجی چاپ می‌شود.

سوالات متداول

در این قسمت، برخی از پرسش‌های متداول در مورد تمرین پایتون را بیان ‌کرده‌ایم.

برای تمرین پایتون از چه برنامه ای استفاده کنیم؟

برای اجرای کدهای پایتون، می‌توانید پایتون را از سایت رسمی آن دانلود و روی سیستم خود نصب کنید، سپس از طریق محیط کدنویسی پیش‌فرض نصب شده با پایتون یا سایر IDE-ها، کدهای مربوط به تمرین پایتون را در آن نوشته و اجرا کنید. همچنین روش دیگر و آسان‌تر این است که از محیط‌های آنلاین برای کدنویسی و تمرین پایتون نظیر online-python استفاده کنیم. این محیط در آدرس «+» قابل دسترسی است و رابط کاربری ساده‌ای دارد.

تمرین پایتون شامل چه مواردی می شود؟

منظور از تمرین پایتون، اجرای عملی مفاهیمی است که به صورت تئوری آموخته‌ایم و می‌تواند شامل پیاده‌سازی هر نوع مفهومی در سطوح دشواری مختلف و همچنین کاربردهای گوناگون باشد.

جمع‌بندی

یکی از مهم‌ترین کارهایی که یک توسعه‌دهنده یا برنامه‌نویس پایتون – و به‌طور کلی هر زبان برنامه‌نویسی – می‌بایست در نظر داشته باشد شروع به تمرین عملی یا به اصطلاح دست به کُد شدن است. با انجام کدنویسی می‌توانیم مفاهیم یاد گرفته شده به‌صورت تئوری را به‌ شکل عملی، پیاده‌سازی و نتیجه آن را مشاهده کنیم. این کار، تثبیت آنچه فراگرفته‌ایم را به دنبال خواهد داشت.

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

source

توسط expressjs.ir