صفحهای که پیش روی شما قرار دارد، به آموزش پایتون پیشرفته به صورت رایگان میپردازد. در این آموزش از سورس کد چند پروژه استفاده شده و این پروژهها به صورت قدم به قدم، در طول این آموزش کدنویسی میشوند.
پیش نیاز این دوره آموزش پایتون پیشرفته رایگان، آشنایی کلی با سینتکس پایتون و انجام پروژههای سادهتر پیش از این است. در ادامه، لینک دسترسی به چند محتوای آموزشی پایتون آورده شده است که در برخی از آنها به آموزش پروژه های پایتون برای مبتدیان پرداختهایم. برخی دیگر نیز شامل پروژههای پیشرفته هستند.
- پروژه پایتون رایگان برای تمرین کدنویسی + سورس کد
- پروژههای پایتون برای افراد مبتدی و حرفهای (1)
- پروژههای پایتون برای افراد مبتدی و حرفهای (2)
- 25 پروژه پایتون آسان برای افراد مبتدی
- آموزش پروژه محور پایتون | رایگان با سورس کد
حالا بیایید آموزش را آغاز کنیم!
آموزش پایتون پیشرفته رایگان: شمارش روزهای بارانی
در این بخش از آموزش پایتون پیشرفته رایگان، من شما را برای شمارش روزهای بارانی از طریق یک کار محاسباتی با پایتون راهنمایی میکنم. تصور کنید یک سری داده دارید که نشان دهنده میزان بارندگی هر روز سال، در یک شهر معین است.
برای انجام این کار محاسباتی، ابتدا باید دادههای مربوط به روزهای بارانی در سال را دانلود کنید. این دادهها از اینجا قابل دانلود هستند.
import numpy as np
import pandas as pd
data = pd.read_csv("Seattle2014.csv")
print(data.head())
rainfall = data["PRCP"].values
inches = rainfall/25
(365,)
جدول شامل 365 مقدار است که میزان بارش روزانه را از 1 ژانویه تا 31 دسامبر 2014 بر حسب اینچ نشان میدهد.
قبل از این که این کار را ادامه دهیم، بیایید با استفاده از matplotlib نگاهی گذرا به هیستوگرام روزهای بارانی بیندازیم:
import matplotlib.pyplot as plt
import seaborn
seaborn.set()
plt.hist(inches, 40)
plt.show()

هیستوگرام بالا به ما یک ایده کلی از شکل دادهها میدهد. علیرغم این که شهر سیاتل به بارانی بودن معروف است، بارندگی در اکثر روزهای آن در سال 2014، نزدیک بشه صفر اندازه گیری شده است.
شمارش روزهای بارانی چگونه با محاسبات عددی ممکن است؟
این بخش از آموزش پایتون پیشرفته رایگان ما، بر محاسبات عددی برای شمارش روزهای بارانی در یک سال متمرکز است. بنابراین من برای حل این مشکل، بیشتر از یادگیری ماشین، بر محاسبات عددی تمرکز خواهم کرد.
اگر نمیدانید چگونه کار محاسبات عددی را در پایتون انجام دهید، بهتر است بدانید با استفاده از پکیج NumPy ، میتوانید به راحتی این کار را انجام دهید. پس بیایید برخی توابع ضروری NumPy را برای محاسبات عددی با پایتون استفاده کنیم.
با استفاده از توابع محاسبات عددی NumPy ، میتوانیم به انواع سؤالاتی که در مورد دادههای مربوط به بارش دریافت میکنیم، پاسخ دهیم. در اینجا چند نمونه از نتایجی را میبینید که میتوانیم برای شمارش روزهای بارانی با استفاده از پایتون محاسبه کنیم:
print("Number of days without rain: ", np.sum(inches == 0))
print("Number of days with rain: ", np.sum(inches != 0))
print("Number of days with rain more than 0.5 inches: ", np.sum(inches>0.5))
print("Number of days with rain < 0.2 inches: ", np.sum((inches > 0)& (inches < 0.2)))
Number days without rain: 215
Number days with rain: 150
Days with more than 0.5 inches: 37
Rainy days with < 0.1 inches: 75
امیدوارم این آموزش پایتون پیشرفته رایگان، برای شما مفید بوده باشد و بتوانید با استفاده از قدرت محاسبات عددی در پایتون، روزهای بارانی یک سال را بشمارید. پس از انجام این پروژه، میتوانید بازیهای بیشتری با دادهها انجام دهید. اگر پرسشی در این باره دارید، لطفا در بخش کامنتها بپرسید.
آموزش پایتون پیشرفته رایگان: ارسال ایمیل با پایتون
گاهی اوقات ممکن است در شرایطی قرار بگیریم که لازم باشد برای چندین نفر به صورت شخصی ایمیل بفرستیم. اگرچه فرمت این ایمیلها یکسان است، اما اطلاعاتی که در آنها وجود دارد، از گیرندهای به گیرنده دیگر متفاوت است. در این بخش از آموزش پایتون پیشرفته رایگان، به شما توضیح میدهم که چگونه میتوان با پایتون ایمیل بفرستیم.
ارسال ایمیل به صورت دستی کار زمانبری است و جای خطای بسیار زیادی دارد. پایتون به ما این امکان را میدهد که این فرآیند را به راحتی خودکارسازی کنیم. پس بیایید ببینیم چگونه میتوانیم با پایتون ایمیل ارسال کنیم.
از آنجایی که اسکریپت پایتون برای ارسال ایمیل به اکانت Gmail دسترسی پیدا میکند، باید آن را به حالت Allow less secure apps دربیاوریم تا برای این اکانت ON شود. این کار دسترسی برنامه پایتون ما را به اکانت شما آسانتر میکند. بنابراین توصیه میشود برای این منظور، یک حساب کاربری ایمیل موقت ایجاد کنید.
در مرحله بعد، برای ارسال ایمیل با پایتون، باید یک فایل متنی با نام template.txt ایجاد کنیم. این فایل متنی حاوی فرمت body ایمیل است:
Dear ${PERSON_NAME},
You have secured the following marks in your mid-term exams:
Math - ${MATH}
English - ${ENG}
Science - ${SCI}
فایل بعدی که باید داشته باشید، یک فایل CSV است. فایلی که من استفاده خواهم کرد، دارای جزئیاتی است که باید مکانهایی را در فایل template آن پر کنید. این شامل جزئیاتی است که باید برای گیرندگان ارسال شود و ممکن است یک فایل Excel یا CSV باشد.

بیایید کدنویسی کنیم!
پس از آماده شدن فایل CSV و فایل template ، اکنون زمان نوشتن کد ارسال ایمیلهای سفارشی با پایتون است. بیایید با وارد کردن ماژولهای لازم شروع کنیم:
import smtplib
import csv
from string import Template
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
حالا یک تابع برای خواندن فایل template.txt ایجاد میکنیم. تابع زیر، template object را که حاوی محتویات فایل template.txt است، برمیگرداند:
def read_template(filename):
with open(filename, ‘r’, encoding=’utf-8') as template_file:
template_file_content = template_file.read()
return Template(template_file_content)
اکنون باید سرور SMTP را پیکربندی کنیم. اگر میخواهید این اسکریپت را در این آموزش پایتون پیشرفته رایگان با دیگران به اشتراک بگذارید، قرار دادن آدرس اکانت و پسوورد در اسکریپت، کار درستی نیست. در عوض، از input () استفاده کنید تا به کاربر اجازه داده شود در هنگام اجرای اسکریپت، پسوورد خود را وارد کند:
MY_ADDRESS = *********@gmail.com #your gmail account address
PASSWORD = *********** #your password
s = smtplib.SMTP(host=’smtp.gmail.com’, port=587)
s.starttls()
s.login(MY_ADDRESS, PASSWORD)
اکنون آخرین مرحله از ساخت body ایمیل است. برای این کار باید:
- فایل CSV را مرور کنید و برای هر خط از فایل CSV یک پیام ایجاد کنید.
- با استفاده از تابع MIMEMultipart () یک پیام ایجاد کنید ،جزئیات (هر خط) را در template جایگزین کنید تا به body پیام بدهید و آن را در متغیر message ذخیره کنید.
- سپس پارامترهایی مانند from و to address ، و subject پیام را پیکربندی کنید. متغیر message را به body پیام وصل کنید.
- در نهایت، پیام را از طریق send_message () ارسال کنید.
# read the message template
message_template = read_template(‘template.txt’)
with open(“details.csv”, “r”) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=’,’)
# skip the first row as it is the header
next(csv_reader)
for row in csv_reader:
msg = MIMEMultipart() # create a message
# add in the actual person name to the message template
message=
message_template.substitute(PERSON_NAME=row[0],MATH=row[2],
ENG=row[3],SCI=row[4])
# Prints out the message body for our sake
print(message)
# setup the parameters of the message
msg[‘From’]=MY_ADDRESS
msg[‘To’]=lines[1]
msg[‘Subject’]=”Mid term grades”
# add in the message body
msg.attach(MIMEText(message, ‘plain’))
# send the message via the server set up earlier.
s.send_message(msg)
del msg
# Terminate the SMTP session and close the connection
s.quit()
در اینجا، کد نهایی خود را میبینید که باید اجرا کنید:
import smtplib
import csv
from string import Template
from email.mime.multipart import MIMEMultipart
from email.mime.text import MIMEText
def read_template(filename):
with open(filename, ‘r’, encoding=’utf-8') as template_file:
template_file_content = template_file.read()
return Template(template_file_content)
def main():
message_template = read_template(‘template.txt’)
MY_ADDRESS = ‘**********@gmail.com’
PASSWORD = ‘*************’
# set up the SMTP server
s = smtplib.SMTP(host=’smtp.gmail.com’, port=587)
s.starttls()
s.login(MY_ADDRESS, PASSWORD)
with open(“details.csv”, “r”) as csv_file:
csv_reader = csv.reader(csv_file, delimiter=’,’)
# the below statement will skip the first row
next(csv_reader)
for lines in csv_reader:
msg = MIMEMultipart() # create a message
# add in the actual person name to the message template
message = message_template.substitute(PERSON_NAME=row[0],MATH=row[2],
ENG=row[3],SCI=row[4])
print(message)
# setup the parameters of the message
msg[‘From’]=MY_ADDRESS
msg[‘To’]=lines[1]
msg[‘Subject’]=”Mid term grades”
# add in the message body
msg.attach(MIMEText(message, ‘plain’))
# send the message via the server set up earlier.
s.send_message(msg)
del msg
# Terminate the SMTP session and close the connection
s.quit()
if __name__ == ‘__main__’:
main()
در نهایت فراموش نکنید که پس از ارسال همه پیامها، SMTP connection را ببندید. امیدوارم این بخش از آموزش پایتون پیشرفته رایگان در مورد نحوه ارسال ایمیلهای شخصیسازی شده، مورد پسند شما واقع شده باشد.
آموزش پایتون پیشرفته رایگان: OTP Verification
آیا میدانید هر بار که فرآیند پرداخت را با یک تراکنش آنلاین انجام میدهید، چگونه یک OTP منحصر به فرد دریافت میکنید؟ هر شرکت راههای خود را به منظور ایجاد یک OTP برای تأیید دارد، اما اکثر شرکتها سیستمهای خود را برای تولید یک عدد تصادفی 6 رقمی برنامهریزی کردهاند. در این بخش آموزش پایتون پیشرفته و رایگان، من شما را با کار OTP Verification در پایتون آشنا میکنم. پس از خواندن این بخش ،میتوانید یک OTP منحصر به فرد برای هر شناسه ایمیل، به منظور کار OTP Verification ارسال کنید.
مراحل ایجاد یک سیستم OTP Verification با پایتون
OTP Verification فرآیند تأیید یک کاربر با ارسال یک رمز عبور منحصر به فرد است، تا کاربر بتواند قبل از تکمیل فرآیند ثبت نام یا پرداخت، تأیید شود. اغلب اوقات، در زمانهایی که پرداخت آنلاین انجام میدهیم، رمز عبور خود را فراموش میکنیم یا در هر پلتفرم آنلاینی اکانت میسازیم، OTP دریافت میکنیم. بنابراین، تنها هدف OTP تأیید هویت کاربر با ارسال یک رمز عبور منحصر به فرد است.
با دنبال کردن مراحل ذکر شده در این پروژه آموزش پایتون پیشرفته رایگان، میتوانیم به راحتی با پایتون یک اپلیکیشن برای تأیید OTP ایجاد کنیم:
- ایتدا یک عدد تصادفی 6 رقمی ایجاد کنید
- سپس عدد را در یک متغیر ذخیره کنید
- سپس باید برنامهای برای ارسال ایمیل بنویسیم
- هنگام ارسال ایمیل، از OTP باید به عنوان یک message استفاده کنیم
- در نهایت، باید دو ورودی کاربر را دریافت کنیم؛ ابتدا برای ایمیل کاربر و سپس برای OTP که دریافت کرده است
این فرآیند کامل ایجاد یک برنامه OTP Verification با استفاده از پایتون است. در بخش زیر، نحوه اجرای این مراحل برای OTP Verification را با استفاده از پایتون توضیح خواهم داد.
مراحل عملی ساخت برنامه OTP Verification با پایتون
امیدوارم اکنون متوجه شده باشید که OTP چیست و چگونه میتوانیم برای کار OTP Verification ، یک اپلیکیشن ایجاد کنیم. حال بیایید مراحل ذکر شده در بالا را برای ساخت یک اپلیکیشن OTP Verification ، به طور عملی دنبال کنیم. من با وارد کردن کتابخانه پایتونی که برای این کار نیاز داریم، کارم را شروع میکنم:
import os
import math
import random
import smtplib
اکنون یک عدد تصادفی ایجاد میکنم و آن را در متغیری ذخیره میکنم که در هنگام ارسال ایمیل به کاربران، از آن استفاده خواهم کرد:
digits="0123456789"
OTP=""
for i in range(6):
OTP+=digits[math.floor(random.random()*10)]
otp = OTP + " is your OTP"
msg= otp
اکنون قبل از اینکه به کار خود ادامه دهیم، باید پسوورد برنامه گوگل خود را داشته باشید تا بتوانید با استفاده از اکانت Gmail خود ایمیل بفرستید. برای این کار، باید مراحلی را که در اینجا ذکر شده است دنبال کنید. پس از ایجاد رمز عبور برنامه خود برای حساب Gmail ، یک key دریافت خواهید کرد. برای ارسال ایمیل به منظور OTP Verification با پایتون، آن key را کپی کرده و در کد زیر قرار دهید:
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login("Your Gmail Account", "You app password")
emailid = input("Enter your email: ")
s.sendmail('&&&&&&&&&&&',emailid,msg)
a = input("Enter Your OTP >>: ")
if a == OTP:
print("Verified")
else:
print("Please Check your OTP again")
Enter your email: aman@thecleverprogrammer.com
Enter Your OTP >>: 478348
Verified
هنگامی که این کد را اجرا میکنید، ایمیلی را وارد کنید که میخواهید یک OTP را با آن بفرستید و سپس OTP دریافتی را در ایمیل خود وارد کنید. این کد کاملی است که برای OTP Verification مورد استفاده قرار دادیم:
import os
import math
import random
import smtplib
digits="0123456789"
OTP=""
for i in range(6):
OTP+=digits[math.floor(random.random()*10)]
otp = OTP + " is your OTP"
msg= otp
s = smtplib.SMTP('smtp.gmail.com', 587)
s.starttls()
s.login("Your Gmail Account", "You app password")
emailid = input("Enter your email: ")
s.sendmail('&&&&&&&&&&&',emailid,msg)
a = input("Enter Your OTP >>: ")
if a == OTP:
print("Verified")
else:
print("Please Check your OTP again")
خلاصه
با این پروژه آموزش پایتون پیشرفته به صورت رایگان، میتوانید یک اپلیکیشن برای OTP Verification خود ایجاد کنید. کار بعدی که میتوانید انجام دهید، این است که از این منطق برای ایجاد همان برنامه در قالب یک رابط کاربری استفاده کنید. امیدوارم این پروژه به کار شما آمده باشد. اگر سؤالی در مورد آن داشتید، در کامنتها بپرسید.
آموزش پایتون پیشرفته رایگان: استقرار چت بات
در این بخش از آموزش پایتون پیشرفته به صورت راگیان، من با هوش مصنوعی یک چت بات بسیار ساده میسازم. من برای استقرار چت بات و پکیج Chatterbot در پایتون، از متد flask استفاده خواهم کرد. برای ساخت و استقرار موفقیتآمیز یک چت بات، باید با فریمورکهای flask و HTML آشنا باشید. بله بدیهی است، شما باید نحوه کار با پایتون و از همه مهمتر کتابخانه Chatterbot را به خوبی بدانید.
قبل از ساخت و استقرار چت بات، اجازه دهید برخی از اصول اولیه را درباره «چت بات چیست و چگونه کار میکند»، مطرح کنیم. اگر نمیخواهید اصول اولیه را مرور کنید، کد کامل را برای ساخت و استقرار چت بات در انتهای این بخش برایتان قرار دادهایم.
چت بات چیست؟ چگونه یک چت بات راه اندازی کنیم؟
چت بات یک برنامه کامپیوتری است که برای تعامل با انسان برنامه ریزی شده است. این برنامه برای پاسخ دادن به کاربران انسانی بر اساس درخواستها و مکالمات آنها طراحی شده است. اگر فکر میکنید چت بات یک فناوری جدید است، اشتباه میکنید. اولین چت بات به نام Eliza ، در سال 1966 در آزمایشگاه هوش مصنوعی MIT توسط جوزف وایزنبام ساخته شد تا مکالمات انسانی را تقلید کند.
اکنون، قبل از ساخت و استقرار چت بات، باید بدانید که کتابخانه chatterbot چیست. زیرا من برای ساخت چت بات خود، از این کتابخانه استفاده خواهم کرد.
کتابخانه Chatterbot در پایتون چیست؟
Chatterbot یک کتابخانه پایتون است که برای کاربران پاسخ تولید میکند. این کتابخانه از الگوریتمهای یادگیری ماشین از پیش آموزش دیده برای ارائه پاسخهای متنوع استفاده مینماید. ایجاد چت بات با استفاده از کتابخانه chatterbot در پایتون، کار سختی نیست. چت بات باید طوری طراحی شود که مستقل از زبان باشد، چرا که باید آموزشهای مختلفی را دریافت کند. چت بات از دادههای ارائه شده توسط کاربر تشکیل شده است.
چگونه چت بات خود را راه اندازی کنیم؟
در پایتون، ما Flask را داریم که در تسکهای توسعه وب برای هر برنامهای مفید است. از آنجایی که من قصد داریم چت بات خود را به عنوان یک وب اپلیکیشن مستقر کنم، امکان استقرار آن بدون استفاده از HTML و CSS وجود ندارد، زیرا اینها دو پکیج اصلی برای تسکهای توسعه وب هستند. بنابراین اگر قصد دارید به عنوان یک توسعه دهنده چت بات مشغول به کار شوید، به شما توصیه میکنم HTML و CSS را هم یاد بگیرید.
حالا بیایید برای ساخت و استقرار یک چت بات، شروع به کدنویسی کنیم. من با بخش HTML و CSS شروع میکنم، زیرا به عنوان پایهای برای چت بات ما کار میکند. بدون پایه، ما نمیتوانیم پروژهای را شروع کنیم. خب، حالا کدنویسی را آغاز کنیم:
index.html
AI Chatbot with Python
Hi! I'm Chatterbot
{{ reviewsTotal }}{{ options.labels.singularReviewCountLabel }}
{{ reviewsTotal }}{{ options.labels.pluralReviewCountLabel }}
{{ options.labels.newReviewButton }}
{{ userData.canReview.message }}