کار کردن با داده های متنی در پایتون — راهنمای کاربردی
یکی از مهمترین کتابخانههای توسعه داده شده برای «زبان برنامهنویسی پایتون» (Python Programming Language)، کتابخانه Pandas است. کتابخانه نرمافزاری Pandas با هدف «دستکاری» (Manipulation) و «تحلیل» (Analysis) دادهها طراحی شده است. به طور خاص، این کتابخانه ساختارهای دادهای و توابع لازم برای دستکاری جداول عددی و «دادههای سری زمانی» (Time-Series) را تعریف میکند. یکی از مهمترین کاربردهای کتابخانه Pandas، پردازش داده های متنی در پایتون است.
یکی از ساختارهای دادهای تعریف شده در کتابخانه Pandas جهت کار کردن با داده های متنی در پایتون (و دیگر دادهها از جمله عددی)، آرایههایی به نام «سری» (Series) است. ساختارهای داده سری، یک آرایه یکبُعدی برچسبگذاری شده است که توانایی ذخیره انواع داده با نوعهای دادهای مختلف (دادههای از نوع integer ،string ،float ،python objects و سایر موارد) را دارد. به مجموعه «برچسبهای محوری» (Axis Labels)، «شاخص» (Index) گفته میشود (منظور، برچسبهایی که برای هر آرایه یکبُعدی یا همان ستونها در نظر گرفته میشود).
برای درک بهتر ساختارهای داده سری در Pandas، میتوانید آنها را مانند یک صفحه فایل «اکسل» (Excel) تصور کنید. لازم نیست که برچسبها یا شاخصهای ساختارهای داده سری یکتا باشند. با این حال، باید «قابل Hash شدن» (Hashable) باشند. به یک «شیء» (Object) خاص، شیء قابل Hash شدن گفته میشود اگر و تنها اگر مقدار Hash (یا Hash Value) در طول عمر این شیء هیچگاه تغییر نکند (به یک تابع ()__hash__ احتیاج است) و بتوان این شیء را با اشیاء دیگر مقایسه کرد (به یک تابع ()__eq__ احتیاج است).
ساختارهای داده سری، از شاخصگذاری مبتنی بر اعداد «صحیح» (Integer) و «برچسب» (Label) پشتیبانی میکند و مجموعه متنوعی از توابع، برای انجام عملیات و دستکاری داده های متنی در پایتون را با استفاده از شاخصها، در اختیار برنامهنویسان و توسعهدهندگان قرار میدهد.
توابع لازم برای دستکاری داده های متنی در پایتون
برای انجام عملیات روی داده های متنی در پایتون و دستکاری آنها، مجموعهای از توابع پردازش دادههای «رشته» (String) یا متدهای رشته در پایتون برای ساختارهای داده سری تعریف شده است. این توابع، به برنامهنویسان و توسعهدهندگان اجازه میدهند تا به راحتی روی هر کدام از عناصر آرایه عملیات انجام دهند. یکی از ویژگی مهم این توابع، حذف خودکار «دادههای گمشده یا از دست رفته» (Missing Values) از مجموعههای داده است.
تمامی توابع تعریف شده توسط کتابخانه Pandas جهت انجام عملیات روی داده های متنی، توسط کلمه کلیدی str قابل دسترسی هستند. به طور کلی، نام این توابع با نام توابع اصلی و «تعبیه شده» (Built-in) متناظر آنها در کتابخانه استاندارد زبان پایتون برابری میکند.
تابع ()str.lower
یکی از توابع تعریف شده توسط کتابخانه Pandas برای دستکاری داده های متنی در پایتون، تابع ()str.lower است. تابع ()str.lower، تمامی دادههای متنی را به حروف کوچک تبدیل میکند (Lowercase). به عبارت دیگر، این تابع تمامی کاراکترهای نوشته شده با حروف بزرگ (Uppercase) را به حروف کوچک (Lowercase) تبدیل میکند. در صورتی کاراکتر نوشته شده با حروف بزرگ، در متن یافت نشود، این تابع، داده متنی اصلی را به عنوان خروجی تولید میکند.
تابع ()str.upper
یکی دیگر از توابع تعریف شده برای کار کردن با داده های متنی در پایتون با استفاده از کتابخانه Pandas، تابع ()str.upper است. این تابع، بر خلاف تابع قبلی، تمامی دادههای متنی را به حروف بزرگ تبدیل میکند (Uppercase). به عبارت دیگر، این تابع تمامی کاراکترهای نوشته شده با حروف کوچک (Lowercase) را به حروف بزرگ (Uppercase) تبدیل میکند. در صورتی کاراکتر نوشته شده با حروف کوچک، در متن یافت نشود، این تابع، داده متنی اصلی را به عنوان خروجی تولید میکند.
1# Import pandas package
2import pandas as pd
3
4# Define a dictionary containing employee data
5data = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'],
6 'Age':[27, 24, 22, 32],
7 'Address':['Delhi', 'Kanpur', 'Allahabad', 'Kannauj'],
8 'Qualification':['Msc', 'MA', 'MCA', 'Phd']}
9
10# Convert the dictionary into DataFrame
11df = pd.DataFrame(data)
12
13# converting and overwriting values in column
14df["Name"]= df["Name"].str.lower()
15
16print(df)
خروجی:
Address Age Name Qualification 0 Delhi 27 jai Msc 1 Kanpur 24 princi MA 2 Allahabad 22 gaurav MCA 3 Kannauj 32 anuj Phd
همانطور که در خروجی بالا قابل مشاهده است (شکل بالا dataframe تولید شده توسط کتابخانه Pandas را نشان میدهد)، تمامی مقادیر موجود در ستون Name به مقادیر با حروف کوچک تبدیل شدهاند.
در مثال بعدی، از دادههای موجود در فایل [+] برای نمایش نحوه عملکرد تابع ()str.upper استفاده میشود.
1# importing pandas package
2import pandas as pd
3
4# making data frame from csv file
5data = pd.read_csv("nba.csv")
6
7# converting and overwriting values in column
8data["Team"]= data["Team"].str.upper()
9
10# display
11data
خروجی:
همانطور که در شکل بالا قابل مشاهده است (dataframe تولید شده توسط کتابخانه Pandas)، تمامی دادههای متنی موجود در ستون Team به مقادیر متنی با حروف بزرگ تبدیل شدهاند.
تابع ()str.split
یکی دیگر از توابع تعریف شده برای دستکاری داده های متنی در پایتون و انجام عملیات رشتهای روی آنها، تابع ()str.split است. از این تابع، برای تکه تکه کردن یا جداسازی دادههای متنی به تعدادی «زیر رشته» (Substring) استفاده میشود. نحوه کار تابع ()str.split در کتابخانه Pandas بدین صورت است که پس از مشخص شدن یک رشته «جدا کننده» (Separator) یا «حائل» (Delimiter)، دادههای متنی بر اساس ظاهر شدن رشته جدا کننده یا حائل، به مجموعهای از زیررشتهها جداسازی میشود.
تابع ()split به طور پیش فرض در زبان برنامهنویسی پایتون تعریف شده است. با این حال، فرق اساسی این تابع با تابع ()str.split (در کتابخانه Pandas) این است که ()split تنها روی یک داده متنی (یک متغیر از نوع «رشته» (String)) عمل میکند، در حالی که تابع ()str.split، این توانایی را دارد که روی تمامی عناصر ساختارهای داده سری (Series) عملیات انجام دهد. پیشوند str. به مفسر پایتون اجازه میدهد تا میان تابع ()str.split و تابع ()split تمایز قائل شود و هنگام فراخوانی، تابع ()split مناسب را اجرا کند.
همانطور که پیش از این نیز اشاره شد، از تابع ()str.split برای تکه تکه کردن یا جداسازی دادههای متنی (string) در ساختارهای داده سری و شاخصهای آنها استفاده میشود. این تابع به محض ظاهر شدن رشته جدا کننده یا حائل، داده متنی را از هم جدا میکند. پارامترهای تابع ()str.split در کتابخانه Pandas به این صورت است:
(Series.str.split(self, pat=None, n=-1, expand=False
- پارامتر pat: رشته جدا کننده یا حائل را نمایش میدهد. یک رشته یا «عبارت منظم» (Regular Expression) است که با مشاهده آن، داده متنی به تعدادی زیر رشته تکه تکه یا جداسازی میشود. در صورتی که این پارامتر برای تابع مشخص نشود، تابع به طور خودکار، دادههای متنی موجود در ساختارهای داده سری و شاخصهای آنها را بر اساس «فضای خالی» (Whitespace) جداسازی میکند.
- پارامتر n: مقداری صحیح است و تعداد خروجیهای حاصل از عملیات جداسازی دادههای متنی را کنترل میکند.
1# importing pandas module
2import pandas as pd
3
4# Define a dictionary containing employee data
5data = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'],
6 'Age':[27, 24, 22, 32],
7 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Knnuaj'],
8 'Qualification':['Msc', 'MA', 'MCA', 'Phd']}
9
10# Convert the dictionary into DataFrame
11df = pd.DataFrame(data)
12
13# dropping null value columns to avoid errors
14df.dropna(inplace = True)
15
16# new data frame with split value columns
17df["Address"]= df["Address"].str.split("a", n = 1, expand = True)
18
19# df display
20print(df)
خروجی:
Address Age Name Qualification 0 N 27 Jai Msc 1 K 24 Princi MA 2 All 22 Gaurav MCA 3 Knnu 32 Anuj Phd
همانطور که در خروجی نمایش داده شده مشخص است، از آنجایی که مقدار پارامتر n برابر با 1 در نظر گرفته شده است، ستون Address در ساختارهای داده سری، تنها بر اساس اولین ظاهر شدن حرف a جداسازی میشود و نه بر اساس دیگر دفعات ظاهر شدن این حرف. به عبارت دیگر، با در نظر گرفتن مقدار 1 برای پارامتر n، حداکثر یک جداسازی در دادههای متنی رخ خواهد داد.
تابع ()str.replace
یکی دیگر از توابع تعریف شده برای دستکاری داده های متنی و انجام عملیات رشتهای روی آنها، متد Replace در پایتون است. از این تابع، برای جایگزین کردن دادههای متنی استفاده میشود. این تابع، همانند تابع پیشفرض ()replace در زبان پایتون عمل میکند، با این تفاوت که علاوه بر اینکه میتواند روی یک داده متنی (یک متغیر از نوع «رشته» (String)) عمل کند، این قابلیت را نیز دارد که روی ساختارهای داده سری و شاخصهای آنها نیز عملیات جایگزین کردن را انجام دهد. پیشوند str. به مفسر پایتون اجازه میدهد تا میان تابع ()str.replace و تابع ()replace تمایز قائل شود و هنگام فراخوانی، تابع ()replace مناسب را اجرا کند.
1# importing pandas module
2import pandas as pd
3
4# reading csv file from url
5data = pd.read_csv("nba.csv")
6
7# overwriting column with replaced value of age
8data["Age"]= data["Age"].replace(25.0, "Twenty five")
9
10# creating a filter for age column
11# where age = "Twenty five"
12filter = data["Age"]=="Twenty five"
13
14# printing only filtered columns
15data.where(filter).dropna()
خروجی:
همانطور که در خروجی نمایش داده شده در شکل بالا مشخص است، تمامی مقادیر موجود در ستون Age که مقدار age=25.0 دارند یا رشته Twenty five جایگزین شدهاند.
الحاق (Concatenation) دادههای متنی
یکی از توابع مفید تعریف شده برای دستکاری داده های متنی در پایتون و انجام عملیات رشتهای روی آنها، تابع ()str.cat است. از این تابع، برای الحاق (عناصر) یک آرایه متشکل از دادههای متنی (آرگومان ورودی تابع ()str.cat) به (عناصر) یک شاخص (index) یا ستون تعریف شده در ساختار داده سری استفاده میشود. به عبارت دیگر، شاخص (index) یا ستون ساختار داده سری (که حاوی دادههای متنی است)، تابع ()str.cat را فراخوانی میکند و در نتیجه این فراخوانی، آرایه متشکل از دادههای متنی به آرایه یا شاخص فراخواننده تابع الحاق میشود.
نکته مهمی که هنگام استفاده از این تابع باید به آن اشاره شود این است که باید طول آرایه و طول شاخص یا ستون ساختار داده سری با یکدیگر برابر باشد؛ در غیر این صورت منجر به بروز خطا خواهد شد.
1# importing pandas module
2import pandas as pd
3
4# Define a dictionary containing employee data
5data = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'],
6 'Age':[27, 24, 22, 32],
7 'Address':['Nagpur', 'Kanpur', 'Allahabad', 'Kannuaj'],
8 'Qualification':['Msc', 'MA', 'MCA', 'Phd']}
9
10# Convert the dictionary into DataFrame
11df = pd.DataFrame(data)
12
13# making copy of address column
14new = df["Address"].copy()
15
16# concatenating address with name column
17# overwriting name column
18df["Name"]= df["Name"].str.cat(new, sep =", ")
19
20# display
21print(df)
خروجی:
Address Age Name Qualification 0 Nagpur 27 Jai, Nagpur Msc 1 Kanpur 24 Princi, Kanpur MA 2 Allahabad 22 Gaurav, Allahabad MCA 3 Kannuaj 32 Anuj, Kannuaj Phd
همانطور که در خروجی نمایش داده شده مشخص است، مقادیر دادهای موجود در ستون Address، نظیر به نظیر، به مقادیر متناظر آنها در ستون Name الحاق میشوند. در هنگام الحاق مقادیر دو ستون، از جدا کننده ( “ ,“) برای فاصله انداختن میان مقادیر الحاق شده به یکدیگر استفاده میشود.
1# importing pandas module
2import pandas as pd
3
4# importing csv from link
5data = pd.read_csv("nba.csv")
6
7# making copy of team column
8new = data["Team"].copy()
9
10# concatenating team with name column
11# overwriting name column
12data["Name"]= data["Name"].str.cat(new, sep =", ")
13
14# display
خروجی:
همانطور که در خروجی نمایش داده شده در شکل مشخص است، مقادیر دادهای موجود در ستون Team، نظیر به نظیر، به مقادیر متناظر آنها در ستون Name الحاق میشوند. هنگام الحاق مقادیر دو ستون، از جدا کننده ( “ ,“) برای فاصله انداختن میان مقادیر الحاق شده به یکدیگر استفاده میشود.
حذف کردن فضاهای خالی (Whitespaces) از داده های متنی در پایتون
دستهای دیگر از توابع که برای دستکاری داده های متنی در پایتون و انجام عملیات رشتهای روی آنها مورد استفاده قرار میگیرند، توابع ()str.lstrip() ،str.strip و ()str.rstrip هستند. از این دسته از توابع، برای حذف کردن فضاهای خای در دادههای متنی (نظیر Newline) استفاده میشود.
همانطور که نام این توابع نیز گویا است، از تابع ()str.lstrip برای حذف کردن فضاهای خالی از سمت چپ رشته متنی، از تابع ()str.rstrip برای حذف کردن فضاهای خالی از سمت راست رشته متنی و از تابع ()str.strip برای حذف کردن فضاهای خالی از دو طرف رشته متنی استفاده میشود.
از آنجایی که این توابع، توابع تعریف شده توسط کتابخانه Pandas هستند و برای پردازش داده های متنی در پایتون مورد استفاده قرار میگیرند، هنگام فراخوانی آنها باید پیشوند str. به کار گرفته شود. پیشوند str. برای مفسر پایتون مشخص میکند که توابع Pandas باید فراخوانی شوند و نه توابع اصلی و تعبیه شده زبان پایتون.
1# importing pandas module
2import pandas as pd
3
4# Define a dictionary containing employee data
5data = {'Name':['Jai', 'Princi', 'Gaurav', 'Anuj'],
6 'Age':[27, 24, 22, 32],
7 'Address':['Nagpur junction', 'Kanpur junction',
8 'Nagpur junction', 'Kannuaj junction'],
9 'Qualification':['Msc', 'MA', 'MCA', 'Phd']}
10
11# Convert the dictionary into DataFrame
12df = pd.DataFrame(data)
13
14# replacing address name and adding spaces in start and end
15new = df["Address"].replace("Nagpur junction", " Nagpur junction ").copy()
16
17# checking with custom string
18print(new.str.strip()==" Nagpur junction")
19print(new.str.strip()=="Nagpur junction ")
20print(new.str.strip()==" Nagpur junction ")
خروجی:
Address Age Name Qualification 0 Nagpur junction 27 Jai Msc 1 Kanpur junction 24 Princi MA 2 Nagpur junction 22 Gaurav MCA 3 Kannuaj junction 32 Anuj Phd Address Age Name Qualification 0 Nagpur junction 27 Jai Msc 1 Kanpur junction 24 Princi MA 2 Nagpur junction 22 Gaurav MCA 3 Kannuaj junction 32 Anuj Phd 0 False 1 False 2 False 3 False Name: Address, dtype: bool 0 False 1 False 2 False 3 False Name: Address, dtype: bool 0 False 1 False 2 False 3 False Name: Address, dtype: bool
همانطور که در خروجیهای نمایش داده شده مشخص است، نتیجه سه مقایسه انجام شده در انتهای قطعه، برای تمامی حالات False است؛ یعنی، تمامی فضاهای خالی (در این قطعه کد، از Space به عنوان فضای خالی استفاده شده است) با موفقیت از دو طرف رشتههای متنی موجود در ساختار داده سری حذف شده است. به عبارت دیگر، هیچ فضای خالی در رشتههای متنی وجود ندارد.
1# importing pandas module
2import pandas as pd
3
4# making data frame
5data = pd.read_csv("nba.csv")
6
7# replacing team name and adding spaces in start and end
8new = data["Team"].replace("Boston Celtics", " Boston Celtics ").copy()
9
10# checking with custom removed space string
11new.str.lstrip()=="Boston Celtics "
خروجی:
استخراج داده های متنی در پایتون
جهت استخراج داده از ساختار داده سری، از تابع ()str.extract استفاده میشود. این تابع، یک عبارت منظم با حداقل یک ساختار کنترلی را به عنوان آرگومان ورودی میپذیرد. در صورتی که بیش از یک ساختار کنترلی در عبارت منظم تعریف شود، یک DataFrame خروجی داده میشود که هر ستون آن نمایش دهنده دادههای استخراج شده به ازای هر کدام از ساختارهای کنترلی است. عناصری که با ساختارهای کنترلی در عبارت منظم مطابقت نداشته باشند، به جای آنها در خروجی، یک سطر حاوی مقادیر NaN تولید میشود.
1# importing pandas module
2import pandas as pd
3
4# creating a series
5s = pd.Series(['a1', 'b2', 'c3'])
6
7# Extracting a data
8n= s.str.extract(r'([ab])(\d)')
9
10print(n)
خروجی:
0 1 0 a 1 1 b 2 2 NaN NaN
همانطور که در خروجی بالا مشهود است، از آنجایی که در قطعه کد بالا دو ساختار کنترلی ([ab]) و (d\) تعریف شده است (با استفاده از ساختار اول، یکی از حروف a یا b را در ساختار داده استخراج میکند و از ساختار دوم برای استخراج اعداد از ساختار داده سری استفاده میشود)، بنابراین، یک Dataframe متشکل از دو ستون در خروجی نمایش داده خواهد شد. عناصری که با ساختارهای کنترلی مطابقت نداشته باشند، با مقادیر NaN پر میشوند.
1# importing pandas module
2import pandas as pd
3
4# creating a series
5s = pd.Series(['a1', 'b2', 'c3'])
6
7# Extracting a data
8n = s.str.extract(r'(?P<letter>[ab])(?P<Digit>\d)')
9
10print(n)
خروجی:
letter Digit 0 a 1 1 b 2 2 NaN NaN
همانطور که در خروجی بالا مشهود است، از قطعه کد بالا برای نامدهی به ستونهای نمایش داده شده در خروجی استفاده میشود.
توابع str تعریف شده در کتابخانه Pandas جهت پردازش داده های متنی در پایتون
در این بخش، توابع str تعریف شده در کتابخانه Pandas جهت پردازش داده های متنی در پایتون مورد بررسی قرار میگیرند و کاربرد آنها معرفی میشود.
نام تابع | توصیف تابع |
()str.lower | از این تابع، برای تبدیل کاراکترهای یک رشته متنی به حروف کوچک استفاده میشود. |
()str.upper | از این تابع، برای تبدیل کاراکترهای یک رشته متنی به حروف بزرگ استفاده میشود. |
()str.find | از این تابع، برای جستجوی یک زیر رشته در تمامی رشتههای موجود در ساختار داده سری استفاده میشود. |
()str.rfind | از این تابع، برای جستجوی (از سمت راست) یک زیر رشته در تمامی رشته موجود در ساختار داده سری استفاده میشود. |
()str.findall | از این تابع، برای جستجوی زیر رشتهها یا جدا کنندهها (Separators) در تمامی رشتههای موجود در ساختار داده سری استفاده میشود. |
()str.isalpha | با استفاده از این تابع، مشخص میشود که آیا تمامی کاراکترهای رشتههای موجود در ساختار داده سری، الفبایی هستند یا نه؟ |
()str.isdecimal | با استفاده از این تابع، مشخص میشود که آیا تمامی کاراکترهای موجود در یک رشته، عدد هستند یا نه؟ |
()str.title | از این تابع، برای بزرگ کردن اولین حرف هر کدام از کلمات موجود در یک داده متنی استفاده میشود. |
()str.len | با استفاده از این تابع، تعداد کاراکترهای موجود در یک رشته (داده متنی) محاسبه میشود. |
()str.replace | با استفاده از این تابع، یک زیر رشته موجود در رشته متنی، با مقدار دیگری که توسط کاربر فراهم میشود، جایگزین میشود. |
()str.contains | با استفاده از این تابع، مشخص میشود که آیا یک الگو یا عبارت منظم، درون دادههای متنی یک داده سری یا شاخصهای آن یافت میشود یا نه. |
()str.extract | با استفاده از این تابع، مجموعه کاراکترهایی که با یک عبارت منظم و ساختارهای کنترلی آن مطابقت دارند، بازیابی میشود. |
()str.startswith | با استفاده از این تابع، مشخص میشود که آیا ابتدای یک رشته یا داده متنی، با یک الگو یا عبارت منظم مطابقت دارد یا نه. |
()str.endswith | با استفاده از این تابع، مشخص میشود که آیا انتهای یک رشته یا داده متنی، با یک الگو یا عبارت منظم مطابقت دارد یا نه. |
()str.isdigit | با استفاده از این تابع، مشخص میشود که آیا تمامی کاراکترهای رشتههای موجود در یک داده سری، عدد هستند یا نه. |
()str.lstrip | از این تابع، برای حذف فاصلههای خالی، از سمت چپ یک رشته (از ابتدای رشته) استفاده میشود. |
()str.rstrip | از این تابع، برای حذف فاصلههای خالی، از سمت راست یک رشته (از انتهای رشته) استفاده میشود. |
()str.strip | از این تابع، برای حذف فاصلههای خالی، از هر دو سمت (راست و چپ) یک رشته استفاده میشود |
()str.split | با استفاده از این تابع، رشته یا داده متنی، بر اساس مشاهده یک زیر رشته یا الگوی تعریف شده توسط کاربر، جداسازی (تکه تکه) میشود. |
()str.join | با استفاده از این تابع و با در اختیار داشتن یک حائل (Delimiter)، عناصر یک لیست موجود در دادههای سری به یکدیگر متصل میشوند. |
()str.cat | از این تابع، برای الحاق یک آرایه متشکل از دادههای متنی به یک شاخص یا داده سری فراخواننده تابع استفاده میشود. |
()str.repeat | از این تابع، برای تکرار کردن مقادیر (یک آرایه) رشتهای، در مکان متناظر آنها در یک داده سری دیگر استفاده میشود. |
()str.get | از این تابع، برای واکشی دادههای متنی، در مکان خاصی از دادههای سری، استفاده میشود. |
()str.partition | این تابع برخلاف تابع split، دادههای متنی را تنها در اولین ظاهر شدن رشته حائل جداسازی میکند. |
()str.pad | از این تابع، میتوان برای اضافه کردن Padding (فضاهای خالی یا کاراکترهای دیگر) به هریک از عناصر دادههای سری استفاده کرد. |
()str.swapcase | با استفاده از این تابع، حروف کوچک به حروف بزرگ و برعکس تبدیل میشوند. |
مجموعه آموزشهای مرتبط با زبان برنامهنویسی پایتون که در مجله فرادرس تهیه شدهاند و برای عموم مخاطبان و خوانندگان در دسترس قرار گرفتهاند، در اینجا گردآوری شدهاند. در صورتی که تمایل دارید با زبان برنامهنویسی پایتون و نحوه کدنویسی در این زبان آشنا شوید، توصیه میشود که آموزشهای ارائه شده در این مطب را مطالعه کنید.
اگر نوشته بالا برای شما مفید بوده است، آموزشهای زیر نیز به شما پیشنهاد میشوند:
- مجموعه آموزشهای برنامهنویسی پایتون Python
- گنجینه آموزشهای برنامه نویسی پایتون (Python)
- مجموعه آموزشهای برنامهنویسی
- زبان برنامه نویسی پایتون (Python) — از صفر تا صد
- ترفندهای برنامه نویسی در پایتون — از صفر تا صد
- پایتون یا جاوا کدام بهتر است؟ — راهنمای جامع
- آموزش پایتون (Python) — مجموعه مقالات جامع وبلاگ فرادرس
^^