<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"><channel><title>نوشته های iliya ebrahimzadeh</title><link>https://virgool.ir/feed/@iliya.e</link><description>15 سالمه و پایتون یادمیگریم برای تحقق رویای تاسیس یک شرکت بزرگ...</description><language>fa</language><pubDate>2026-11-11 04:32:12</pubDate><image><url>https://files.virgool.ir/upload/users/209732/avatar/WSgWih.png</url><title>iliya ebrahimzadeh</title><link>https://virgool.ir/@iliya.e</link></image><item><title>گذری بر ساعت و تاریخ میلادی در پایتون</title><link>https://virgool.ir/@iliya.e/گذری-بر-ساعت-و-تاریخ-میلادی-در-پایتون-abpvsnuebetq</link><description>در این پست میخواهم استفاده از تاریخ (میلادی) و زمان رو در پایتون یاد بدم پس با من همراه باشید ...معرفی :کتابخانه datetime . این کتابخانه استاندارد و  متن باز پایتون همون طور که از نامش پیداست برای کار با زمان و تاریخ (میلادی) توسعه داده شده . خب سریع تر بریم سر اصل مطلب ...وارد کردن :import datetimeوارد کردن زمان :گاهی لازم میشه که ما (یا کاربر)به برنامه ساعت یا تاریخ بدیم ، در اون شرایط باید پس از datetime بسته به نوع زمانی که می خواهیم به برنامه بدهید متد های مخصوص اون زمان رو بنویسید : datetime.datetime(2020, 7, 17, 10, 53, 16, 400692)&#xA;datetime.date(2020, 7, 18)&#xA;datetime.time(10, 53, 16, 400692) &#xA;#متد های دیگری هم هست که در اینجا بهش اشاره نمیکنمزمان اکنون :گاهی هم لازم میشه که زمان حال رو داشته باشیم :date =  datetime.datetime.today() # 2020, 7, 17, 10, 53, 16, 400692برای دسترسی به بخش هایی از زمان (مثلا ثانیه یا سال ) قالب هایی رو در متد ()strftime قرار میدهیم . این قالب ها در علامت سینگل کوتیشن یا دابل کوتیشن قرار میدهیم و پس از علامت درصد (%) حروف انگلیسی را مینویسیم:date =  datetime.datetime.today() &#xA;date.strftime(&#39;%x&#39;) #&#39;07/18/20&#39;&#xA;date.strftime(&#39;%B&#39;) #&#39;July&#39;این قالب ها هر کدوم برای خروجی دادن زمانی خاصی هستند .  تمام قالب های استاندارد(قابل استفاده) و کاربرد به همراه مثال  :پیشنهاد میکنم پایتون شل رو باز کنید و همانند کد های بالا این قالب ها رو تست کنید .امیدوارم بکارتون بیاد . اگر سوالی داشتید در بخش کامنت ها بنویسید حتما جواب میدم .با نظرات و لایک هاتون ممیتونید از من حمایت کنید ‍، و با دنبال کردن من میتونید از جدید ترین پست های من در زمینه برنامه نویسی پایتون مطلع شوید .پاینده و پیروز باشید ، تا پست بعد بدرود ... </description><category>iliya ebrahimzadeh</category><author>iliya ebrahimzadeh</author><pubDate>Sat, 18 Jul 2020 10:20:20 +0430</pubDate></item><item><title>هک پسورد از طریق sha256 در پایتون</title><link>https://virgool.ir/@iliya.e/هک-پسورد-از-طریق-sha256-در-پایتون-hq3s3txz6scu</link><description>یه پروژه با آموزش چند گانه ، کار با کتابخانه hashlib ، کار با csv و دیکشنری ... سلام . با یک حل مساله پایتون درخدمتتون هستم . چرا مسله حل میکنیم ؟ چون با کدهای جدید اشنا شیم ، با الگوریتم های مختلف اشنا شیم و حتی با ارور های مختلف آشنا شیم ! و خلاصه بیشتر برنامه نویسی رو کشف کنیم ... توجه : برای اینکه بهتر یاد بگیرید قطعه کدی رو تا زمانی که مطمئن نشدید فهمیدین کپی نکنید! هش کردن یک فرایند یک طرف است ، شما میتونید با داشتن پسورد به هش شده اون برسید ولی نمیتونید با داشتین هش شده رمز به اون رمز برسید . یک مثال میزنم که جا بیفته ، شما میتونید با گوجه(رمز)،رب(رمز هش شده) درست کنید ولی نمی تونید با رب(رمز هش شده) گوجه(رمز) درست کنید . اما راهی برای دور زدن این قضیه وجود داره  : ما یک شیشه مربا داریم که نمیدونیم توش چه مربایی هست ، تا حالا هم مزه هیچ مربایی رو نچشیدیم تا بدونیم چه مزه ایه و میخوایم بدونیم تو اون شیشه چه مربایی هست  ؛ حالا ما سیب و پرتقال و انار و موز و هویج و بالگ  و توت فرنگی داریم . با تمام اینا مربا درست میکنیم ( ولی انصافا با موز نمیشه مربا درست کرد! ) بعد مزه هر کدوم از مربا ها رو با مزه مربایی که نمیدونیم چیه مقایسه میکنیم و هر کدوم از مربا ها که با شیشه مربا هم مزه بود یعنی مربا با اون میوه درست شده !! جواب پیدا شد ، مربا انار!!!!!!!!!!!!!!!!  این روش هکر ها است برای یافتن پسورد کاربر ها ، البته باید یه پسورد هش شده داشته باشیم . تعریف پروژه :ما یه فایل csv. داریم که در اون نام کاربر و پسورد هش شده نوشته شده . ما میخوایم بفهمیم که رمز هر کاربر چی هست . چیزایی که میدونیم اینه که رمز هر کاربر عددی بین 1-9999 هست و میدونیم که با الگوریتم هش sha256 پسورد ها هش شدند. اینم فایل csv. که نام کاربر با رمز هش شده اونها نوشته شده :iliya,cfa8624c2d1e3c8c89316808b45ce942770e5ef9cd845dfd74baf4a616aa6d3a&#xA;arshia,03ac674216f3e15c761ee1a5e255f067953623c8b388b4459e13f978d7c846f4&#xA;mahsen,888df25ae35772424a560c7152a1de794440e0ea5cfee62828333a456a506e05&#xA;ralf,6b86b273ff34fce19d6b804eff5a3f5747ada4eaa22f1d49c01e52ddb7875b4b&#xA;jafar,b22eb34537f6f6753da6e0dc05713be0ccc35ef12dae0f6bf19b5206d373af33 توجه کنید که در فایل csv. نباید خط خالی وجود داشته باشه وگرنه برنامه با مشکل مواجه میشهخب همونطور که بالاتر گفتم ما رمز هش شده رو در اختیار داریم و می خوایم که ببینم چه عددی رو هش کنیم  به پسورد های هش شده در فایل csv. میرسیم . همونطور که می دونید هیچ راهی وجود نداره که بشه از هش شده ی چیزی به خود اون چیز برسیم (برای اطلاعات بیشتر در مورد هش کردن یا هشینگ کلیک کنید) هکرها  میان یه برنامه مینویسن که رمز هایی تصادفی تولید و اون ها رو با الگوریتم های مختلف هش میکنه ، بعد در یک دیکشنری قرار میده که در اون رمز هش شده کلید (Key) و خود رمز مقدار (values) هست ، در مرحله بعد رمز های هش شده ای که هکر در اختیار با رمز های هش شده داخل دیکشنری مقایسه میشند و نتیجه رمز اون کاربر میشه . حالا ما میخوایم این برنامه رو پیاده سازی کنیم ...    فرایند یک طرفه هش کردن1- چیزایی که نیاز به ایمپورت (import) شدن دارند رو مینویسیم :from csv import reader&#xA;from hashlib import sha256 اول از کتابخونه  reader ، csv  رو ایمورپ میکنیم چون برای کار با فایل هایی با فرمت csv. و خوندن (reader) اونها بهش  بهش نیاز هست ، بعد از کتابخونه sha256 ، hashlib رو ایمپورت می کنیم .بهتره بجای اینکه کل یک کتابخونه رو وارد برنامه کنیم فقط بخشی که نیاز هست رو ایمپورت کنیم.2- یه دیکشنری خالی تعریف میکنیم :hash_password_to_password = {}در مراحل بعد از این دیکشنری برای نگهداری از رمز ها و رمز های هش شده استفاده میکنیم .3-ساخت اعداد 1-9999 و هش کردن اونها با استفاده از الگوریتم هش &#34;sha256&#34; :for password in range(1000,10000):اول یک حلقه فور(for) می نویسیم و با استفاده از تابع (range)  اعداد یک تا 9999 رو درست بکنه و خب این رو هم میدونیم که باید یک دونه بیشتر از اونی که میخوایم  عدد ایجاد بکنیم در رنج بنویسیم ، مثلا اگر مخوایم اعداد یک تا پنج رو چاپ بکنه با بنویسیم (range(1,6.    hashing_number = sha256(b&#39;%i&#39;% password).hexdigest()مثل ریاضی انجام عملیات از داخلی ترین پرانتز اغاز میشه . اینجا داخلی ترین پرانتر (b&#39;%i&#39;% password)هست &#34; &#34;b متن رو تبدیل به بایت(byte) تبدیل میکنه ، i% به مفسر میگه که من بعدا بهت یک عدد(int) میدم ، بعد بیرون از علامت های نقل قول یک درصد خالی میزاریم و مفسر میفهمه که الان میخواد بهش عددی رو بده که گفته بود ، عدد که از 1-9999 باشه رو ریختیم تو متغیری به نام password . password یک عدد رو در خودش ذخیره میکنه بعد که کارش در یک مرحله از فور(for)تموم شد مقداری که به password منتسب شده پاک میشه و عدد بعدی جای اون رو میگیره . در مرحله بعد متن یا عددی که به بایت تبدیل کرده بودیم با استفاده از الگوریتم  sha256 هش میشن.  سپس یک نقطه و بعدش ()hexdigest مینویسیم تا فرایند هش کامل بشه.sha256(b&#39;%i&#39;% 1399) # &lt;sha256 HASH object @ 0x00000144EEABFC10&gt;&#xA;0x00000144EEABFC10 # 1395573652496 &#xA;sha256(b&#39;%i&#39;% 1399).hexdigest() &#xA;#&#39;3485da2e4aaa4c692d04e570406af48b512f13137ab9e57718753a7a9f7b6e1c&#39;&#xA;# البته خیلی نیاز به دونستن نداره صرفا برای افرادی که مثل خودم کنجکاون نوشتم4-وارد کردن اعداد و اعداد هش شده به دیکشنری :       hash_password_to_password[hashing_number] = passwordدر این مرحله اعداد هش شده به عنوان کلید(keys) و خودِ اعداد مقدار (values) اون کلید ها قرار میگیرند و به دیکشنری  hash_password_to_password اضافه میشوند . یعنی اگر  یک keys(در اینجا اعداد هش شده) رو صدا بزنیم  , values (در اینجا اعدادی که هش میشن) میگن : بله ! 5-باز کردن فایل csv. و خواندن آن :with open(&#39;D:/iliya/users password.csv&#39;) as f:&#xA;    psswords_singer = reader(f)فایل رو باز میکنیم و  اون رو f نام گذاری میکنیم ، خط بعد متغیری بنام  psswords_singer تعریف میکینم که فایل باز شده را میخواند .    for row in psswords_singer:&#xA;        name_users = row[0]از این طریق هر خط فایل را  میخواند و به row منتسب میشود . اولین عنصر row یعنی نام هر کاربر در متغیر name_users نگهداری میشود .        for key in row[1:]:&#xA;            print(name_users,&#39;:&#39;,hash_password_to_password[key])حال پسورد هش شده هر کاربر را ([:row[1) به عنوان کلید در نظر گرفته و در دیکشنری ای که اول تعریف کردیم به دنبال آن پسورد هش شده میگردد و در آخر نام کاربر به همراه رمز عبور آن چاپ میشود !!کد یکجا این پروژه :from csv import reader&#xA;from hashlib import sha256&#xA;hash_password_to_password = {}&#xA;for password in range(1,10000):&#xA;    hashing_number = sha256(b&#39;%i&#39;% password).hexdigest()&#xA;    hash_password_to_password[hashing_number] = password&#xA;with open(&#39;D:/iliya/users password.csv&#39;) as f:&#xA;    psswords_singer = reader(f)&#xA;    for row in psswords_singer:&#xA;        name_users = row[0]&#xA;        for key in row[1:]:&#xA;            print(name_users,&#39;:&#39;,hash_password_to_password[key])حالا فایل csv. بالا رو بر دارید و در کامپیوتر خودتون ذخیره کنید ، سپس آدرس فایل رو به محلی که فایل در اون ذخیره شده تغییر بدید و برنامه رو اجرا کنید ...امیدوارم کمکتون کرده باشم . با نظرات و لایک هاتون ممیتونید از من حمایت کنید ‍، و با دنبال کردن من میتونید از جدید ترین پست های من در زمینه برنامه نویسی پایتون مطلع شوید .  </description><category>iliya ebrahimzadeh</category><author>iliya ebrahimzadeh</author><pubDate>Mon, 06 Jul 2020 08:45:15 +0430</pubDate></item><item><title>تبدیل فرمت py. به فرمت اجرایی exe.</title><link>https://virgool.ir/@iliya.e/تبدیل-فرمت-py-به-فرمت-اجرایی-exe-yizp5spinjau</link><description>برنامه ای که با پایتون مینویسید با فرمت py. ذخیره میشه و شما میتونید اون رو اجرا کنید ، چون مفسر پایتون بر روی سیستم شما نصب شده ، اما اگر بخواین برنامه ای رو که نوشتین بر روی سیستم های دیگر (که مفسر پایتون بر روی اونها نصب نیست) اجرا کنید به مشکل بر میخورید ؛ برای این که برنامه شما روی هر سیستمی اجرا بشه نیاز هست که اون رو به فرمت اجرایی (یعنی exe.) تبدیل کنید . چیجوریش رو در ادامه میگم ...خب من چند ماه پیش دنبال همچین آموزشی بودم ( همینی که میخوام آموزش بدم) نتایجی که پیدا کردم خیلی پیچیده بودن ، به فکرم رسید که خب ببنیم میشه این راه رو کاهش داد ؟ چند بار امتحان کردم و دیدم که بله خیلی راحت تر از چیزی در سایت های دیگر نوشته بود من تونستم کارم رو انجام بدم ، حالا این راه میانبر رو میخوام به شما آموزش بدم ...1-برنامه CMD رو باز کنید (در خط فرمان جستجو کنید) 2-برای نصب برنامه نصب کننده بنویسید : (یادگیری کار با دستور pip )pip install pyinstaller3-سپس در خط فرمان به محل ذخیره فایل پایتون(py.) بروید(راحت تر اینه که فایل رو به محلی که cmd در اون نصب هست ببرید) : cd \ #برای خارج شدن از درایو فعلی&#xA;cd /d  D: #برای رفتن به درایو مورد نظر&#xA;cd iliya\Programming #برای رفتن به پوشه مورد نظر 4-وقتی در CMD به محل ذخیره فایل پایتون(py.) رسیدید بنویسید :pyinstaller namefile.py # توجه کنید که نام فایل باید به همراه فرمت آن نوشته شودسپس در پوشه dist  فایل اجرایی با فرمت exe. شما آماده است و میتونید اون رو بر روی هر سیستمی که قابلیت اجرای این فرمت رو داشته باشه اجرا کنید . اگر سوال داشتید در بخش نظارت مطرح کنید ، حتما جواب میدم.امیدوارم کمکتون کرده باشم . با نظرات و لایک هاتون ممیتونید از من حمایت کنید  ‍، و با دنبال کردن من میتونید از جدید ترین پست های من در زمینه برنامه نویسی پایتون مطلع شوید .پاینده و پیروز باشید ، تا پست بعد بدرود ...</description><category>iliya ebrahimzadeh</category><author>iliya ebrahimzadeh</author><pubDate>Fri, 03 Jul 2020 12:24:36 +0430</pubDate></item><item><title>چند ارور متداول پایتون</title><link>https://virgool.ir/@iliya.e/چند-ارور-متداول-پایتون-ggjxlkj76age</link><description>هر برنامه نویسی درمواجه با ارور ها دچار حالت خاص خودش میشه ؛ شما کدوم هستید؟این پست بخشی از پستی بزرگتر است که به زودی تکمیل خواهد شد ... آشنایی با خطا(error) ها متداول پایتون ، دلایل بروز خطا ، روش های دیباگ کردن ...ارور ها که نیاز به معرفی ندارند  ، عضو جدا نشدنی برنامه نویسی ؛ در این پست میخواهم شما رو با دلایل بروز خطا ها ، روش ها پیشگیری و دیباگ آشنا کنم و در آخر به عنوان تمرین یک کد پر از باگ به شما میدم تا برای دیباگ کردنش با ارور ها آشنا شوید . این ارور ها از پر تکرار ترین ارور ها در پایتون هستند که برنامه نویس های پایتون چه تازه کار چه حرفه ایه با اون روبه رو میشند ! ؛ پس بهتره اونها رو بشناسیم . syntaxError : تعریف :اولین اروری که بیشتر برنامه نویس ها با اون برخورد میکنن سینتکس ارور (syntaxError) هست . خطا سینتکس زمانی رخ میده که شما قواعد پایتون رو رعایت نکرده باشید .  در واقع دستوری که به مفسر دادید برای اون قابل درک نیست . خوشبختانه در هنگام بروز این خطا ، مفسر ، خط و بخشی که غیر قابل تفسیر بوده و دلیل بروز خطا رو اعلام میکند .نمونه : from math import factorial &#xA;num_in = int(input())&#xA;factorial = factorial(,num_in)&#xA;print(factorial)&#xA;Error :&#xA;  File &#34;d:/iliya/Programming/languages Programming/Python/code/Factorielle.py&#34;, line 3&#xA;factorial = factorial(,num_in)&#xA;                                ^&#xA;SyntaxError: invalid syntaxدر خط اول خطا  ، آدرس مکانی که فایل در اون قرار دارد و خطی که در هنگام تفسیر به مشکل خورده نمایش داده میشه. در لاین بعد اون خط (line) که برای مفسر غیر قابل درک بوده و خط سوم یک فلش(^) هست که مکان دقیقی که باعث بروز خطا شده رو نمایش میده که این فرایند دیباگ رو ساده میکنه . و خط آخر نوع ارور و دلیل اون رو مینویسه که در این قطعه که عبارت نادرست (invalid syntax) بوده . روش دیباگ :دیباگ کردن سینتکس ارور خیلی راحته (بسته به سطح تجربه شما) و حتی بعضی وقت ها کافیه یک کارکتر پاک ، جابجا یا عوض بشه . nameError :تعریف : زمانی که شما از متغیری استفاده می کنید که تعریف نشده یا حذف شده با این خطا مواجه میشوید . یعنی شما از متغیری استفاده کردید که در حافظه سیستم موجود نیست . کمتر پیش میاد و راحت برطرف میشه .نمونه : print(name,age)&#xA;Error :&#xA;Traceback (most recent call last):&#xA;File &#34;d:/iliya/Programming/languages Programming/Python/code/Factorielle.py&#34;, line 1, in &lt;module&gt;&#xA;    print(name,age)&#xA;NameError: name &#39;name&#39; is not definedدر نِیم ارور (nameError) فقط خط و متغیر ناشناخته نمایش داده میشه . در این قطعه کد دو متغیر تعریف نشده داریم اما همون طور مشاهده می کنید متغیر(name)تعریف نشده نشده است (not defined) در حالی که ما دو متغیر تعریف نشده داریم و بخاطر این هست که زبان پایتون خط به خط و از چپ به راست حرکت میکند و هنوز به متغیر دوم(age) نرسیده . روش دیباگ :ما باید بدونیم که متغیری که صدا زدیم برای چی بوده و نام گذاری صحیح خیلی میتونه کمک کنه . ممکن هست متغیر رو تعریف کرده باشیم ولی اشتباهی اول نام متغییر علامت(#(شارپ،هشتگ،مربع)) اومده باشه و توسط مفسر نادیده گرفته بشه ؛ و گاهی ممکن هست صرفا اشتباه تایپی بوده باشه . TypeError:تعریف :این خطا مربوط به زمانی میشه که شما در یک عملیات از مقدار نادرستی استفاده کردید یا از یک تابع که مخصوص یک مقدار خاص است را برای مقداری دیگر استفاده کرده اید . مثلا یک رشته(string) رو با یک عدد جمع کردید . یا به زبان خودمونی کُدا رو ریختین تو ماستا !نمونه:a = 1399&#xA;print(len(a)) # تعداد کارکتر های رشته رو نشون میده(len)لن&#xA;Error:&#xA;Traceback (most recent call last):&#xA;  File &#34;&lt;pyshell#10&gt;&#34;, line 1, in &lt;module&gt;&#xA;    len(a)&#xA;TypeError: object of type &#39;int&#39; has no len()روش دیباگ:به ورودی ها دقت کنید ، گاهی لازم هست مقدار ها تبدیل بشن که نشدند و این باعث بروز خطا میشه . معمولا خطی که دچار خطا شده نمایش داده میشه ، ببنید چه متغیر(هایی) دز اون استفاده شده و دونه دونه متغیر ها رو چک کنید .روش پیشگیری : بهتره که از یک IDE استفاده کنید (پیشنهاد من Visual Studio Code هست که به صورت رایگان میتونید اون رو دانلود و استفاده کنید ) خوبی IDE ها اینه که در فرایند دیباگ کردن می توانند خیلی به شما کمک کنند و مهمتر از اون در هنگام نوشتن بعضی از بخش های کد به صورت خودکار نوشته میشود ، کار با اونا هم راحته  . استفاده از یک الگوریتم یا فلوچارت(روند نما) هم خیلی میتونه بهتون کمک کنه . در کنار کد ها از کامنت گذاری استفاده کنید . امیدوارم کمکتون کرده باشم . با نظرات و لایک هاتون ممیتونید از من حمایت کنید  ‍، و با دنبال کردن من میتونید از جدید ترین پست ها من در زمینه برنامه نویسی پایتون مطلع شوید .ممنون از همراهی شما  </description><category>iliya ebrahimzadeh</category><author>iliya ebrahimzadeh</author><pubDate>Sun, 28 Jun 2020 09:19:08 +0430</pubDate></item><item><title>تفاوت &#34;دابل کوتیشن&#34;  با  &#39;تک کوتیشن&#39; در پایتون</title><link>https://virgool.ir/@iliya.e/تفاوت-دابل-کوتیشن-با-تک-کوتیشن-در-پایتون-qudk9ctl4chd</link><description>دابل کوتیشن و تک کوتیشن هر دو یک کار انجام میدهند ، پس دلیل وجود دو علامت نقل قول چیست؟سلام . شاید اگر برنامه نویس پایتون باشید و تازه با پایتون آشنا شده باشید یا حتی حرفه ای تر باشید براتون سوال بشه که  علامت دابل کوتیشن (Double quotation(&#34; &#34;)) و سینگل کوتیشن(Single quotation(&#39; &#39;)) هر دو برای نشان دادن متغیری از جنس  رشته(string) هستنند ، پس چرا دو علامت برای این کار هست ؟ فرق این دو چه چیزی هست ؟ جواب سوال شما در ادامه این پست داده شده !توضیح مختصری درباره دابل کوتیشن و سینگل کوتیشن  : (صرفا برای جونیور(جوان) ها) در هنگام نوشتن یک برنامه ممکن هست که جایی نیاز بشه که متنی برای کاربر چاپ بشه ، به دلایل مختلف ،  و اونجا برای اینکه مفسر زبان پایتون متوجه این بشه که متنی که شما بهش دادید یک رشته(string) هست باید اون رو در میان علامت (&#34; &#34;) که بهش هم میشه گفت دابل کوتیشن(Double quotation) و هم نقل قول دوتایی و یا علامت(&#39; &#39;) که بهش هم میشه گفت سینگل کوتیشن(Single quotation)و هم نقل قول قرار بدید:print(&#39;hello world!&#39;)#hello world!&#xA;print(&#34;hello world!&#34;)#hello world!ممکن هست جایی نیاز بشه که در چند خط چیزی بنویسید ، که نیاز به سه تا دابل کوتیشن یا تک کوتیشن اول و سه تا اخر متن نیاز هست به این شکل :print(&#39;&#39;&#39;hello world!&#xA;My name is iliya&#39;&#39;&#39;&#xA;print(&#34;&#34;&#34;hello world!&#xA;My name is iliya&#34;&#34;&#34;دلیل وجود دو علامت نقل قول چیست ؟ اینجا میرسیم سر اصل مطلب ، ممکن هست جایی بخواین که متنی که قرار هست چاپ بشه داخل دابل کوتیشن یا سینگل کوتیشن باشه ... اون موقعه که باید گفت وات دو دو وات نات دو دو ؟؟؟!!!مثلا در کد پایین ما میخوایم متنی رو در داخل سینگل کوتیشن قرار بدیم تا اونو بعدا به سورس برنامه ایه دیگر اضافه کنیم: (مثال ساده میزنم) print(&#34;&#39;&#34;+&#39;hello world!&#39;+&#34;&#39;&#34;) #&#39;hello world!&#39;&#xA; # از (+) برای چسبوندن رشته ها به یکدیگر اضافه میکنیم اگر از (,(کاما))استفاده کنیم فاصله میفته&#xA;#توجه کنید که چیز هایی که میخواین به اضافه هم کنید باید از یک نوع باشندپس فهمیدیم که برای پرینت کردن خوده علامت های نقل قول باید از دو علامت نقل قول متفاوت با اون اول و آخر رشته اضافه کنیم و البته یک ترفند دیگر هم هست که کمی ساده تره ، از سه علامت نقل قول یکسان (مانند سه علامتی که برای نوشتن در چند خط بود) استفاده میکنیم و پس از اولین علامت نقل قول بک اسلش(\) قرار میگیرد . به این صورت :print( &#34;\&#34;&#34;+&#39;hello world!&#39;+&#34;\&#34;&#34;) #&#39;hello world!&#39; &#xA;print( &#39;\&#39;&#39;+&#39;hello world!&#39;+&#39;\&#39;&#39; )#&#39;hello world!&#39;    خیلی جزیی هست ولی زمانی به کمکتون میرسه که حتی فکرش رو هم نمیکنید !!! دو ترفند بالا شاید تفاوتی چندانی با هم نداشته باشند ، ولی مهر تایید است بر اینکه در برنامه نویسی همیشه بیش از یک راه برای رسید به یک نتیجه وجود دارد.امیدوارم کمکتون کرده باشم . با نظرات و لایک هاتون ممیتونید از من حمایت کنید  ‍، و با دنبال کردن من میتونید از جدید ترین پست ها من در زمینه برنامه نویسی پایتون مطلع شوید . ممنون از همراهی شما</description><category>iliya ebrahimzadeh</category><author>iliya ebrahimzadeh</author><pubDate>Wed, 24 Jun 2020 10:17:26 +0430</pubDate></item></channel></rss>