Anonymous
یه چیز عجیب تو جاوااسکریپت که برای بار اول برام عجیب بود😅
اگه تو Js بنویسید:
typeof null
چی برمی گردونه؟
خوب طبیعتاً باید "null" بگه ولی "object" میگه😐
در حالی که null اصلا Object نیست!
داستانش چیه؟
داستانش برمیگرده به سال 1995، وقتی که جاوااسکریپت تازه ساخته شده بود. اون زمان نحوه ذخیره نوع دادهها تو حافظه یه جوری طراحی شده بود که null اشتباهی به عنوان object شناخته شد.
بعدش فهمیدن باگه… ولی مشکل اینجا بود که اگه درستش کنن، کلی سایت و کد قدیمی از کار میافته.
نتیجه؟
یه باگ که الان شده رفتار Js
#javascript
Channel • @local4host
6 · 936 · LocalHost
Link
click to show
click to show
🧩 معرفی کتابخانه customtkinter در پایتون بهتر از Tkinter!
کتابخانه tkinter که به صورت پیشفرض روی پایتون نصبه و میتونید باهاش برنامههای گرافیکی بسازید ولی ظاهرش خیلی قدیمیه و بیشتر شبیه برنامههای ویندوز XP هست
ا tkinter بدرد برنامه های گرافیکی پیشرفته نمیخوره اینجاست که کتابخانه customtkinter وارد میشه!
🔥 customtkinter چیه؟
اcustomtkinter یه نسخهی مدرنتر و خوشگلتر از tkinter هست که سال 2021 معرفی شد.
با همون منطق و ساختار tkinter کار میکنه، ولی:
✅ ظاهر مدرن و حرفهایتر
✅ پشتیبانی از Dark Mode و Light Mode
✅ دکمهها و فریمهای زیباتر
✅ مناسب برای ساخت اپلیکیشنهای مدرن تر
📦 نصب کتابخانه:
pip install customtkinter
🖥نمونه کد:
import customtkinter as ctk
ctk.set_appearance_mode("dark")
ctk.set_default_color_theme("blue")
app = ctk.CTk()
app.geometry("400x300")
app.title("@local4host")
def button_click():
label.configure(text="دکمه کلیک شد ")
label = ctk.CTkLabel(app, text="سلام! از طرف @local4host ")
label.pack(pady=20)
button = ctk.CTkButton(app, text="کلیک کن", command=button_click)
button.pack(pady=10)
app.mainloop()
✅ ظاهرش مدرن و تمیزه
✅ از Dark Mode هم پشتیبانی میکنه
🌐 برای یادگیری بیشتر:
Customtkinter
#python #tkinter #customtkinter
@local4host
11 · 1K · LocalHost
چگونه از یوتیوب بدون دردسر دانلود کنیم؟👌
وقتی بخواهید از یوتیوب ویدیو دانلود کنید باید داخل وبسایتی برید که دانلود کنید یا برنامه چیزی نصب کنید که خیلی هم تبلیغ دارند و اینا
ولی اگه پایتون داشته باشی، خیلی راحت و تمیز میتونی خودت دانلود کنی.
چجوری؟ اینجوری😉:
اول از همه کتابخانهی yt-dlp استفاده میکنیم.
روش نصب:
pip install yt-dlp
و اگه نصب دارید چون yt-dlp هی آپدیت میشه ممکنه به ارور بخورید پس:
pip install --upgrade yt-dlp
کد:
import yt_dlp
url = input("لینک ویدیو یوتیوب را وارد کن: ")
ydl_opts = {
'outtmpl': '%(title)s.%(ext)s',
'format': 'best',
}
with yt_dlp.YoutubeDL(ydl_opts) as ydl:
ydl.download([url])
توضیح کد:
import yt_dlp
کتابخانه رو وارد میکنیم تا بتونیم ازش استفاده کنیم.
url = input(...)
لینک ویدیو رو از کاربر میگیریم.
ydl_opts
اینجا تنظیمات دانلود رو مشخص کردیم.
گفتیم فایل با اسم خود ویدیو ذخیره بشه و بهترین کیفیت موجود دانلود بشه.
with yt_dlp.YoutubeDL(...)
اینجا دانلودر اجرا میشه و لینک رو دانلود میکنه.
فقط صدا دانلود کنیم چطور؟
اگه فقط موزیک ویدیو رو میخوای و تصویر لازم نداری، تنظیمات رو اینطوری کن:
ydl_opts = {
'format': 'bestaudio/best',
'outtmpl': '%(title)s.%(ext)s',
}
تبریک🎉 الان خیلی راحت بدون دردسر از یوتیوب ویدیو دانلود کردی لایک یادتون نره
#python #youtube #ytdlp
Channel • @local4host
38 · 1.1K · LocalHost
👀 ahmia.fi
🔹یه موتور جستجو مخصوص منابع شبکه Tor (.onion) 🔍
این سرویس سایتهای مخفی (Hidden Services) رو ایندکس و فیلتر میکنه و کمک میکنه راحتتر توی دارکوب سایت پیدا کنی 🕶️🌐
🔹تمرکزش روی حفظ حریم خصوصی کاربره و سعی میکنه محتوای کاملاً غیرقانونی رو حذف یا فیلتر کنه
🔹میتونی هم از طریق وب معمولی استفاده کنی، هم با مرورگر Tor تا امنتر داخل دارکوب بچرخی
Channel • @local4host
15 · 953 · LocalHost
🐍 اگه برنامه نویس پایتون هستین و نمیتونید پکیج هاش رو بخاطر قطعی نت نصب کنید، یک راه حل خوب هست :
🪄 مثلا اگر میخواین پکیج Requests رو نصب کنید, به جای دستور زیر :
pip install requests
🦦 کافیه از دستور زیر استفاده کنید :
pip install requests -i https://mirror-pypi.runflare.com/simple
اینطوری به mirror های داخلی (که سرورشون درون ایران هست) وصل میشین و راحت هر پکیجی رو خواستین میتونید نصب کنید 🌱
📯 اگر هم نمیخواهید هر دفعه i- رو بزنید میتونید با اجرای دستورات زیر در ترمینال، این mirror رو به عنوان میرور پیشفرض تعریف کنید :
pip config --user set global.index https://mirror-pypi.runflare.com/simple
pip config --user set global.index-url https://mirror-pypi.runflare.com/simple
pip config --user set global.trusted-host mirror-pypi.runflare.com
Channel • @local4host
83 · 4.2K · LocalHost
📘 مهمترین متدهای List در پایتون
🔹 append()
برای اضافه کردن یک مقدار به آخر لیست استفاده میشود.
fruits = ["🍎", "🍌"]
fruits.append("🍇")
print(fruits)
🔹 extend()
برای اضافه کردن تمام عناصر یک لیست دیگر به آخر لیست استفاده میشود.
a = [1, 2]
b = [3, 4]
a.extend(b)
print(a)
🔹 insert()
برای قرار دادن یک مقدار در محل دلخواه داخل لیست استفاده میشود.
nums = [1, 3, 4]
nums.insert(1, 2)
print(nums)
🔹 remove()
برای حذف اولین مقداری که با مقدار دادهشده برابر باشد استفاده میشود.
nums = [1, 2, 3, 2]
nums.remove(2)
print(nums)
🔹 pop()
برای حذف آخرین عنصر لیست و برگرداندن آن استفاده میشود.
nums = [10, 20, 30]
print(nums.pop())
🔹 pop(index)
برای حذف عنصر یک اندیس مشخص استفاده میشود.
nums = [10, 20, 30]
nums.pop(1)
print(nums)
🔹 clear()
برای حذف تمام عناصر لیست استفاده میشود.
nums = [1, 2, 3]
nums.clear()
print(nums)
🔹 index()
برای پیدا کردن اندیس اولین عنصر موردنظر استفاده میشود.
letters = ["a", "b", "c"]
print(letters.index("b"))
🔹 count()
برای شمارش تعداد تکرار یک مقدار در لیست استفاده میشود.
nums = [1, 2, 2, 3, 2]
print(nums.count(2))
🔹 sort()
برای مرتب کردن لیست به صورت صعودی استفاده میشود.
nums = [5, 2, 8, 1]
nums.sort()
print(nums)
🔹 sort(reverse=True)
برای مرتب کردن لیست به صورت نزولی استفاده میشود.
nums = [5, 2, 8, 1]
nums.sort(reverse=True)
print(nums)
🔹 sorted()
برای ساخت یک نسخه مرتبشده از لیست بدون تغییر لیست اصلی استفاده میشود.
nums = [4, 1, 3]
print(sorted(nums))
🔹 reverse()
برای برعکس کردن ترتیب عناصر لیست استفاده میشود.
nums = [1, 2, 3]
nums.reverse()
print(nums)
🔹 copy()
برای ساخت یک کپی از لیست استفاده میشود.
nums = [1, 2, 3]
new_nums = nums.copy()
🔹 len()
برای بهدست آوردن تعداد عناصر لیست استفاده میشود.
nums = [1, 2, 3]
print(len(nums))
🔹 max()
برای پیدا کردن بزرگترین مقدار لیست استفاده میشود.
nums = [15, 8, 30]
print(max(nums))
🔹 min()
برای پیدا کردن کوچکترین مقدار لیست استفاده میشود.
nums = [15, 8, 30]
print(min(nums))
🔹 sum()
برای محاسبه مجموع تمام اعداد موجود در لیست استفاده میشود.
nums = [10, 20, 30]
print(sum(nums))
3 · 740 · LocalHost
🔥 حذف عناصر / مقدار تکراری از لیست
🔷اگه یه لیست داشته باشی که داخلش چند تا مقدار تکراری باشه، لازم نیست یه روش پیچیده یا شرط تعریف کنی و ..... راهحل سادهش:
numbers = [1, 2, 3, 2, 2, 4, 3, 1, 5, 6, 6, 6]
numbers = list(set(numbers))
print(numbers)
خروجی:
[1, 2, 3, 4, 5, 6]
اینجا اول لیست رو به "set" تبدیل کردیم چون "set" مقدار تکراری نگه نمیداره، همهی موارد تکراری حذف میشن بعد هم دوباره به "list()" تبدیلش کردیم به لیست تا مثل قبل بتونیم ازش استفاده کنیم.
Channel • @local4host
4 · 671 ·