تابع Complex در پایتون برای ساخت اعداد مختلط استفاده میشود. در زبان برنامه نویسی پایتون به غیر از اعداد حقیقی، میتوانیم بر روی اعداد مختلط نیز کار کنیم. پایتون با استفاده از فایل «Cmath» از اعداد مختلط و توابع مورد استفاده توسط این اعداد استفاده میکند. اعداد مختلط در بعضی از وظایف مرتبط با ریاضیات به کار برده میشوند. در این زبان برنامه نویسی برای کار بر روی اعداد مختلط، ابزارهای بسیار مناسبی تهیه شدهاند. برای مثال میتوانیم به تابع Complex در پایتون اشاره کنیم. با کمک این تابع اعداد حقیقی را به «اعداد مختلط» (Complex Numbers) تبدیل میکنیم. برای شناسایی بخش حقیقی اعداد مختلط در پایتون از تابع real() استفاده میکنیم. برای شناسایی بخش موهومی اعداد مختلط هم تابع imag() را به کار میبریم.
آنچه در این مطلب میآموزید:
-
با اعداد مختلط در پایتون و بخشهای تشکیل دهنده آنها آشنا میشوید.
-
کاربرد اصلی تابع Complex در پایتون را متوجه میشوید.
-
با کارکرد توابع real و imag در پایتون آشنا میشوید.
-
روش درست نوشتن سینتکس تابع Complex و پارامترهای آن را میآموزید.
-
با رایجترین خطای استثنا و علت رویدادن آن در زمان کار با Complex در پایتون آشنا میشوید.
-
نکات مربوط به استفاده از پارامتر اول و مقادیر رشتهای را برای ساخت عدد مختلط یاد میگیرید.

در این مطلب از مجله فرادرس با Complex در پایتون آشنا میشویم. ابتدا این تابع را تعریف میکنیم. سپس روش استفاده از آن را با کمک بررسی سینتکس و مثالهای مختلف آموزش میدهیم.
تابع Complex در پایتون چیست؟
complex() تابعی است که برای تبدیل کردن مقادیری از نوع رشته یا اعداد حقیقی به اعداد مختلط به کار برده میشود. عدد مختلط شامل دو بخش مختلف است. به بخش اول، قسمت حقیقی عدد و به بخش دوم آنها عدد موهومی گفته میشود. معمولا در ریاضیات، بخش اول این اعداد را با حرف «i» یا با «j» نمایش میدهند. برای مثال ساختارهای (3 + 7j) یا (3 + 7i) دو عدد مختلط یکسان را نشان میدهند.
برای مثال در پایین عدد مختلط را همراه با اجزای تشکیل دهنده آن به صورت مجزا از هم بررسی کردهایم.
بعد از اجرای کد بالا خروجی زیر در کنسول پایتون نمایش داده میشود.
Complex number: (3+5j) Real part: 3.0 Imaginary part: 5.0
در خروجی این کد ابتدا خود عدد مختلط را نشان دادهایم. سپس بخشهای حقیقی و موهومی آن را به صورت جدا از هم مشخص کردیم.
نکته: در پایتون مجاز به استفاده از ساختار (3 + 7i) نیستیم.
برای ساخت عدد مختلط در پایتون از متد complex() استفاده میکنیم. به این متد هم میتوانیم مقادیری با نوع عدد صحیح یا Float ارسال کنیم و هم مقادیری با نوع رشته. متد complex() دو پارامتر مختلف به عنوان ورودی دریافت میکند. سپس از این پارامترها برای تشکیل دادن بخشهای حقیقی و موهومی عدد مختلط استفاده میکند. وجود پارامتر اول الزامی و پارامتر دوم اختیاری است. تابع Complex در پایتون با استفاده از پارامترهای دریافت شده، دادهای از نوع عدد مختلط تولید کرده و برمیگرداند.
به عنوان پارامترهای متد complex() میتوانیم از مقادیر با نوع عدد صحیح، رشته یا حتی عدد مختلط استفاده کنیم. اگر پارامتر داده شده به این متد از نوع رشته باشد، مقدار آن رشته باید به شکل عدد مختلط معتبر نوشته شود. برای مثال میتوانیم عدد “10 + 7j” را به شکل رشته نوشته و به این تابع ارسال کنیم. در غیر این صورت اجرای متد با خطا روبهرو میشود.
نکته: استفاده از متد Complex در پایتون تنها راه ساخت اعداد مختلط نیست. در بخشهای بعدی با کمک چند مثال مختلف روش ساخت اعداد مختلط را بررسی کردهایم.
سینتکس تابع Complex در پایتون
سینتکس تابع Complex در پایتون بسیار ساده و واضح است. در این سینتکس دو پارامتر مختلف وجود دارد. در کادر پایین، سینتکس استفاده از تابع complex() را نوشتهایم.
complex(real, imaginary)
تابع Complex در پایتون، با دو پارامتر مختلف real و imaginary کار میکند. این پارامترها را در فهرست پایین توضیح دادهایم.
- real: با کمک این پارامتر بخش حقیقی عدد مختلط را مشخص میکنیم. استفاده از این پارامتر الزامی است. مقدار پیشفرض این پارامتر برابر با صفر قرار داده شده است.
- imaginary: از این پارامتر هم برای نشان دادن بخش موهومی عدد استفاده میکنیم. استفاده از این پارامتر اختیاری است. مقدار پیشفرض این پارامتر هم برابر با صفر قرار داده شده است.
با اینکه Complex در پایتون، تابع بسیار مهمی است. اما این تابع یکی از توابع ساده در حوزه محاسبات عددی در پایتون به شمار میرود. متدها و ابزارهای بسیار زیادی وجود دارند که برای حل مسائل ریاضی باید در استفاده از آنها مهارت پیدا کنیم. به این منظور، پیشنهاد میکنیم که فیلم آموزش محاسبات عددی در پایتون را از فرادرس مشاهده کنید. برای کمک به مخاطبان مجله، لینک این فیلم را در پایین نیز قرار دادهایم.
نکته: بخش حقیقی عدد یا پارامتر اول میتواند از نوع رشته باشد. اگر رشته موجود در پارامتر اول خود به شکل عدد مختلط نوشته شده بود – برای مثال 10 + 7j - دیگر نباید پارامتر دوم یا عدد موهومی را تعریف کنیم. عدد مختلط را میتوانیم به صورت ضرب بخش حقیقی در بخش موهومی عدد هم بنویسیم.

خروجی تابع Complex در پایتون عدد مختلط است.
خطاهای تابع Complex در پایتون
همینطور که اشاره شد، در زمان استفاده از تابع complex() در پایتون میتوانیم دو پارامتر مجزا به آن ارسال کنیم. اگر پارامتر تعریف شده مقداری با نوع رشته باشد، حتما این مقدار باید معادل عدد مختلط معتبر نوشته شده باشد. اگر مقدار داده شده از نوع رشته باشد اما ساختاری شبیه به اعداد مختلط نداشته باشد، مفسر پایتون خطای استثنای ValueError را برمیگرداند. در این صورت، پیغام زیر به عنوان متن خطا نمایش داده میشود.
ValueError: Complex() arg is a malformed string
پیغام بالا بیان میکند که آرگومان ارسال شده به تابع complex() رشتهای با مقدار ناقص است. خطای ValueError یکی از حالتهای استثنای درونی پایتون است. این خطا وقتی روی میدهد که توابع پایتون پارامترهای درست با نوع صحیح را دریافت میکنند. اما مقدار پارامتر، برای استفاده در تابع مورد نظر، مناسب نیست. معمولا برای مدیریت خطاهای استثنا در پایتون از ساختارهای try except استفاده میکنیم.
مثالی درباره استفاده از Complex در پایتون
در این بخش، برای درک بهتر عملکرد تابع complex() چند مثال مختلف را بررسی کردهایم.

در مثال اول هر دو پارامتر را به تابع complex() ارسال کردیم. اگر پارامتر اول به صورت رشته ارسال شود، دیگر نباید پارامتر دوم را ارسال کنیم.
بعد از اجرای کدهای بالا خروجی زیر توسط مفسر پایتون تولید شده و در کنسول نمایش داده میشود.
Complex number formed: (10+7j)
در مثال زیر فقط یک پارامتر به متد complex() ارسال کردهایم. مقدار این پارامتر با رعایت شرطهای گفته شده و به صورت رشته نوشته شده است.
بعد از اجرای کدهای بالا خروجی زیر، توسط مفسر پایتون تولید شده و در کنسول نمایش داده میشود.
Complex number formed: (5-7j)
یادگیری پایتون با کمک فیلم های آموزشی فرادرس
پایتون زبان قدرتمندی است. این زبان کتابخانههای متنوعی دارد و بسیار انعطافپذیر است. در نتیجه به یکی از پرکاربردترین زبانهای برنامه نویسی دنیا تبدیل شده است. افراد زیادی برای رسیدن به موقعیتهای شغلی مورد نظرشان در صنعت برنامه نویسی، زمان و انرژی خود را در راه آموزش پایتون مصرف میکنند. لازم به اشاره است که آموزش پایتون را میتوان براحتی و با سرعت زیادی شروع کرد. ولی یادگیری مراحل پیشرفته به استفاده از منابع قوی و اساتید باتجربه نیاز دارد. به همین دلیل انتخاب منابع درست و باکیفیت، برای آموزش مفاهیم پیشرفته پایتون ضروری است. فیلمهای آموزشی فرادرس یکی از بهترین منابع برای آموزش پایتون از سطوح ابتدایی تا پیشرفته هستند.

فرادرس به عنوان تولید کننده محتوای آموزشی آنلاین، تمرکز خاصی بر روی تکنولوژیهای کامپیوتری دارد. یکی از محبوبترین این تکنولوژیها زبان برنامه نویسی پایتون است. به همین دلیل مطالب و فیلمهای آموزشی با کیفیتی در فرادرس برای پایتون تولید شدهاند. فیلمهای فرادرس مطالب پیشرفته پایتون را با زبانی شیوا و شیرین به مخاطبان آموزش دهند. تهیه این فیلمها از فرادرس یکی از مقرونبهصرفهترین روشها برای آموزش پایتون است. در فهرست پایین، چند مورد از فیلمهای آموزش پایتون را معرفی کردهایم.
مثال تابع Complex در پایتون
تا به اینجای مطلب، اطلاعات خوبی درباره استفاده از complex() در پایتون بدست آوردهایم. در این بخش برای درک بهتر این متد و روش استفاده از آن چند مثال مختلف را بررسی میکنیم.
تبدیل رشته به عدد مختلط
شاید بخواهیم پارامتر اول را به صورت مقداری با نوع رشته بنویسیم. این کار مجاز است. اما باید توجه کنیم که مقدار این پارامتر باید به شکل عدد مختلط مانند 2 + 3j نوشته شود. در غیر این صورت، استفاده از متد complex() در پایتون باعث برخواست خطای استثنایی به نام ValueError میشود.
متد complex() در پایتون یکی از متدهای پایتون برای ساخت و استفاده از انواع داده اصلی است. این دستهبندی فقط یک بخش از تمام متدهای پایتون است. برای آشنایی بیشتر با مهمترین دستهبندی متدهای پایتون، میتوانید مطلب مربوط به آن را در مجله فرادرس مطالعه کنید.
در مثال پایین از شکل رسمی عدد مختلط به عنوان مقدار ورودی برای تابع complex() استفاده کردهایم.
بعد از اجرای کدهای بالا خروجی زیر، تولید شده و در کنسول نمایش داده میشود.
Complex number formed: (1+3j)
در مثال زیر از ساختار نامعتبری برای نمایش عدد مختلط استفاده کردیم. در پایتون نمیتوانیم با چنین قالبی عدد مختلط به تابع complex() ارسال کنیم.
بعد از اجرای کد بالا خطای ValueError اعلام شده و به شکل پایین در کنسول نمایش داده میشود.
ValueError: complex() arg is a malformed string complex_number = complex('2i+3j') Line 1 in <module> (Solution.py)
پارامتر ارسال شده از نوع عدد صحیح است
برای بخش اول تابع Complex در پایتون میتوانیم از عددی با نوع Integer هم استفاده کنیم. اعداد صحیح را هم میتوان به شکل معمولی نوشت و هم با نوع رشته. برای مثال، میخواهیم عدد مختلط 3 + 0j را بسازیم. در این صورت میتوانیم عدد حقیقی ۳ را به صورت مقداری با نوع رشته – مانند ‘3’ – به عنوان پارامتر اول به این متد ارسال کنیم.
در کادر زیر روش انجام این کار را بررسی کردهایم.
بعد از اجرای کدهای بالا خروجی زیر، تولید شده و در کنسول پایتون نمایش داده میشود.
Complex number formed: (3+0j)
استفاده از مقادیر اعشار برای تشکیل عدد مختلط
برای مقداردهی به پارامتر اول در متد complex() میتوانیم از اعداد اعشاری یا Float در پایتون هم استفاده کنیم.

برای مثال، فرض کنیم که باید عدد مختلط 5.3 + 0j را ایجاد کنیم. به این منظور میتوانیم عدد 5.3 را به صورت عادی یا مقداری با نوع رشته ‘5.3’ به تابع complex() ارسال کنیم.
بعد از اجرای کدهای بالا خروجی زیر، تولید شده و در کنسول نمایش داده میشود.
Complex number formed: (5.3+0j)
استفاده از اعداد مختلط به عنوان پارامتر اول
برای ساخت اعداد مختلط جدید حتی میتوانیم از عدد مختلط هم به عنوان مقدار پارامتر اول استفاده کنیم. به عنوان نمونه میتوانیم به سادگی عدد 2+3j را بهجای پارامتر به تابع Complex در پایتون بفرستیم.
بعد از اجرای کدهای بالا خروجی زیر، تولید شده و در کنسول نمایش داده میشود.
Complex number formed: (2+6j)
ساخت اعداد مختلط بدون استفاده از Complex در پایتون
استفاده از تابع complex() تنها راه ساخت اعداد مختلط در پایتون نیست. روش سادهتری هم وجود دارد. برای ساخت اعداد مختلط فقط کافی است از کاراکتر j استفاده کنیم. این کاراکتر را پشت بخش موهومی عدد مورد نظر مینویسیم. با کمک مثال سادهای در کد پایین، روش استفاده از این تکنیک را بررسی کردهایم.
بعد از اجرای کدهای بالا خروجی زیر، تولید شده و در کنسول پایتون نمایش داده میشود.
Complex number formed: 2-3j
چگونه در فرادرس پیاده سازی پروژه های پایتون را یاد بگیریم؟
زبان برنامه نویسی پایتون در زمینههای زیادی مانند هوش مصنوعی، امنیت سایبری و غیره کاربرد دارد. به همین دلیل، موقعیتهای شغلی زیادی هم برای برنامه نویسان آن وجود دارد. توسعه دهندگان پایتون باید بتوانند پروژههای مورد نظر خود را با این زبان پیادهسازی کنند. یکی از روشهای مؤثر برای کسب تجربه در زمینه پیادهسازی پروژههای پایتون، استفاده از فیلمهای پروژهمحور فرادرس است. فرادرس بزرگترین و حرفهایترین تولیدکننده فیلمهای آموزشی به زبان فارسی است. این وبسایت، فیلمهای پروژهمحور زیادی هم در زمینه پایتون طراحی و منتشر کرده است.
استفاده از این فیلمها هم توانایی برنامه نویسان را افزایش میدهد و هم رزومه مناسبی برای آنان ایجاد میکند. در پایین، چند مورد از فیلمهای آموزشی پروژهمحور پایتون را معرفی کردهایم.
برای مشاهده فیلمهای بیشتر بر روی تصویر زیر کلیک کرده و به صفحه اصلی این مجموعه آموزشی هدایت شوید.

جمعبندی
در این مطلب از مجله فرادرس با متد Complex در پایتون آشنا شدهایم. با کمک این متد، برنامه نویسان میتوانند مقادیر رشتهای معتبر یا اعداد صحیح و اعشاری را به اعداد مختلط تبدیل کنند. سینتکس مورد استفاده برای این تابع به صورت Complex(real, imaginary) نوشته میشود. تابع complex() در پایتون دو پارامتر مختلف دریافت میکند. وجود پارامتر اول در این متد الزامی است. اما پارامتر دوم اختیاری است. تابع complex() با کمک پارامترهای ارسال شده، عدد مختلط میسازد. سپس این عدد را در خروجی برمیگرداند. اگر در پارامتر اول از مقداری با نوع رشته استفاده کردیم، آن مقدار حتما باید به شکل صحیح اعداد مختلط نوشته شده باشد. در غیر این صورت با پیغام خطای ValueError روبهرو میشویم.
بعضی از پروژههای پایتون نیازمند حل مسائل مختلف ریاضی هستند. برای همین در این زبان، ابزارهای بسیار مناسبی برای کار بر روی مسئلههای ریاضی تعبیه شدهاند. برنامه نویسان پایتون با مسلط شدن بر روی این ابزارها و کسب مهارت در استفاده از آنها میتوانند بسیاری از پروژهای پایتون را پیادهسازی کنند. تابع Complex در پایتون یکی از کاربردیترین ابزارهای برای کار با اعداد مختلط است.
source