Можно ли в Python создавать бинарные файлы? Конечно можно.
Для этого в Python есть следующие инструменты:
▫️ тип данных bytes и bytearray
▫️ открытие файла в режиме wb (write binary) или rb (read binary)
▫️ модуль struct
Про модуль struct поговорим в первую очередь.
Файл в формате JSON или Yaml внутри себя содержит разметку данных. Всегда можно определить где список начался а где закончился. Где записана строка а где словарь. То есть формат записи данных содержит в себе элементы разметки данных.
В binary-файле данные не имеют визуальной разметки. Это просто байты, записанные один за другим. Правила записи и чтения находятся вне файла.
Модуль struct как раз и помогает с организацией данных в таком файле с помощью определения форматов записи для разных частей файла.
Модуль struct преобразует Python-объекты в массив байт, готовый к записи в файл и имеющий определённый вид.
Для этого всегда следует указывать формат преобразования (или, как оно здесь называется - запаковки).
Формат нужен для того, чтобы выделить достаточное количество байт для записи конкретного типа объекта. В последствии с помощью того же формата будет производиться чтение.
При этом следует помнить что мы говорим о типах языка С а не Python.
Именно формат определяет, что записано в конкретном месте файла, число, строка или что-то еще.
Вот какие токены формата у нас есть.
Помимо этого, первым символом можно указать порядок байтов. На разных системах одни и те же типы данных могут записываться по-разному, поэтому желательно указать конкретный способ из доступных. Если этого не сделать, то используется символ '@', то есть нативный для текущей системы.
В строке формата мы пишем в каком порядке и какие типы собираемся преобразовать в байты.
Запакуем в байты простое число, токен "i".
>>> import struct
>>> struct.pack('=i', 10)
b'\n\x00\x00\x00'
Теперь несколько float, при этом нужно передавать элементы не массивом а последовательностью аргументов.
>>> struct.pack('=fff', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Вместо нескольких токенов можно просто указать нужное количество элементов перед одним токеном, результат будет тот же.
>>> struct.pack('=3f', 1.0, 2.5, 4.1)
b'\x00\x00\x80?\x00\x00 @33\x83@'
Теперь запакуем разные типы
>>> data = struct.pack('=fiQ', 1.0, 4, 100500)
я запаковал типы float, int и unsigned long long (очень большой int, на 8 байт)
b'\x00\x00\x80?\x04\x00\x00...'
Распаковка происходит аналогично, но нужно указать тот же формат, который использовался при запаковке. Результат возвращается всегда в виде кортежа.
>>> struct.unpack('=fiQ', data)
(1.0, 4, 100500)
Как видите, ничего страшного!
#lib#basic
@elzodxon’dan share qildim:
Kamron'ni 3-4 yildan beri taniyman, Ilyos aka yozganlariday, O'zbekistonda xizmat ko'rsatgan dasturchi;
Yaratayotgan kursi sifati va ma'lumot yetkazib berishi top! Vue.js Uzbek community'da bunday kurs yo'q, hozircha.
https://t.me/kamrondev/60
P.S. Kamron kanalimdan borganlarga chegirma bormi, kurslarga?) Xazillashib yozdim, kurs anchagina arzon! Ishoning!
#vuejs#tavsiya
#bepul#vuejs
⚡️Vue JS: To‘liq kurs – Noldan boshlab!
Vue 3-ni o‘rganmoqchimisiz? Ushbu bepul video kurs sizga Vue.js frameworkini mukammal o‘zlashtirishga yordam beradi!
📌Kursda nimalarni o‘rganasiz?
— Vue 3 asoslari
— Ma’lumotlar bilan ishlash
— Komponentlar yaratish va ulardan foydalanish
— Server bilan o‘zaro ishlash (API)
— Ramkani kengaytirish va optimallashtirish
— Loyihani serverga joylash
💻Kimlar uchun?
Kurs JavaScript bilan ishlash tajribasiga ega va front-end bilimlarini chuqurlashtirishni istagan dasturchilar uchun mo‘ljallangan.
📱Videoni tomosha qiling
Vue.js’ni o‘rganib, o‘z loyihalaringizni yaratishni boshlang! 🔥
💻@dasturlash_hayoti — bir xatoni tuzatib, ikkinchisiga tayyorlanish! 😅
#vuejs#frontend#dasturlash_hayoti
💚Vue.js’da v-if va v-show orasidagi farq
Vue’da elementlarni ko‘rsatish yoki yashirishda ikkita direktiva bor: v-if va v-show. Ular bir xil vazifani bajaradi, lekin ishlash usuli boshqacha
v-if
— Element faqat shart rost bo‘lsa DOM’da paydo bo‘ladi.
— Shart yolg‘on bo‘lsa, element DOM’dan butunlay olib tashlanadi.
— DOM qayta yaratilgani uchun ishlashi sekinroq.
Misol:
<button v-if="isAdmin">
Admin panelga kirish
</button>
✅isAdmin = true → tugma DOM’da yaratiladi.
❌isAdmin = false → tugma DOM’da umuman yo‘q bo‘ladi.
🟩🟩🟩🟩🟩🟩🟩🟩
v-show
— Element har doim DOM’da mavjud.
— Faqatgina CSS (display: none) orqali yashiriladi yoki ko‘rsatiladi.
— Tez ishlaydi, chunki DOM qayta yaratilmaydi.
Misol:
<button v-show="isLoggedIn">
Profilga kirish
</button>
✅isLoggedIn = true → tugma ko‘rinadi.
❌isLoggedIn = false → tugma DOM’da bor, lekin ko‘rinmaydi.
🟩🟩🟩🟩🟩🟩🟩🟩
💡 Xulosa:
◾️Agar element kamdan-kam ko‘rinadigan bo‘lsa → v-if
◾️Agar element tez-tez ko‘rinib-yashiriladigan bo‘lsa → v-show
💻@dasturlash_hayoti— Dasturchilar uchun eng kerakli maslahatlar va foydali kontent
#Vuejs#JavaScript#Frontend#DasturlashHayoti
💚Vue.js o‘rganish uchun JavaScriptni qay darajada bilish kerak?
Ko‘pchilik Vue.js’ni o‘rganmoqchi bo‘ladi, lekin savol tug‘iladi:
“Bunga kirishishdan oldin JavaScriptni qanchalik bilishim kerak?”
Aslida Vue.js — bu JavaScript asosida ishlaydigan frontend framework.
Shuning uchun quyidagi narsalarni bilish shart 👇
Asosiy JavaScript bilimlari:
➡️ O‘zgaruvchilar (let, const)
➡️ Shart operatorlari (if, else)
➡️ Funksiyalar va massivlar
➡️ DOM bilan ishlash (elementlarni olish, o‘zgartirish)
O‘rta daraja bilimlar:
➡️ Arrow functions
➡️map(), filter(), forEach() kabi metodlar
➡️ Object va Array destrukturatsiyasi
➡️this tushunchasi
➡️import / export modullari
Vue.js — bu JavaScriptni soddaroq va qulayroq yozish imkonini beradigan vosita.
Ya’ni, JavaScript bilmasdan Vue.js’da uzoqqa bora olmaysiz 😅
💻@dasturlash_hayoti— Dasturchilar hayoti, motivatsiya va IT olamidagi eng foydali maslahatlar shu yerda!
#vuejs#frontend#dasturlash#web
💚Vue.js da har kuni kerak bo'ladigan 5 ta TOP funksiya
Vue.js (Composition API) da loyiha qilyapsizmi? Unda shu 5 ta funksiya sizning eng asosiy qurolingiz bo'ladi. Qisqa va lo'nda tushuntiramiz: 👇
1️⃣ref() va reactive() — Reaktivlik yuragi
O'zgaruvchilarni "jonli" qiladi. Oddiy qiymatlar (son, matn) uchun ref(), obyekt va massivlar uchun reactive() ishlatiladi. Qiymat o'zgarsa, ekrandagi ma'lumot ham darhol o'zgaradi!
2️⃣computed()— Aqlli hisob-kitob
Boshqa ma'lumotlarga qarab yangi qiymat yasaydi. Uning ajoyib tarafi — natijani saqlab qoladi va faqat kerakli vaqtdagina qayta hisoblaydi. Bu dastur tezligini oshiradi.
3️⃣watch()— Sadoqatli qorovul
Biror o'zgaruvchini poylab turadi. Masalan, foydalanuvchi qidiruvga so'z yozishi bilan backendga so'rov yuborish kerak bo'lsa, watch eng to'g'ri tanlov.
4️⃣onMounted()— To'g'ri vaqtda harakat
Komponent brauzerda to'liq paydo bo'lgach ishga tushadi. Odatda, API dan ma'lumotlarni tortib kelish (fetch) uchun eng ideal joy hisoblanadi.
5️⃣provide() va inject()— Pochtalon📬
Ma'lumotlarni eng tepadagi komponentdan eng pastdagisiga props orqali qiynalib o'tkazgandan ko'ra, shu ikkisi yordamida to'g'ridan-to'g'ri va toza yetkazib berish mumkin.
Siz eng ko'p qaysi biridan foydalanasiz? Izohlarda yozib qoldiring! 👇
💻@dasturlash_hayoti— dasturchilar hayoti va IT memlari aralash kanal😉
#typescript#component_library#element_plus#element_ui#vue#vue_components#vuejs
Element Plus is a UI library for Vue 3, built with TypeScript and the Composition API. It offers a variety of customizable components and a cool design language, making it easy for developers and designers to create user interfaces. The library is open-source and actively maintained, with tools like a migration tool to help transition from Element UI. This makes it a great choice for building modern web applications with a consistent look and feel.
https://github.com/element-plus/element-plus
Axios bilan real API chaqirish — ODDIY MISOL BILAN!
❓ “Ma’lumotni boshqa sayt yoki serverdan qanday olib kelamiz?” degan savol bormi? Javob: Axios!
STEP 1: Axios’ni o‘rnatamiz
Terminalda yozing:
npm install axios
STEP 2: Real API chaqiramiz (masalan: foydalanuvchilar ro‘yxati)
Bu API — jsonplaceholder.typicode.com saytiga tegishli va real ishda sinab ko‘rish uchun yaratilgan bepul servis.
import axios from 'axios';
export default {
data() {
return {
users: []
};
},
mounted() {
axios.get('https://jsonplaceholder.typicode.com/users')
.then(response => {
this.users = response.data;
})
.catch(error => {
console.log("Xatolik:", error);
});
}
}
STEP 3: Ma’lumotni sahifada chiqaramiz
<ul>
<li v-for="user in users" :key="user.id">
{{ user.name }} - {{ user.email }}
</li>
</ul>
📌 Natija:
✅ Sahifa ochilishi bilan API’dan foydalanuvchilar ro‘yxati olinadi
✅ Bu ma’lumotlar users array’iga joylanadi
✅ v-for yordamida ekranga chiqariladi
💡 Real hayotda bu qanday foyda beradi?
– Mahsulotlar ro‘yxati olish
– Ob-havo, yangiliklar, valyuta kurslari chiqarish
– Login/ro‘yxatdan o‘tish so‘rovlari
– Barcha dinamik ma’lumotlar API orqali ishlaydi!
Foydali deb bilsangiz:
📌Saqlab qo‘ying
📤 Do‘stlaringizga ulashing
💬Izohda fikringizni yozing
#vuejs#axios#api#frontend#json#dasturlash#webdev#praktika#ulashishga_arziydi
💻@dasturlash_hayoti — bir xatoni tuzatib, ikkinchisiga tayyorlanish! 😅
#typescript#accounting#book_keeping#desktop#double_entry_accounting#electron#frappe#inventory_management#invoicing#javascript#offline#open_source#point_of_sale#vuejs
Frappe Books is a free, open-source accounting software designed to make managing your business finances simple and efficient. It works on Windows, Mac, and Linux, and you can use it offline since it stores data locally on your computer. It offers easy invoicing with customizable templates, tracks payments, and provides important financial reports like profit and loss, balance sheets, and trial balances. The software has a clean, user-friendly interface and features like a dashboard for quick financial insights and a point-of-sale system for retail. This helps you save time, stay organized, and make smarter business decisions without complex tools or extra costs[1][3][4].
https://github.com/frappe/books