مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

مدرسه زبان برنامه‌نویسی PYTHON

وبلاگی جهت معرفی - آموزش و تحلیل زبان برنامه نویسی ‍پایتون

بایگانی

برای ایجاد یک برنامه گرافیکی در پایتون که بتواند به‌طور خودکار ایمیل ارسال کند، می‌توانیم از کتابخانه‌های tkinter برای رابط کاربری و smtplib برای ارسال ایمیل استفاده کنیم. در زیر یک نمونه کد ساده برای این کار آورده شده است:

🔴🔴🔴 کد برنامه python

import tkinter as tk
from tkinter import messagebox
import smtplib
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart

def send_email():
    sender_email = entry_sender.get()
    receiver_email = entry_receiver.get()
    password = entry_password.get()
    subject = entry_subject.get()
    body = entry_body.get("1.0", tk.END)

    # ساختن ایمیل
    msg = MIMEMultipart()
    msg['From'] = sender_email
    msg['To'] = receiver_email
    msg['Subject'] = subject

    msg.attach(MIMEText(body, 'plain'))

    try:
        # اتصال به سرور SMTP و ارسال ایمیل
        server = smtplib.SMTP('smtp.gmail.com', 587)
        server.starttls()
        server.login(sender_email, password)
        server.send_message(msg)
        server.quit()
        messagebox.showinfo("Success", "Email sent successfully!")
    except Exception as e:
        messagebox.showerror("Error", f"Failed to send email: {e}")

# ایجاد پنجره اصلی
root = tk.Tk()
root.title("Email Sender")

# ایجاد ورودی ها
tk.Label(root, text="Sender Email:").pack()
entry_sender = tk.Entry(root, width=40)
entry_sender.pack()

tk.Label(root, text="Receiver Email:").pack()
entry_receiver = tk.Entry(root, width=40)
entry_receiver.pack()

tk.Label(root, text="Password:").pack()
entry_password = tk.Entry(root, show='*', width=40)
entry_password.pack()

tk.Label(root, text="Subject:").pack()
entry_subject = tk.Entry(root, width=40)
entry_subject.pack()

tk.Label(root, text="Body:").pack()
entry_body = tk.Text(root, width=40, height=10)
entry_body.pack()

# دکمه ارسال
send_button = tk.Button(root, text="Send Email", command=send_email)
send_button.pack()

# اجرای حلقه اصلی
root.mainloop()

How To Create A Business Email: A Simple Guide – Forbes Advisor


🔴🔴🔴 توضیحات کد
1. کتابخانه‌ها: 
   - tkinter برای ساخت رابط کاربری.
   - smtplib و email برای ارسال ایمیل.

2. **تابع send_email**: 
   - ایمیل فرستنده، گیرنده، رمز عبور، موضوع و متن ایمیل را از ورودی‌ها دریافت می‌کند.
   - یک ایمیل با استفاده از MIMEMultipart ساخته و ارسال می‌کند.

3. رابط کاربری: 
   - ورودی‌های لازم برای ایمیل (فرستنده، گیرنده، رمز عبور، موضوع و متن) ایجاد شده‌اند.
   - یک دکمه برای ارسال ایمیل وجود دارد.

🔴🔴🔴 نکته امنیتی
برای ارسال ایمیل از حساب Google، ممکن است نیاز باشد تا گزینه "Allow less secure apps" را در تنظیمات حساب Google فعال کنید. همچنین، استفاده از رمزهای عبور اپلیکیشن (App Passwords) نیز توصیه می‌شود.

🔴🔴🔴 نحوه اجرا
- کد را در یک فایل با پسوند .py ذخیره کنید.
- با اجرای فایل، پنجره گرافیکی برای ارسال ایمیل نمایش داده می‌شود. 

این برنامه یک نمونه ساده است و می‌تواند بر حسب نیاز شما گسترش یابد یا سفارشی شود./ سعید دامغانیان - رادیو صدای ققنوس

۱ نظر موافقین ۰ مخالفین ۰ ۱۲ مهر ۰۳ ، ۱۱:۱۱
سعید دامغانیان

آیا پایتون برای شروع برنامه نویسی از صفر زبان مناسبی است؟

Why Python Is Good Programming Language for Machine Learning

بله، پایتون یکی از بهترین زبان‌ها برای شروع برنامه‌نویسی از صفر است. در زیر به چند دلیل اصلی اشاره می‌کنم:

🔵🔵🔵 ۱. سادگی و خوانایی
- سینتکس ساده: پایتون دارای سینتکسی ساده و قابل فهم است که یادگیری آن را برای مبتدیان آسان‌تر می‌کند. مثال‌ها و کدها به وضوح قابل درک هستند.
  
🔵🔵🔵 ۲. جامعه بزرگ و منابع آموزشی
- منابع آموزشی فراوان: پایتون دارای منابع آموزشی، کتاب‌ها، و دوره‌های آنلاین زیادی است که به یادگیری کمک می‌کنند.
- جامعه فعال: وجود یک جامعه بزرگ از برنامه‌نویسان پایتون به شما این امکان را می‌دهد که در صورت بروز مشکلات، به راحتی کمک بگیرید.

🔵🔵🔵 ۳. کاربردهای گسترده
- تنوع کاربردها: پایتون در زمینه‌هایی مثل توسعه وب، علم داده، یادگیری ماشین، اتوماسیون، و توسعه بازی کاربرد دارد. این تنوع به شما این امکان را می‌دهد که بعد از یادگیری پایه، به زمینه‌های مختلفی بروید.

🔵🔵🔵 ۴. پشتیبانی از کتابخانه‌ها
- کتابخانه‌های قدرتمند: پایتون دارای کتابخانه‌های بسیاری است که کار با داده‌ها، انجام محاسبات علمی، و توسعه وب را آسان‌تر می‌کند.

🔵🔵🔵 ۵. یادگیری مفاهیم برنامه‌نویسی
- یادگیری اصول اولیه: با یادگیری پایتون می‌توانید اصول برنامه‌نویسی مثل متغیرها، حلقه‌ها، توابع و شی‌گرایی را به راحتی یاد بگیرید.

🔵🔵🔵 نتیجه‌گیری
به طور کلی، پایتون یک گزینه عالی برای افرادی است که می‌خواهند از صفر برنامه‌نویسی را آغاز کنند. سادگی، قدرت، و تنوع کاربردهای آن باعث می‌شود که یادگیری آن تجربه‌ای لذت‌بخش باشد./ سعید دامغانیان - رادیو صدای ققنوس

۰ نظر موافقین ۰ مخالفین ۰ ۱۲ مهر ۰۳ ، ۱۱:۰۷
سعید دامغانیان

Artificial intelligence: What is AI? | Live Science

زبان برنامه‌نویسی پایتون به دلیل سادگی، خوانایی و کتابخانه‌های قدرتمند، به یکی از محبوب‌ترین زبان‌ها در حوزه هوش مصنوعی (AI) تبدیل شده است. در ادامه به کاربردهای اصلی پایتون در هوش مصنوعی می‌پردازم:

🔵🔵🔵 ۱. یادگیری ماشین (Machine Learning)

- کتابخانه‌ها: پایتون دارای کتابخانه‌های متنوعی مانند Scikit-learn، TensorFlow و Keras است که برای پیاده‌سازی الگوریتم‌های یادگیری ماشین استفاده می‌شوند.
- مدل‌سازی: امکان ایجاد و آموزش مدل‌های پیش‌بینی، طبقه‌بندی و خوشه‌بندی با استفاده از داده‌های بزرگ.

🔵🔵🔵 ۲. یادگیری عمیق (Deep Learning)

- شبکه‌های عصبی: با استفاده از کتابخانه‌های مانند TensorFlow و PyTorch، می‌توان شبکه‌های عصبی پیچیده‌ای را برای پردازش داده‌های تصویری، متنی و صوتی پیاده‌سازی کرد.
- مدل‌های پیشرفته: پشتیبانی از مدل‌های پیشرفته مانند شبکه‌های کانولوشن (CNN) و شبکه‌های بازگشتی (RNN).

🔵🔵🔵 ۳. پردازش زبان طبیعی (Natural Language Processing)

- تحلیل متن: با استفاده از کتابخانه‌هایی مانند NLTK و SpaCy، می‌توان متن‌ها را تحلیل کرد، استخراج اطلاعات انجام داد و مدل‌های زبانی ایجاد کرد.
- ترجمه ماشینی: پیاده‌سازی سیستم‌های ترجمه ماشینی مانند Google Translate.

🔵🔵🔵  ۴. بینایی کامپیوتری (Computer Vision)

- شناسایی و تشخیص تصویر: با استفاده از OpenCV و کتابخانه‌های یادگیری عمیق، می‌توان الگوریتم‌های شناسایی و تشخیص تصویر را پیاده‌سازی کرد.
- تحلیل و پردازش تصویر: انجام پردازش‌های مختلف بر روی تصاویر برای استخراج اطلاعات مفید.

🔵🔵🔵  ۵. رباتیک

- کنترل ربات‌ها: پایتون برای برنامه‌نویسی ربات‌ها و سیستم‌های خودران استفاده می‌شود.
- شبیه‌سازی: استفاده از کتابخانه‌هایی مانند ROS (Robot Operating System) برای شبیه‌سازی و کنترل ربات‌ها.

🔵🔵🔵 ۶. سیستم‌های توصیه‌گر (Recommendation Systems)

- تحلیل رفتار کاربر: با استفاده از الگوریتم‌های یادگیری ماشین، پایتون می‌تواند به تحلیل رفتار کاربران و ارائه توصیه‌های شخصی‌سازی شده بپردازد.
- مدل‌های فیلترینگ: پیاده‌سازی الگوریتم‌های فیلترینگ بر اساس محتوا و collaborative filtering.

🔵🔵🔵 ۷. تحلیل داده و پیش‌بینی

- تحلیل داده: پایتون به عنوان یک زبان قدرتمند در تحلیل داده‌های بزرگ و استخراج الگوهای مفید شناخته می‌شود.
- پیش‌بینی روندها: استفاده از مدل‌های آماری و یادگیری ماشین برای پیش‌بینی روندهای آینده.

🔵🔵🔵 نتیجه‌گیری

پایتون به دلیل سادگی و وجود کتابخانه‌های گسترده، به انتخاب اول بسیاری از محققان و توسعه‌دهندگان در حوزه هوش مصنوعی تبدیل شده است. از یادگیری ماشین و یادگیری عمیق گرفته تا پردازش زبان طبیعی و بینایی کامپیوتری، پایتون ابزارهای متنوعی را برای توسعه کاربردهای هوش مصنوعی فراهم می‌کند.

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۵۶
سعید دامغانیان

Pandas vs NumPy | Top 7 Differences You Should Know

مقایسه عملکرد NumPy و Pandas در پروژه‌های بزرگ به عوامل متعددی بستگی دارد. در اینجا به چند نکته کلیدی در این زمینه اشاره می‌شود:

🔴🔴🔴 ۱. سرعت و کارایی

- NumPy:
  - عملکرد بالا: به دلیل استفاده از آرایه‌های چندبعدی و بهینه‌سازی شده برای عملیات عددی، NumPy معمولاً سرعت بسیار بالاتری در محاسبات ریاضی دارد.
  - عملیات برداری: می‌توان با استفاده از عملیات‌های برداری به جای حلقه‌های تکرار، محاسبات را به طرز چشمگیری تسریع کرد.

- Pandas:
  - کاربردی‌تر اما کندتر: Pandas برای کار با داده‌های ساختارمند طراحی شده و به همین دلیل ممکن است در مقایسه با NumPy در برخی عملیات‌ها کندتر باشد. با این حال، قابلیت‌های بیشتری برای تجزیه و تحلیل داده‌ها و کار با داده‌های گم‌شده ارائه می‌دهد.
  - بهینه‌سازی برای داده‌های جدولی: در پروژه‌های بزرگ که داده‌های جدولی دارند، Pandas به خوبی عمل می‌کند و می‌تواند بهینه‌سازی‌هایی انجام دهد که در NumPy ممکن است پیچیده‌تر باشد.

🔴🔴🔴 ۲. مدیریت داده‌ها

- NumPy:
  - مناسب برای داده‌های عددی و محاسباتی. اگر داده‌ها به صورت آرایه‌های عددی ساده باشند، NumPy بهترین گزینه است.

- Pandas:
  - توانایی مدیریت داده‌های پیچیده و مختلط. اگر پروژه شامل داده‌های مختلف (عدد، متن، تاریخ) باشد، Pandas به دلیل قابلیت‌های قوی‌اش برای پاک‌سازی، گروه‌بندی و تجزیه و تحلیل داده‌ها مناسب‌تر است.

🔴🔴🔴 ۳. استفاده از حافظه

- NumPy:
  - به طور کلی از نظر مصرف حافظه بهینه‌تر است، زیرا آرایه‌های NumPy از نوع داده‌های یکسان استفاده می‌کنند و این باعث کاهش overhead حافظه می‌شود.

- Pandas:
  - مصرف حافظه ممکن است بیشتر باشد، به ویژه برای داده‌های بزرگ و مختلط، زیرا هر ستون در یک DataFrame می‌تواند نوع داده متفاوتی داشته باشد.

🔴🔴🔴 ۴. مقیاس‌پذیری

- NumPy:
  - برای محاسبات عددی در مقیاس بزرگ به خوبی عمل می‌کند، اما در مدیریت داده‌های بزرگتر از آرایه‌ها ممکن است محدودیت‌هایی وجود داشته باشد.

- Pandas:
  - می‌تواند به خوبی با داده‌های بزرگ و پیچیده کار کند، اما برای داده‌های بسیار بزرگ (مثلاً در حد ترابایت) ممکن است نیاز به استفاده از ابزارهای دیگر مانند Dask یا PySpark باشد.

🔴🔴🔴 نتیجه‌گیری

در پروژه‌های بزرگ:

- اگر تمرکز بر روی محاسبات عددی و کار با آرایه‌های عددی باشد، NumPy گزینه بهتری است.
- اگر پروژه شامل تجزیه و تحلیل داده‌ها و مدیریت داده‌های پیچیده باشد، Pandas انتخاب مناسبی خواهد بود.

به طور کلی، در بسیاری از پروژه‌ها از هر دو کتابخانه به صورت مکمل استفاده می‌شود.

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۵۳
سعید دامغانیان

NumPy و Pandas هر دو کتابخانه‌های مهمی در پایتون هستند که برای کار با داده‌ها و تحلیل علمی استفاده می‌شوند. با این حال، هرکدام هدف و ویژگی‌های خاص خود را دارند. در ادامه به تفاوت‌های اصلی بین NumPy و Pandas می‌پردازم:

🔴🔴🔴 ۱. هدف اصلی

- NumPy:
  - تمرکز بر روی محاسبات عددی و کار با آرایه‌های چندبعدی.
  - ارائه توابع ریاضی و عملیات‌های خطی به صورت بهینه.

- Pandas:
  - طراحی شده برای تجزیه و تحلیل داده‌ها و مدیریت داده‌های ساختارمند.
  - فراهم آوردن ابزارهایی برای کار با داده‌های جدولی (DataFrames) و سری‌ها (Series).

🔴🔴🔴 ۲. نوع داده

- NumPy:
  - نوع داده اصلی ndarray است که برای آرایه‌های چندبعدی استفاده می‌شود.
  - مناسب برای داده‌های عددی و علمی.

- Pandas:
  - نوع داده اصلی DataFrame برای داده‌های جدولی و Series برای داده‌های یک‌بعدی است.
  - مناسب برای داده‌های مختلط، شامل متن، تاریخ و عدد.

🔴🔴🔴 ۳. امکانات

- NumPy:
  - توابع ریاضی، آمار و جبر خطی.
  - پشتیبانی از عملیات‌های عددی سریع و کارآمد.

- Pandas:
  - امکانات پیشرفته برای پاک‌سازی داده‌ها، گروه‌بندی، ادغام و فیلتر کردن داده‌ها.
  - قابلیت کار با داده‌های گم‌شده و تغییر شکل داده‌ها.

🔴🔴🔴 ۴. سهولت استفاده

- NumPy:
  - مناسب برای کارهای عددی و محاسباتی، اما ممکن است برای مدیریت داده‌های پیچیده چالش‌بر‌انگیز باشد.

- Pandas:
  - بسیار کاربرپسند و مناسب برای تجزیه و تحلیل داده‌ها، با امکاناتی برای راحتی در کار با داده‌ها.

🔴🔴🔴 ۵. عملکرد

- NumPy:
  - بهینه‌سازی شده برای سرعت در محاسبات عددی با آرایه‌ها.

- Pandas:
  - ممکن است در برخی موارد کندتر باشد، زیرا امکانات بیشتری را ارائه می‌دهد و تمرکز بیشتری بر روی داده‌های پیچیده دارد.

🔴🔴🔴 نتیجه‌گیری

NumPy و Pandas در کنار هم ابزارهای قدرتمندی را برای کار با داده‌ها فراهم می‌کنند. برای محاسبات عددی و علمی، NumPy انتخاب بهتری است، در حالی که برای تجزیه و تحلیل داده‌ها و مدیریت داده‌های ساختارمند، Pandas مناسب‌تر است. به طور کلی، در پروژه‌های داده‌کاوی و علم داده، معمولاً هر دو کتابخانه به صورت همزمان استفاده می‌شوند.

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۵۲
سعید دامغانیان

برای نوشتن برنامه‌ای به زبان پایتون که آی‌پی کاربر را نشان دهد، می‌توانیم از کتابخانه requests برای دریافت اطلاعات آی‌پی از یک سرویس وب استفاده کنیم. در اینجا یک مثال ساده آورده شده است:

🔵🔵🔵 کد برنامه

 

import requests

def get_ip():
    try:
        response = requests.get('https://api.ipify.org?format=json')
        response.raise_for_status()  # بررسی وضعیت پاسخ
        data = response.json()
        return data['ip']
    except requests.RequestException as e:
        return f"Error: {e}"

if __name__ == "__main__":
    user_ip = get_ip()
    print(f"User Ip is: {user_ip}")

🔵🔵🔵 توضیحات کد

1. وارد کردن کتابخانه: از کتابخانه requests برای ارسال درخواست HTTP استفاده می‌کنیم.
2. **تابع get_ip**:
   - با استفاده از requests.get به API ipify درخواست ارسال می‌کند.
   - پاسخ را به فرمت JSON تبدیل کرده و آی‌پی را استخراج می‌کند.
   - در صورت بروز خطا، پیام خطا را برمی‌گرداند.
3. اجرای برنامه: در بخش اصلی برنامه، تابع get_ip فراخوانی شده و آی‌پی کاربر چاپ می‌شود.

🔵🔵🔵 نحوه اجرا

1. اطمینان حاصل کنید که کتابخانه requests نصب شده باشد. اگر نصب نیست، می‌توانید با دستور زیر آن را نصب کنید:

  
   pip install requests
   

2. سپس کد را در یک فایل با پسوند .py ذخیره کرده و اجرا کنید:

  
   python your_script.py
   

با اجرای برنامه، آی‌پی عمومی کاربر نمایش داده می‌شود.

۱ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۴۹
سعید دامغانیان

🔵 برای نوشتن برنامه‌ای به زبان پایتون که تعداد اعداد اول بین دو عدد دلخواه را نشان دهد، می‌توانیم از تابعی برای بررسی اول بودن هر عدد استفاده کنیم. در زیر یک مثال ساده از این برنامه آورده شده است:

def is_prime(n):
    """بررسی اول بودن یک عدد"""
    if n <= 1:
        return False
    for i in range(2, int(n**0.5) + 1):
        if n % i == 0:
            return False
    return True

def count_primes_between(start, end):
    """شماره‌گذاری اعداد اول بین دو عدد"""
    count = 0
    for num in range(start, end + 1):
        if is_prime(num):
            count += 1
    return count

if __name__ == "__main__":
    start = int(input("Enter first number: "))
    end = int(input("Enter second number: "))
    
    if start > end:
        print("First number must be less than second one.")
    else:
        prime_count = count_primes_between(start, end)
        print(f"Number of prime number between {start} و {end}: {prime_count}")

🔵🔵🔵 توضیحات کد

1. **تابع is_prime(n)**:
   - این تابع بررسی می‌کند که آیا عدد n اول است یا خیر.
   - اگر n کمتر از یا برابر با ۱ باشد، False برمی‌گرداند.
   - در غیر این صورت، با استفاده از یک حلقه، بررسی می‌کند که آیا n بر هیچ عددی از ۲ تا جذر آن تقسیم‌پذیر نیست.

2. **تابع count_primes_between(start, end)**:
   - این تابع تعداد اعداد اول بین دو عدد start و end را شمارش می‌کند.
   - از یک حلقه برای بررسی هر عدد در این محدوده استفاده می‌کند و اگر عدد اول باشد، شمارش را افزایش می‌دهد.

3. بخش اصلی برنامه:
   - از کاربر دو عدد را دریافت کرده و بررسی می‌کند که آیا محدوده معتبر است یا خیر.
   - تعداد اعداد اول را محاسبه کرده و نتیجه را نمایش می‌دهد.

🔵🔵🔵 نحوه اجرا

1. کد را در یک فایل با پسوند .py ذخیره کنید.
2. سپس برنامه را با استفاده از دستور زیر اجرا کنید:

  
   python your_script.py
   

3. دو عدد را وارد کنید تا تعداد اعداد اول بین آن‌ها نمایش داده شود.

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۴۴
سعید دامغانیان

برای برنامه‌نویسی با پایتون، نیازمندی‌های سیستم به صورت کلی به نوع پروژه و کاربردهای خاص شما بستگی دارد. با این حال، در زیر مشخصات سیستم پیشنهادی برای برنامه‌نویسی با پایتون آورده شده است:

🔴 مشخصات حداقلی

- پردازنده (CPU): 
  - حداقل: پردازنده دو هسته‌ای (Dual-core)
  - پیشنهادی: پردازنده چهار هسته‌ای (Quad-core) یا بالاتر

- حافظه (RAM): 
  - حداقل: 4 گیگابایت
  - پیشنهادی: 8 گیگابایت یا بیشتر

- فضای ذخیره‌سازی: 
  - حداقل: 20 گیگابایت فضای خالی
  - پیشنهادی: SSD با ظرفیت 256 گیگابایت یا بیشتر برای سرعت بهتر

- سیستم عامل:
  - ویندوز 10 یا 11
  - macOS (نسخه‌های جدید)
  - توزیع‌های لینوکس (Ubuntu، Fedora و ...)

🔴 مشخصات پیشنهادی برای پروژه‌های بزرگتر یا هوش مصنوعی

- پردازنده (CPU): 
  - حداقل: پردازنده چهار هسته‌ای
  - پیشنهادی: پردازنده‌های چند هسته‌ای (مثل Intel i5/i7 یا AMD Ryzen 5/7)

- حافظه (RAM): 
  - حداقل: 8 گیگابایت
  - پیشنهادی: 16 گیگابایت یا بیشتر (به ویژه برای پروژه‌های بزرگ داده یا یادگیری ماشین)

- فضای ذخیره‌سازی: 
  - SSD با ظرفیت 512 گیگابایت یا بیشتر برای ذخیره‌سازی سریع داده‌ها و پروژه‌ها.

- کارت گرافیک (GPU): 
  - برای پروژه‌های یادگیری عمیق، یک کارت گرافیک با قابلیت CUDA (مثل NVIDIA GeForce) می‌تواند بسیار مفید باشد.

🔴 نرم‌افزارها و ابزارهای لازم

- نصب پایتون: نسخه 3.x (آخرین نسخه پایدار)
- مدیر بسته: pip (به طور پیش‌فرض با پایتون نصب می‌شود)
- ویرایشگر کد یا IDE:
  - ویرایشگرهای سبک: Visual Studio Code، Sublime Text
  - IDEهای کامل: PyCharm، Jupyter Notebook (برای داده‌کاوی و یادگیری ماشین)

🔴🔴🔴 نتیجه‌گیری

با توجه به نوع پروژه و نیازهای خاص خود، می‌توانید مشخصات سیستم را تنظیم کنید. برای پروژه‌های ساده، مشخصات حداقلی کافی است، اما برای پروژه‌های پیچیده‌تر، داشتن سخت‌افزار قوی‌تر می‌تواند به بهبود عملکرد و کارایی کمک کند.

 

Desktop Computer - Editmicro

۰ نظر موافقین ۰ مخالفین ۰ ۰۲ مهر ۰۳ ، ۰۴:۳۹
سعید دامغانیان

اعداد فیبوناچی اعدادی هستند که به صورت سری مقابل نوشته می شوند. 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, …
در علم ریاضیات رابطه ساخت عدد n ام با استفاده از دو عدد قبل از رابطه زیر بدست می‌آید:

 

Fn = Fn-1 + Fn-2

with seed values : F0 = 0 and F1 = 1.

 

می خواهیم با استفاده از حلقه while ده عدد از سری فیبوناچی را چاپ کنیم.

n = 10
num1 = 0
num2 = 1
next_number = num2  
count = 1

while count <= n:
    print(next_number, end=" ")
    count += 1
    num1, num2 = num2, next_number
    next_number = num1 + num2
print()

خروجی:

1 2 3 5 8 13 21 34 55 89 

و حالا به صورت بازگشتی کدی مینویسیم که یک عدد فیبوناچی مورد نظر (که در اینجا عدد شماره 9 است) را تولید کند:

def Fibonacci(n):

    # Check if input is 0 then it will
    # print incorrect input
    if n < 0:
        print("Incorrect input")

    # Check if n is 0
    # then it will return 0
    elif n == 0:
        return 0

    # Check if n is 1,2
    # it will return 1
    elif n == 1 or n == 2:
        return 1

    else:
        return Fibonacci(n-1) + Fibonacci(n-2)


# Driver Program
print(Fibonacci(9))

 

خروجی:

34

کد بهینه شده سری اعداد فیبوناچی:

# Function for nth fibonacci number 
def fibonacci(n):
    a = 0
    b = 1
    
    # Check is n is less
    # than 0
    if n < 0:
        print("Incorrect input")
        
    # Check is n is equal
    # to 0
    elif n == 0:
        return 0
      
    # Check if n is equal to 1
    elif n == 1:
        return b
    else:
        for i in range(1, n):
            c = a + b
            a = b
            b = c
        return b

# Driver Program
print(fibonacci(9))

 

۲ نظر موافقین ۰ مخالفین ۰ ۳۰ شهریور ۰۳ ، ۱۵:۴۸
سعید دامغانیان

جهت اجرای برنامه پایتون زیر می بایست با کتابخانه tkinter آشنایی داشته باشید.

ساعت دیجیتال با پایتون

 

#import all the required libraries first
import sys
from tkinter import *
#import time library to obtain current time
import time

#create a function timing and variable current_time
def timing():
    #display current hour,minute,seconds
    current_time = time.strftime("%H : %M : %S")
    #configure the clock
    clock.config(text=current_time)
    #clock will change after every 200 microseconds
    clock.after(200,timing)

#Create a variable that will store our tkinter window
root=Tk()
#define size of the window
root.geometry("600x300")
#create a variable clock and store label
#First label will show time, second label will show hour:minute:second, third label will show the top digital clock
clock=Label(root,font=("times",60,"bold"),bg="blue")
clock.grid(row=2,column=2,pady=25,padx=100)
timing()

#create a variable for digital clock
digital=Label(root,text="My Python's Digital Clock",font="times 24 bold")
digital.grid(row=0,column=2)

nota=Label(root,text="hours        minutes        seconds",font="times 15 bold")
nota.grid(row=3,column=2)

root.mainloop()

 

 

۲ نظر موافقین ۰ مخالفین ۰ ۲۸ شهریور ۰۳ ، ۲۱:۵۳
سعید دامغانیان