برنامه نویسی پایتون
726 subscribers
112 photos
28 videos
12 files
85 links
لینک گروه 👇👇👇
https://t.me/pygroupp
Download Telegram
یک کد جالب با پایتون!

ما میخوایم امروز یه کد بنویسیم که برای ما یسری اطلاعات ساختگی بسازی و بگه(کاملا رندوم) خب برای اینکار اول کتابخونه ی Faker رو میریزیم:

pip install Faker

روی لینوکس و مک هم میشه:
pip3 install Faker

خب حالا فایل پروژمون رو میسازیم
خط اول طبق معمول ماژول ها رو ایمپورت میکنیم:
from faker import Faker

خب حالا یه متغیر میسازیم به اسم faker و Faker() رو در اون ذخیره میکنیم:
faker = Faker()

الان باید اطلاعات مختلفی که میخوایم رو بگیریم
برای اسم فیک میزنیم:
print(fake.name())

برای دریافت ایمیل فیک:
print(fake.email())

شهر/کشور فیک:
print(fake.country())

و درآخر پروفایل فیک:
print(fake.profile())


خب کد کامل ما میشه:
from faker import Faker
fake = Faker()
print(fake.name())
print(fake.email())
print(fake.country())
print(fake.profile())

خب حالا خروجی این کد چی میشه؟
میشه چیزی شبیه عکسی که بالای این پیام دارید ملاحظه میکنید :)
ممنون از اینکه وقتتون رو گذاشتید و این متن نچندان خوب من رو خوندید :)

🆔 @LangPython
🔥3
یه کار باحال با پایتون!

این کد رو درون ویندوز اجرا کنین، صدای دستگاه نبض شمار ایجاد میکنه😐

import time
import winsound
FEREQUNCY=2570
DUR=500
while 1:
    winsound.Beep(FEREQUNCY,DUR)
    time.sleep(1)
    winsound.Beep(FEREQUNCY,DUR)


🆔 @LangPython
کتابخانه GTTS
‏GTTS مخفف Google Text To Speech با استفاده از Api گوگل ترنسلیت، می‌تونه متن رو به صدا تبدیل کنه.

با توجه به اینکه این کتابخونه از Api استفاده می‌کنه، پس برای استفاده ازش نیازمند اینترنت هستیم.

توی این کد کوتاه رشته Hello World رو به صدا تبدیل کردیم و بعد اون رو ذخیره کردیم و در خط آخر با استفاده از کتابخونه playsound، صدای ذخیره شده رو پخش کردیم

نصب کتابخانه‌های موردنیاز:
pip3 install gTTS playsound
🆔: @LangPython
لیست ها در پایتون💥
لیست به شما این امکان رو میده که بی نهایت متغیر رو با تایپ(Type) های متفاوت داشته باشید
مثال:
ex = [1, "salam", 2, "aref"]
الان لیست بالا متشکل از ۲ Integer(عدد صحیح) و دو String(رشته)هست
توی لیست ها هر مقدار مکان و جایی داره که ما بهش اندیس(index) میگیم
از ۰ شروع میشه و تا شماره خونه اخر ادامه داره
مثلا:
ex = [1,2]
الان اندیس (مکان) عدد ۱ توی این لیست خونه 0 هست
یعنی الان من بخوام برام خونه 0 این لیستو رو چاپ کنه عدد ۱ رو چاپ میکنه!
مثال:
ex = [1,2]
print(ex[0])
خروجی کد بالا عدد 1 هست.چرا؟چون توی خونه شماره ۰ هست
خب الان ما یه لیست تعریف کردیم
ولی مثلا چطور یه مقدار به لیستمون اضافه کنیم؟!
مثال: برنامه ای بنویسید که از کاربر ۳ عدد بگیرد و در یک لیست ذخیره کند!
راه حل:
#مرحله_اول:تعریف لیست!
numbers = []

#مرحله_دوم:گرفتن ۳ ورودی از کاربر و اضافه کردن به لیست.
a = 1
while a > 3:
    num = int(input())
    numbers.append(num)
    a += 1
یعنی در کل همچین کدی:
numbers = []
a = 1
while a > 3:
    num = int(input())
    numbers.append(num)
    a += 1
خب بریم برای توضیح کد:
در خط اول یه لیست خالی تعریف کردیم که ۳ تا عدد ورودی ما توش سیو بشه
در خط دوم یک متغیر تعریف کردیم که به کمکش ۳ بار از کاربر ورودی بگیریم(یه جور شمارنده)
در خط سوم یه حلقه while تعریف کردیم که به این معنی هست : تا موقعی که a(یعنی۱) از ۳ کمتر هست یه کاری بکن
حالا چکاری؟!
گفتیم متغیر integer از کاربر بگیر
و با کمک تابع append اونو توی لیست قرار دادیم
و در اخر هم متغیر شمارنده مون یعنی a رو به اضافه یک کردیم که هربار که این حلقه به پایان رسید یکی بهش اضافه بشه و حلقه ما ۳ تا ورودی از کاربر بگیره
خب الان توی لیست ما ۳ تا عدد سیو شد
مثلا ما 3,4,5 رو وارد کردیم
یعنی الان اگه لیستمون رو پرینت کنیم باید همچین چیزی به ما نشون داده بشه
[3,4,5]
و در واقع لیست ما اینطور هست:
numbers = [3,4,5]
دقت کنید که تابع append مقدار دریافتی رو به اخر لیست اضافه میکنه!
حالا دوتا مشکل هست:
من مقادیری که میخوام وارد کنم زیادن!
وقت ندارم دونه دونه append کنم.
راه حل:
شما میتونی به این صورت خیلی سریع مقادیرت رو به لیست اضافه کنی مثال:
الان من یه لیست به این صورت دارم:
ex = [0,1,2,3]
من میخوام اعداد 4 5 6 رو به اخر این لیست اضافه کنم
باید بیاید و اینطوری عمل کنید:
ex = [0,1,2,3]
ex = [0,1,2,3]  + [4,5,6]
حالا اگر بیایم و لیست ex رو پرینت کنیم با همچین صحنه ای مواجه میشیم:
[0,1,2,3,4,5,6]
به راحتی اضافه شد به پایان لیست!
مشکل دوم:من میخوام مقدارم رو جای دلخواه وارد کنم نه ته لیست!
راه حل:
استفاده از تابع insert!
مثال:
ex = [1,2,3]
ex.insert(2,10)
الان اگه ex رو پرینت کنید اینطور چیزی میشه:
ex = [1,2,10,3]
چی شد؟!
این تابع (insert) از شما دوتا پارامتر میگیره
یکی جایی که میخواید مقدار اضافه بشه(اندیس دلخواه) و یکی خود مقداری که میخواید اضافه شه
دوحالت داره:
1_اندیس موجود نیست
2_اندیس موجوده و پره
در حالت اول میاد به صورت خودکار مقدار رو به اخر لیست اضافه میکنه
و در حالت دوم میاد مقدار مورد نظر رو جایگزین میکنه و مقداری که قبلا توی اون اندیس بوده و مقادیری که بعدشن یکی یه خونه به سمت راست میفرسته یعنی یکی به اندیس هاشون اضافه میشه
پس تاحالا یاد گرفتیم:
ساختار لیست
اندیس ها
نحوه تعریف یک لیست
نحوه اضافه کردن یه مقدار به لیست(با توابعinsert و append و عملگر +)

این تنها بخش کوچیکی از لیست ها بود
برای اشنایی با بقیه تابع ها و... میتونید به وب سایت سبزلرن یه سربزنید کنید.
🆔: @LangPython
پسوورد لیست میکر با Python!

import string
from random import*

char = string.ascii_letters + string. punctuation + string.digits
password = "".join(choice(char) for x in range(reandint(10,80))
print (password)

براش تعریف کردم که اعداد تصادفی بین 10 تا 80 باشه
میتونید عوض کنید
اگر هم مایلید توی یک فایل سیو شه و در ترمینال پرینت نشه در مورد کار با فایل ها در پایتون میتونید بخونید:)
🆔: @LangPython
👍1
معرفی یه کتاب خونه کاربردی:
کتابخونه Flet
این کتابخونه امکان ساخت سریع رابط کاربری (UI) برای دسکتاپ، وب و موبایل رو به شما میده.
این کتابخونه بر اساس فلاتر ساخته شده و ویجت‌های زیبایی رو در اختیار شما قرار میده. با این حال برای استفاده از flet نیازی به SDK ندارید!

نصب کتابخونه توی cmd
pip install flet

سایت flet (اموزش هاش و یه سری توضیحات کاربردی):
flet.dev

🆔 @LangPython
👍3
خب دوستان امروز میخوام چند فریم ورک/میکرو فریم ورک پایتون رو برای توسعه وب بهتون معرفی کنم
زود تر بریم سر اصل مطلب

۱. Django
نوع: فریم ورک فول-استک
۲. CherryPy
نوع: میکروفریم ورک
۳. Bottle
نوع: میکروفریم ورک
۴. CubicWeb
نوع: فریم ورک فول-استک
۵. Dash
نوع: میکروفریم ورک
۶. Flask
نوع: میکروفریم ورک
۷. Hug
نوع: میکروفریم ورک
۸. Giotto
نوع: فریم ورک فول-استک
۹. Pyramid
نوع: فریم ورک فول-استک و مگافریم ورک
۱۰. Sanic
نوع: فریم ورک Asynchronous

این فقط ۱۰ تا از میکروفریم ورک/فریم ورک/مگافریم ورک های وب پایتون هستش درصورتی که تعداد اینها از ۳۰ تا هم بیشتره اما به جز ۷ تا ۸ تاشون بیشترش زیاد معروف نشدن :(

🆔 @LangPython
ذن پایتون چیست؟

ذن پایتون مجموعه ای از 20 اصل بنیادین و تأثیرگذار بر طراحی زبان Python است که توسط Tim Peters در سال 1999 میلادی نوشته شده است.


نکته ای جالب در رابطه با ذن پایتون وجود دارد که تنها 19 اصل از 20 اصل بیان شده است و Tim Peters اصل بیستم را برای خالق زبان پایتون یعنی Guido van Rossum کنار گذاشته است ولی تا این لحظه اصل بیستم توسط Guido van Rossum بیان نشده است.


برای مشاهده 19 اصل ذن پایتون میتونید وارد برنامه پایتونی خودتون بشید و دستور :
import this


را وارد کنید ، حالا اگه برنامه خودتون را اجرا کنید نتیجه زیر را میگیرید :
The Zen of Python, by Tim Peters

Beautiful is better than ugly.
Explicit is better than implicit.
Simple is better than complex.
Complex is better than complicated.
Flat is better than nested.
Sparse is better than dense.
Readability counts.
Special cases aren't special enough to break the rules.
Although practicality beats purity.
Errors should never pass silently.
Unless explicitly silenced.
In the face of ambiguity, refuse the temptation to guess.
There should be one-- and preferably only one --obvious way to do it.
Although that way may not be obvious at first unless you're Dutch.
Now is better than never.
Although never is often better than *right* now.
If the implementation is hard to explain, it's a bad idea.
If the implementation is easy to explain, it may be a good idea.
Namespaces are one honking great idea -- let's do more of those!


ترجمه 19 اصل ذن پایتون :

زیبا بهتر از زشت است.
بیان صریح بهتر از ضمنی است.
ساده بهتر از پیچیده ‌است.
پیچیده بهتر از افتضاح است.
مستقیم و صاف بهتر از تو در تو است.
پراکنده بهتر از متراکم است.
خوانایی مهم است.
موارد ویژه به اندازه‌ای ویژه نیستند که به خاطر آن‌ها بتوان قوانین را شکست.
گرچه عملی بودن خلوص را از بین می‌ برد.
خطاها هرگز نباید با سکوت رد شوند.
مگر اینکه صریحاً خاموش شده باشند.
در رو به رو شدن با ابهام، از وسوسه حدس زدن دوری کن.
برای انجام این کار باید یک (ترجیها یک) روش واضح وجود داشته باشد.
اگر چه ممکن است این روش در ابتدا واضح و آشکار نباشد مگر اینکه شما هلندی باشید.
حالا بهتر از هرگز است.
اگر چه «هرگز» اغلب بهتر از «همین حالا» است.
اگر تشریح پیاده‌سازی آن سخت باشد، ایده بدی است.
اگر تشریح پیاده‌سازی آن آسان باشد، ممکن است ایده خوبی باشد.
فضای نام‌ها ایده بی‌نظیری هستند، بیایید بیشتر از آن‌ها استفاده کنیم!

🆔 @LangPython
👍1
سلام دوستان عزیز .
طبق درخواست بعضی از دوستان گروه بک اند هم تشکیل شد .
میتونید سوالاتون رو در گروه بپرسید 😊

https://t.me/ourbackend
کلاس map
گاهی اوقات ممکن است بخواهید بر روی تمامی آیتم های یک لیست عملیاتی را انجام دهید

به طور مثال لیستی از نام‌های زیر را در نظر بگیرید
names = ['Ali', 'Nima', 'Mohammad', 'Sana']

حال شما می‌خواهید لیستی با طول نام‌ها را ایجاد کنید یعنی به لیست زیر برسید
lengths = [3, 4, 8, 4]

احتمالا برای این کار شما از یک حلقه for استفاده خواهید کرد ولی بهترین و سریع ترین روش استفاده از map است که می‌توانید بدون استفاده از هیچ حلقه‌ای این کار را انجام دهید

اولین آرگومان map، تابعی است که به آن آیتم های لیست داده می‌شود (تعداد پارامتر تابع با تعداد لیستی که به map داده شده باید برابر باشد)
و سایر آرگومان ها مربوط به لیست‌هایی است که میخواهید عملیات روی آن انجام شود

دقت کنید که خروجی map لیست نیست و باید آن را به لیست تبدیل کرد!!
🆔: @langpython
دریافت نسخه پایتون:
import platform
print(
    platform.python_version()
)


با استفاده از کتابخانه platform و متد python_version می‌تونید نسخه پایتون شخص رو دریافت و یا نمایش بدید
این کتابخانه به طور پیش‌فرض در پایتون وجود دارد(نیازی به نصب دوباره نداره!)

🆔: @langpython
لیست فایل و پوشه ها در یک مسیر
با استفاده از این دو تابع شما می‌توانید بدون نصب کتابخانه‌ای، لیست فایل و پوشه ها را از یک مسیر دریافت کنید

🆔: @langpython
langpython = {}
langpython[1] = "Python"
langpython[1.0] = "Java"

print(langpython)
#کوییز
🆔: @langpython
خروجی کد بالا چیست؟
Anonymous Quiz
28%
{1: "Java"}
34%
{1.0: "Java"}
38%
{1: "Python"}
👍2
دریافت مقدار پیش‌فرض برای کلیدهای مفقود در دیکشنری⌛️

قطعه کد زیر نشان می‌دهد که چگونه می‌توانید یک مقدار پیش‌فرض را در حالتی که کلید مورد نظر در دیکشنری موجود نباشد به دست آورید:

Syntax
dictionary.get(keyname, value)

d = {'a': 1, 'b': 2}
print(d.get('c', 3))

کامپایلر آنلاین👇🏼
متن کد رو کپی کردم و اماده ام بریم برا امتحان کردنش😈
class mobile:
def __init__(self, name, brand):
self. name = name
self. brand = brand

def get_name(self):
return self. name

class cpu(mobile):
def get_name(self):
print("This mobile has HighTech %s CPU " % self. name)


brand = cpu("Intel","Sony")
print(brand. get_name())

#کویز
🆔: @langpython