برای ارائه دیدگاهی جامع از برنامهنویسی Python، ما یک برگه تقلب پایتون برای برنامهنویسان این زبان تهیه کردهایم. در این برگه تقلب یا چیت شیت پایتون، شما با تمامی مفاهیم و مباحث اساسی تا پیشرفته Python آشنا خواهید شد، از جمله انواع دادهها در Python، حلقه for، برشها، تابع map، دیکشنری، کار با فایلها و موارد دیگر.
Python یکی از پرکاربردترین و محبوبترین زبانهای برنامهنویسی است که توسط گیدو ون روسوم (Guido van Rossum) توسعه داده شده و نخستین بار در سال ۱۹۹۱ منتشر شد. این زبان، که رایگان و متنباز است، دارای سینتکسی بسیار ساده و شفاف است که یادگیری آن را برای توسعهدهندگان آسان میسازد.
Python از برنامهنویسی شیءگرا پشتیبانی میکند و عمدتاً برای برنامهنویسی چندمنظوره استفاده میشود. Python در زمینههای متنوعی مانند علم داده، یادگیری ماشین، یادگیری عمیق، هوش مصنوعی، محاسبات علمی، اسکریپتنویسی، شبکهسازی، توسعه بازیها، توسعه وب، استخراج دادههای وب و بسیاری زمینههای دیگر به کار گرفته میشود.
نوع داده در Python
تابع ()type میتواند برای تعیین مقادیر انواع دادههای مختلف و بررسی نوع دادههای آنها استفاده شود.
# DataType Output: str x = "Hello World" # DataType Output: int x = 50 # DataType Output: float x = 60.5 # DataType Output: complex x = 3j # DataType Output: list x = ["datayad", "for", "datayad"] # DataType Output: tuple x = ("datayad", "for", "datayad") # DataType Output: range x = range(10) # DataType Output: dict x = {"name": "Suraj", "age": 24} # DataType Output: set x = {"datayad", "for", "datayad"} # DataType Output: frozenset x = frozenset({"datayad", "for", "datayad"}) # DataType Output: bool x = True # DataType Output: bytes x = b"datayad" # DataType Output: bytearray x = bytearray(4) # DataType Output: memoryview x = memoryview(bytes(6)) # DataType Output: NoneType x = None
برنامه Python برای چاپ “Hello world“
تابع ()print در Python برای چاپ اشیاء Python به صورت رشته (string) هایی در خروجی استفاده میشود.
# python program to print "Hello World" print("Hello World")
خروجی:
Hello World
پارامتر end در تابع ()print در Python
کلمه کلیدی end میتواند برای جلوگیری از ایجاد خط جدید پس از خروجی یا پایان دادن به خروجی با یک رشته متفاوت استفاده شود.
# ends the output with a space print("Welcome to", end=' ') print("datayadforyou", end=' ')
خروجی:
Welcome to datayadforyou
پارامتر sep در تابع ()print در Python
جداکننده بین ورودیهای متد ()print در Python به صورت پیشفرض یک فضای خالی است، اما میتوان آن را به هر نوع کاراکتر، عدد صحیح، یا رشتهای که میخواهیم تغییر داد. از آرگومان ‘sep’ برای انجام همین کار استفاده میشود.
# code for disabling the softspace feature print('09', '12', '2016', sep='-') # another example print('Example', 'datayadforyou', sep='@')
خروجی:
09-12-2016 Example@datayadforyou
input در Python
متد ()input در Python برای پذیرش ورودی کاربر استفاده میشود. به طور پیشفرض، این متد ورودی کاربر را به صورت یک رشته برمیگرداند. به طور پیشفرض، تابع ()input ورودی کاربر را به عنوان یک رشته میپذیرد.
# Python program showing # a use of input() val = input("Enter your value: ") print(val)
خروجی:
Enter your value: Hello datayad Hello datayad
کامنتها در Python
کامنتها در Python خطوطی در کد هستند که در زمان اجرای برنامه توسط interpreter نادیده گرفته میشوند. سه نوع کامنت در Python وجود دارد:
- کامنتهای تک خطی (Single line Comments)
- کامنتهای چند خطی (Multiline Comments)
- کامنتهای داک استرینگ (Docstring Comments)
# Single Line comment # Python program to demonstrate # multiline comments """ Python program to demonstrate multiline comments""" name = "datayadforyou" print(name)
خروجی:
datayadforyou
عملگرها در پایتون
به طور کلی، عملگرها برای انجام عملیات روی مقادیر و متغیرها استفاده میشوند. این نمادهای استاندارد در فرایندهای منطقی و ریاضی به کار گرفته میشوند.
عملگرهای حسابی
عملگرهای حسابی پایتون برای انجام عملیات ریاضی نظیر جمع، تفریق، ضرب و تقسیم استفاده میشوند.
# Examples of Arithmetic Operator a = 9 b = 4 # Addition of numbers add = a + b # Subtraction of numbers sub = a - b # Multiplication of number mul = a * b # Modulo of both number mod = a % b # Power p = a ** b # print results print(add) print(sub) print(mul) print(mod) print(p)
خروجی:
13 5 36 1 6561
عملگرهای مقایسهای
هنگام مقایسه مقادیر، از عملگرهای رابطهای استفاده میشود. بسته به شرایط، این عملگرها مقدار درست (True) یا نادرست (False) را برمیگردانند. به این عملگرها عملگرهای مقایسهای نیز گفته میشود.
# Examples of Relational Operators a = 13 b = 33 # a > b is False print(a > b) # a < b is True print(a < b) # a == b is False print(a == b) # a != b is True print(a != b) # a >= b is False print(a >= b) # a <= b is True print(a <= b)
خروجی:
False True False True False True
عملگرهای منطقی در پایتون
عملگرهای منطقی در پایتون بر روی جملات شرطی (که درست (True) یا نادرست (False) هستند) به کار گرفته میشوند. آنها عملیات منطقی AND، OR و NOT را انجام میدهند.
# Examples of Logical Operator a = True b = False # Print a and b is False print(a and b) # Print a or b is True print(a or b) # Print not a is False print(not a)
خروجی:
False True False
عملگرهای بیتی (bitwise) در پایتون
عملگرهای بیتی در پایتون برای انجام عملیات بیتی روی اعداد صحیح به کار گرفته میشوند. پس از تبدیل اعداد به دودویی، عملیات بر روی هر بیت یا جفت متناظر بیتها انجام میشود، به همین دلیل به آنها عملگرهای بیتی گفته میشود.
# Examples of Bitwise operators a = 10 b = 4 # Print bitwise AND operation print(a & b) # Print bitwise OR operation print(a | b) # Print bitwise NOT operation print(~a) # print bitwise XOR operation print(a ^ b) # print bitwise right shift operation print(a >> 2) # print bitwise left shift operation print(a << 2)
خروجی:
14 -11 14 2 40
برش رشتهها
رشتهها در پایتون میتوانند با استفاده از نقل قولهای تکی، دوتایی یا حتی سهگانه ساخته شوند. روش برش برای دسترسی به یک کاراکتر تکی یا محدودهای از کاراکترها در یک رشته به کار میرود. از عملگر برش (کولون) برای برش یک رشته استفاده میشود.
# Creating a String String1 = "datayadforyou" print("Initial String: ") print(String1) # Printing 3rd character print("\nSlicing characters from 3-12: ") print(String1[3:12]) # Printing characters between # 3rd and 2nd last character print("\nSlicing characters between " + "3rd and 2nd last character: ") print(String1[3:-2])
خروجی:
Initial String: datayadforyou Slicing characters from 3-12: ayadforyo Slicing characters between 3rd and 2nd last character: ayadfory
جملات شرطی
جملات تصمیمگیری در زبانهای برنامهنویسی، جهت جریان اجرای برنامه را تعیین میکنند.
If-Else در پایتون
در جمله شرطی If، بلوک کد اضافی به عنوان جمله else ادغام میشود که در صورت نادرست بودن شرط if اجرا میشود.
# python program to illustrate If else statement i = 20 if (i < 15): print("i is smaller than 15") else: print("i is greater than 15") print("i'm not in if and not in else Block")
خروجی:
i is greater than 15 i'm not in if and not in else Block
حلقه For در پایتون
حلقه for در پایتون برای پیمایش سریالی به کار میرود، یعنی برای تکرار روی عناصر قابل تکرار مانند رشتهها، تاپلها، لیستها، مجموعهها، یا دیکشنریها. در پایتون، حلقههای for تنها تکرار بر اساس مجموعهها را پشتیبانی میکنند.
# Python program to illustrate # Iterating over a list l = ["datayad", "for", "you"] for i in l: print(i)
خروجی:
datayad for you
حلقه while در پایتون
حلقه while در پایتون برای اجرای مکرر یک سری دستورات تا زمانی که شرطی برآورده شود، به کار میرود. وقتی شرط برآورده شود، خطی که پس از حلقه است در برنامه اجرا میشود.
# Python program to illustrate # while loop count = 0 while (count < 3): count = count + 1 print("Hello datayad")
خروجی:
Hello datayad Hello datayad Hello datayad
لیست در پایتون
لیست در پایتون یک نوع داده توالی است که برای ذخیرهسازی مجموعهای از دادهها استفاده میشود. تاپلها و رشتهها از دیگر انواع دادههای توالی هستند.
Var = ["datayad", "for", "you"] print(Var)
خروجی:
[‘datayad’, ‘for’, ‘you’]
خلاصه لیستها در پایتون
خلاصه لیست در پایتون با استفاده از براکتها و بیانی که در آنها قرار دارد و برای هر عنصر لیست اجرا میشود، ایجاد میگردد. همچنین، حلقه for برای تکرار روی عناصر لیست به کار میرود.
# Using list comprehension to iterate through loop List = [character for character in [1, 2, 3]] # Displaying list print(List)
خروجی:
[1, 2, 3]
دیکشنری در پایتون
دیکشنری در پایتون مجموعهای از کلیدها و مقادیر است که برای ذخیره مقادیر دادهها مانند یک نقشه به کار میرود. این نوع داده، بر خلاف سایر انواع دادهها، تنها یک مقدار واحد را به عنوان عنصر در خود نگه میدارد.
Dict = {1: 'datayad', 2: 'For', 3: 'you'} print(Dict)
خروجی:
{1: ‘datayad’, 2: ‘For’, 3: ‘you’}
خلاصه دیکشنری در پایتون
مانند خلاصه لیست، پایتون امکان خلاصه دیکشنری را نیز فراهم میکند. ما میتوانیم با استفاده از بیانهای ساده، دیکشنریها را ایجاد کنیم. یک خلاصه دیکشنری به شکل {key: value for (key, value) in iterable} تعریف میشود.
# Lists to represent keys and values keys = ['a','b','c','d','e'] values = [1,2,3,4,5] # but this line shows dict comprehension here myDict = { k:v for (k,v) in zip(keys, values)} # We can use below too # myDict = dict(zip(keys, values)) print (myDict)
خروجی:
{'a': 1, 'b': 2, 'c': 3, 'd': 4, 'e': 5}
تاپلها در پایتون
تاپل مجموعهای مشابه لیست از عناصر پایتونی است. در تاپل، مجموعهای از مقادیر از انواع مختلف ذخیره میشود که هرکدام با یک عدد صحیح شمارهگذاری میشوند.
var = ("datayad", "for", "you") print(var)
خروجی:
('datayad', 'for', 'you')
مجموعهها (sets) در پایتون
set در پایتون یک مجموعه نامرتب از انواع دادههاست که قابل تکرار و تغییر هستند ولی هیچ عنصر تکراری ندارند. ترتیب عناصر در یک set نامعلوم است، اما میتواند شامل چندین عنصر باشد.
var = {"datayad", "for", "you"} print(var)
خروجی:
{'datayad', 'for', 'you'}
توابع در پایتون
توابع در پایتون مجموعهای از دستورات هستند که برای یک منظور خاص استفاده میشوند. این توابع برای گردآوری کارهایی که به طور مکرر انجام میشوند طراحی شدهاند تا به جای تکرار نوشتن همان کد برای ورودیهای مختلف، بتوان کد موجود در آنها را دوباره استفاده کرد.
# A simple Python function def fun(): print("Welcome to DTY") # Driver code to call a function fun()
خروجی:
Welcome to DTY
آرگومانهای تابع
آرگومانها مقادیری هستند که در بین پرانتزهای یک تابع داده میشوند. یک تابع میتواند هر تعداد پارامتر که میخواهد داشته باشد، که توسط کاماها از هم جدا میشوند.
# A simple Python function to check # whether x is even or odd def evenOdd(x): if (x % 2 == 0): print("even") else: print("odd") # Driver code to call the function evenOdd(2) evenOdd(3)
خروجی:
even odd
دستور بازگشت (return) در تابع پایتون
دستور بازگشت در تابع برای پایان دادن به یک تابع و بازگشت به فراخواننده تابع با مقدار یا آیتم دادهای ارائه شده به کار میرود.
# Python program to # demonstrate return statement def add(a, b): # returning sum of a and b return a + b def is_true(a): # returning boolean of a return bool(a) # calling function res = add(2, 3) print("Result of add function is {}".format(res)) res = is_true(2<5) print("\nResult of is_true function is {}".format(res))
خروجی:
Result of add function is 5 Result of is_true function is True
تابع ()range در پایتون
تابع ()range در پایتون یک دنباله از اعداد را، در یک محدوده داده شده، برمیگرداند.
# print first 5 integers # using python range() function for i in range(5): print(i, end=" ") print()
خروجی:
0 1 2 3 4
تابع map در پایتون
تابع ()map در پایتون، یک map object (یک iterator) از نتایج به دست آمده پس از اجرای تابع مشخص شده روی هر عنصر از مجموعهای قابل تکرار را برمیگرداند.
# Return double of n def addition(n): return n + n # We double all numbers using map() numbers = (1, 2, 3, 4) result = map(addition, numbers) print(list(result))
خروجی:
[2, 4, 6, 8]
تابع Filter در پایتون
تابع ()filter در پایتون، دنبالهای را با استفاده از تابعی که هر عنصر آن را برای تشخیص درست یا نادرست بودن بررسی میکند، فیلتر میکند.
# function that filters vowels def fun(variable): letters = ['a', 'e', 'i', 'o', 'u'] if (variable in letters): return True else: return False # sequence sequence = ['g', 'e', 'e', 'j', 'k', 's', 'p', 'r'] # using filter function filtered = filter(fun, sequence) print('The filtered letters are:') for s in filtered: print(s)
خروجی:
The filtered letters are: e e
تابع Reduce در پایتون
تابع reduce برای اعمال یک تابع خاص بر تمام اجزای لیستی که در دنباله فرستاده شده مشخص شدهاند، استفاده میشود.
from functools import reduce nums = [1, 2, 3, 4] ans = reduce(lambda x, y: x + y, nums) print(ans)
خروجی:
10
لامبدا (Lambda) در پایتون
توابع لامبدا در پایتون ناشناس هستند، به این معنا که نامی ندارند. همانطور که میدانیم، کلمه کلیدی def برای تعریف یک تابع معمولی در پایتون به کار میرود. کلمه کلیدی لامبدا در پایتون برای اعلام یک تابع ناشناس استفاده میشود.
calc = lambda num: "Even number" if num % 2 == 0 else "Odd number" print(calc(20))
خروجی:
Even number
args* و kwargs** در پایتون
کلمههای کلیدی args* و kwargs** به توابع اجازه میدهند تا پارامترهایی با تعداد متغیر بگیرند. *args تعداد و نوع عملیاتهایی را که میتوان روی تاپلها انجام داد، مشخص میکند. از سوی دیگر، **kwargs اجازه میدهد تعداد متغیری از آرگومانهای کلیدواژهای به شکل دیکشنری به تابع ارسال شود، که میتوان با آنها عملیاتهای دیکشنری انجام داد.
def myFun(arg1, arg2, arg3): print("arg1:", arg1) print("arg2:", arg2) print("arg3:", arg3) # Now we can use *args or **kwargs to # pass arguments to this function : args = ("datayad", "for", "you") myFun(*args) kwargs = {"arg1": "datayad", "arg2": "for", "arg3": "you"} myFun(**kwargs)
خروجی:
arg1: datayad arg2: for arg3: you arg1: datayad arg2: for arg3: you
دستور Try و Except
در پایتون، دستورات Try و Except برای گرفتن و مدیریت استثنائات به کار میروند. دستوراتی که ممکن است استثناء ایجاد کنند در بخش Try قرار میگیرند و دستوراتی که استثناء را مدیریت میکنند در بخش Except نوشته میشوند.
a = [1, 2, 3] try: print ("Second element = %d" %(a[1])) # Throws error since there are only 3 elements in array print ("Fourth element = %d" %(a[3])) except: print ("An error occurred")
خروجی:
Second element = 2 An error occurred
کار با فایلها در پایتون
پایتون همچنین امکان کار با فایلها را فراهم میکند و به کاربران این قابلیت را میدهد که فایلها را بخوانند و در آنها بنویسند، و علاوه بر این، تعداد زیادی گزینههای دیگر برای انجام عملیاتهای مختلف روی فایلها را ارائه میدهد.
import os def create_file(filename): try: with open(filename, 'w') as f: f.write('Hello, world!\n') print("File " + filename + " created successfully.") except IOError: print("Error: could not create file " + filename) def read_file(filename): try: with open(filename, 'r') as f: contents = f.read() print(contents) except IOError: print("Error: could not read file " + filename) def append_file(filename, text): try: with open(filename, 'a') as f: f.write(text) print("Text appended to file " + filename + " successfully.") except IOError: print("Error: could not append to file " + filename) def rename_file(filename, new_filename): try: os.rename(filename, new_filename) print("File " + filename + " renamed to " + new_filename + " successfully.") except IOError: print("Error: could not rename file " + filename) def delete_file(filename): try: os.remove(filename) print("File " + filename + " deleted successfully.") except IOError: print("Error: could not delete file " + filename) if __name__ == '__main__': filename = "example.txt" new_filename = "new_example.txt" create_file(filename) read_file(filename) append_file(filename, "This is some additional text.\n") read_file(filename) rename_file(filename, new_filename) read_file(new_filename) delete_file(new_filename)
مفاهیم برنامهنویسی شیگرا در پایتون
برنامهنویسی شیگرا (OOPs) یک رویکرد برنامهنویسی در پایتون است که از اشیاء و کلاسها استفاده میکند. این رویکرد به دنبال گنجاندن موجودیتهای واقعی جهان مانند ارثبری، چندریختی، کپسولهسازی و غیره در برنامهنویسی است. ایده اصلی پشت OOPs این است که دادهها و توابعی که بر آنها عمل میکنند را به عنوان یک واحد متحد کند تا بخش دیگری از کد نتواند به آن دسترسی داشته باشد.
✅ کلاس و اشیاء
✅ چندریختی
✅ کپسولهسازی
✅ ارثبری
✅ انتزاع داده
در این مثال، ما یک کلاس ماشین داریم با ویژگیهایی که مدل، ساخت و سال ماشین را نشان میدهند. ویژگی make_ با یک زیرخط _ به عنوان حفاظتشده مشخص شده است. ویژگی model__ با دو زیرخط __ به عنوان خصوصی مشخص شده است. ویژگی سال برای عموم قابل دسترس است.
میتوانیم از تابع ()get_make برای بازیابی ویژگی حفاظتشده make_ استفاده کنیم. میتوانیم از متد تنظیمکننده ()set_model برای ویرایش ویژگی خصوصی model__ استفاده کنیم. با استفاده از متد ()get_model، میتوانیم ویژگی خصوصی تغییر یافته model__ را بازیابی کنیم.
محدودیتی برای دسترسی به ویژگی عمومی سال وجود ندارد. ما با استفاده از کپسولهسازی با ویژگیهای خصوصی و حفاظتشده، دید و دسترسی اعضای کلاس را مدیریت میکنیم، که سطحی از پنهانسازی دادهها و انتزاع را فراهم میکند.
class Car: def __init__(self, make, model, year): self._make = make # protected attribute self.__model = model # private attribute self.year = year # public attribute def get_make(self): return self._make def set_model(self, model): self.__model = model def get_model(self): return self.__model my_car = Car("Toyota", "Corolla", 2022) print(my_car.get_make()) # Accessing protected attribute my_car.set_model("Camry") # Modifying private attribute print(my_car.get_model()) # Accessing modified private attribute print(my_car.year) # Accessing public attribute
خروجی:
Toyota Camry 2022
عبارات منظم در پایتون
برای تطابق آدرسهای ایمیل، یک الگو با استفاده از عبارت منظم تعریف میکنیم. الگوی زیر برای یافتن آدرسهای ایمیل رایج است.
r”\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b”
با استفاده از تابع ()re.search، این الگو در متن جستجو میشود. اگر تطابقی پیدا شود، از متد ()group برای استخراج و نمایش ایمیل تطابق یافته استفاده میکنیم. اگر تطابقی نباشد، پیامی نشان میدهد که هیچ ایمیلی یافت نشده است.
import re # Text to search text = "Hello, my email is example@example.com" # Define a pattern to match email addresses pattern = r"\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,}\b" # Search for the pattern in the text match = re.search(pattern, text) # Check if a match is found if match: email = match.group() print("Found email:", email) else: print("No email found.")
خروجی:
Found email: example@example.com
سوالات متداول در مورد پایتون
1- ویژگیهای کلیدی پایتون چیست؟
ویژگیهای پایتون شامل خوانایی بالا، سادگی، پشتیبانی گسترده کتابخانهها، سازگاری چندپلتفرمی، تایپ دینامیک، جامعه قوی پشتیبانی و برنامهنویسی شیگرا (OOP) است.
2- پایتون چه نوع زبانی است؟ برنامهنویسی یا اسکریپتنویسی؟
پایتون توانایی اسکریپتنویسی دارد، اما به طور کلی به عنوان یک زبان برنامهنویسی چندمنظوره در نظر گرفته میشود.
3- تفاوت بین فایلهای .py و .pyc چیست؟
فایلهای .py فایلهای کد منبع پایتون هستند و فایلهای .pyc شامل بایتکد فایلهای پایتون میشوند. فایلهای .pyc هنگامی ایجاد میشوند که کد از منبع دیگری وارد شود. interpreter فایلهای منبع .py را به فایلهای .pyc تبدیل میکند که به صرفهجویی در زمان کمک میکند.
ممنون بابت زحمتی که برای این پست کشیده بودید، خیلی کمک کننده بود.