Forwarded from پایتون فارسی(PyCore)
Media is too big
VIEW IN TELEGRAM
الگوریتم و فلوچارت -فصل دوم : فلوچارت-سجاد ریاحی
#part2
@persians_python
@persians_python
@persians_python
#part2
@persians_python
@persians_python
@persians_python
Forwarded from CodeCrafters (mahyar)
سلام🥸همونطور که از پست قبلی متوجه شدیم با زبان های بسیاری میتونیم بلاکچین رو طراحی کنیم و خب تو این پست قراره بلاکچینی رو برای زنجیره تامینی با استفاده از پایتون پیاده کنیم
زنجیر تامین یکی دیگه از کاربرد های بلاکچین در کنار ارز دیجیتیال و قرار داد های هوشمند و... هست.
بلاکچینی که قراره طراحی کنیم برای پیگیری محصولات غذایی از مزرعه تا فروشگاه برای اطمینان از کیفیت و اصالت کالا هستش
اولین چیزی که نیاز داریم یه کلاس تراکنش هست که یه سری مشخصات رو مثل فرستنده , گیرنده , محصول و مقدار اون محصول رو دریافت کنیم
حالا که تراکنشها رو تعریف کردیم، باید یک کلاس برای بلاکها ایجاد کنیم. هر بلاک در زنجیره شامل چند ویژگی اصلی که به ترتیب عبارتند از:
شماره بلاک در زنجیره (index)
هش بلاک قبلی در زنجیره (previous_hash)
زمان ایجاد بلاک (timestamp)
لیست تراکنشهای درون بلاک (transactions)
عددی که برای ماینینگ استفاده میشه (nonce)
هش بلاک (hash):که با استفاده از تراکنشها و ویژگیهای دیگر بلاک ساخته میشه
حالا که بلاکها و تراکنشها رو تعریف کردیم، باید یک کلاس برای بلاکچین خودمون ایجاد کنیم که شامل ویژگیهایی مثل لیستی از بلاکها، تراکنشهای معلق و سایر عملیات مانند اضافه کردن تراکنش، ماین کردن بلاک و بررسی اعتبار زنجیره باشه. درواقع نیاز به یه کلاس داریم که بیاد و بلاکچینمون رو مدیریت کنه
ادامه توضیحات کلس BlockChain و نحوه ساخت یه بلاک با تراکنش هاش تو پست بعدی🥸
#blockchain
زنجیر تامین یکی دیگه از کاربرد های بلاکچین در کنار ارز دیجیتیال و قرار داد های هوشمند و... هست.
بلاکچینی که قراره طراحی کنیم برای پیگیری محصولات غذایی از مزرعه تا فروشگاه برای اطمینان از کیفیت و اصالت کالا هستش
اولین چیزی که نیاز داریم یه کلاس تراکنش هست که یه سری مشخصات رو مثل فرستنده , گیرنده , محصول و مقدار اون محصول رو دریافت کنیم
import hashlib
import time
class Transaction:
def __init__(self, sender, recipient, product, quantity):
self.sender = sender
self.recipient = recipient
self.product = product
self.quantity = quantity
def __str__(self):
return f"Transaction(sender: {self.sender}, recipient: {self.recipient}, product: {self.product}, quantity: {self.quantity})"
حالا که تراکنشها رو تعریف کردیم، باید یک کلاس برای بلاکها ایجاد کنیم. هر بلاک در زنجیره شامل چند ویژگی اصلی که به ترتیب عبارتند از:
شماره بلاک در زنجیره (index)
هش بلاک قبلی در زنجیره (previous_hash)
زمان ایجاد بلاک (timestamp)
لیست تراکنشهای درون بلاک (transactions)
عددی که برای ماینینگ استفاده میشه (nonce)
هش بلاک (hash):که با استفاده از تراکنشها و ویژگیهای دیگر بلاک ساخته میشه
class Block:
def __init__(self, index, previous_hash, timestamp, transactions, nonce=0):
self.index = index
self.previous_hash = previous_hash
self.timestamp = timestamp
self.transactions = transactions
self.nonce = nonce
self.hash = self.calculate_hash()
def calculate_hash(self):
transactions_string = ""
for tx in self.transactions:
transactions_string += str(tx)
block_string = f"{self.index}{self.previous_hash}{self.timestamp}{transactions_string}{self.nonce}"
return hashlib.sha256(block_string.encode()).hexdigest()
def __str__(self):
return f"Block<index: {self.index}, hash: {self.hash}>"
حالا که بلاکها و تراکنشها رو تعریف کردیم، باید یک کلاس برای بلاکچین خودمون ایجاد کنیم که شامل ویژگیهایی مثل لیستی از بلاکها، تراکنشهای معلق و سایر عملیات مانند اضافه کردن تراکنش، ماین کردن بلاک و بررسی اعتبار زنجیره باشه. درواقع نیاز به یه کلاس داریم که بیاد و بلاکچینمون رو مدیریت کنه
class Blockchain:
difficulty = 4 # میزان سختی برای ماینینگ بلاک
def __init__(self):
self.chain = [self.create_genesis_block()]
self.pending_transactions = []
def create_genesis_block(self):
# genesis block ایجاد بلاک اول با متود
return Block(0, "0", time.time(), [])
def get_latest_block(self):
#A: دریافت آخرین بلاک در زنجیره
return self.chain[-1]
def add_transaction(self, transaction):
#B: اضافه کردن تراکنش به لیست تراکنشهای معلق یا در تایید انتظار
self.pending_transactions.append(transaction)
def mine_pending_transactions(self):
#C: ماین کردن تراکنشهای معلق و اضافه کردن بلاک به زنجیره
block = Block(len(self.chain), self.get_latest_block().hash, time.time(), self.pending_transactions)
self.mine_block(block)
self.chain.append(block)
self.pending_transactions = []
def mine_block(self, block):
#D: Proof of Work ماین کردن یک بلاک با استفاده از الگوریتم
while block.hash[:self.difficulty] != "0" * self.difficulty:
block.nonce += 1
block.hash = block.calculate_hash()
print(f"Block mined: {block.hash}")
def is_chain_valid(self):
#E: بررسی اعتبار کل زنجیره با مقایسه هشها و هشهای محاسبه شده
for i in range(1, len(self.chain)):
current_block = self.chain[i]
previous_block = self.chain[i - 1]
if current_block.hash != current_block.calculate_hash():
return False
if current_block.previous_hash != previous_block.hash:
return False
return True
ادامه توضیحات کلس BlockChain و نحوه ساخت یه بلاک با تراکنش هاش تو پست بعدی🥸
#blockchain
👍2
CodeCrafters
سلام🥸همونطور که از پست قبلی متوجه شدیم با زبان های بسیاری میتونیم بلاکچین رو طراحی کنیم و خب تو این پست قراره بلاکچینی رو برای زنجیره تامینی با استفاده از پایتون پیاده کنیم زنجیر تامین یکی دیگه از کاربرد های بلاکچین در کنار ارز دیجیتیال و قرار داد های هوشمند…
ساخت بلاک های اولیه و تراکنش
خب در نهایت به این میرسیم که چطوری میتونیم از کلس هامون استفاده کنیم
این تیکه کد، یک نمونه ساده از استفاده از کلاس بلاکچین و متود های اون را نشان میده. در اینجا، یک ابجکت از کلاس Blockchain ایجاد میشود و سه تراکنش برای ردیابی محصولات غذایی اضافه میشه. بعد از اون تراکنشهای معلق ماین شده و یک بلاک جدید به زنجیره اضافه میشود و اعتبار زنجیره چک میشه و در نهایت بلاکها و تراکنشها نمایش داده میشود.
پ ن: توضیح عمقی تر درمورد کلاس Blockchain
#blockchain
خب در نهایت به این میرسیم که چطوری میتونیم از کلس هامون استفاده کنیم
blockchain = Blockchain()
#A: ایجاد تراکنش
blockchain.add_transaction(Transaction('Farm', 'Warehouse', 'Tomatoes', 70))
blockchain.add_transaction(Transaction('Warehouse', 'Distributor', 'Tomatoes', 90))
blockchain.add_transaction(Transaction('Distributor', 'Retailer', 'Tomatoes', 80))
#B: ماین کردن تراکنشهای معلق
blockchain.mine_pending_transactions()
#C: بررسی اعتبار زنجیره
print(f"Blockchain valid: {blockchain.is_chain_valid()}")
#D: نمایش بلاکها و تراکنشها
for block in blockchain.chain:
print(block)
for tx in block.transactions:
print(f"txt = {tx}")
این تیکه کد، یک نمونه ساده از استفاده از کلاس بلاکچین و متود های اون را نشان میده. در اینجا، یک ابجکت از کلاس Blockchain ایجاد میشود و سه تراکنش برای ردیابی محصولات غذایی اضافه میشه. بعد از اون تراکنشهای معلق ماین شده و یک بلاک جدید به زنجیره اضافه میشود و اعتبار زنجیره چک میشه و در نهایت بلاکها و تراکنشها نمایش داده میشود.
پ ن: توضیح عمقی تر درمورد کلاس Blockchain
مورد اول difficulty: این متغییر نشان میدهه که برای ماین کردن یک بلاک جدید چه تعداد صفر در ابتدای هش باید وجود داشته باشد.فرض کنید که مقدار difficulty در بلاکچین برابر 3 باشد.
ب فرض کنیم ما بلاکی را میخواهیم ماین کنیم و هش بلاک باید اینگونه باشد:
hash: 000abc123
دوم ()init: در این متد، زنجیره با ایجاد بلاک اول (genesis block) شروع میشود و لیست تراکنشهای در انتظار برای ماین کردن خالی میشود.
سوم:create_genesis_bloc()k: این متد بلاک اول یا genesis block را با شماره بلاک 0، هش بلاک قبلی صفر، زمان فعلی و بدون تراکنش ایجاد میکند. معمولا بلاک اول زنجیره رو خوومون درست میکنیم و بدون تراکنش و هش صفر
چهار: get_latest_block(): این متد آخرین بلاک در زنجیره را برمیگرداند.
پنج:add_transaction(transaction): این متد یک تراکنش را به لیست تراکنشهای در انتظار برای ماین کردن اضافه میکند.
شش:mine_pending_transactions: این متد تمام تراکنشهای در انتظار را ماین میکند و بلاک حاوی آنها را به زنجیره اضافه میکند.
هفت:mine_block(block): این متد یک بلاک را با استفاده از الگوریتم Proof of Work ماین میکند، تا هش بلاک با تعداد صفرهای مشخص (بر اساس difficulty) شکل بگیرد.
هشت:()is_chain_valid: این متد بررسی میکند که زنجیره فعلی اعتبار دارد یا نه، با مقایسه هشهای بلاکها و هشهای محاسبه شده.
#blockchain
Forwarded from پایتون فارسی(PyCore)
سلام به همه دوستانی که تازه به جمع ما پیوستند ورودتون رو به جمع خانواده پایتون خوش آمد میگم
زیر این پست آخرین ورژن های مفسر پایتون و ویژوال استودیو کد رو قرار میدم برای استفاده البته دقت کنید این ورژن ها روی ویندوز ۸ به بعد نصب میشه بعد از اون ورژن های مخصوص ویندوز ۷ رو هم قرار میدم پیروز باشید
زیر این پست آخرین ورژن های مفسر پایتون و ویژوال استودیو کد رو قرار میدم برای استفاده البته دقت کنید این ورژن ها روی ویندوز ۸ به بعد نصب میشه بعد از اون ورژن های مخصوص ویندوز ۷ رو هم قرار میدم پیروز باشید
Forwarded from پایتون فارسی(PyCore)
آخرین ورژن ویژوال استودیو کد نسخه ۶۴ بیتی (مخصوص ویندوز ۸.۱ به بعد ) 👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
VSCodeUserSetup-x64-1.79.2.exe
88.7 MB
VSCodeUserSetup-x64-1.79.2.exehttps://code.visualstudio.com/sha/download?build=stable&os=win32-x64-user
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
آخرین ورژن ویژوال استودیو کد نسخه ۳۲ بیتی (مخصوص ویندوز ۸.۱ به بعد ) 👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
VSCodeUserSetup-ia32-1.79.2.exe
85.8 MB
VSCodeUserSetup-ia32-1.79.2.exehttps://code.visualstudio.com/sha/download?build=stable&os=win32-user
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
ورژن ۱.۷ ویژوال استودیو کد مخصوص ویندوز ۷ ، ۶۴ بیتی (مخصوص ویندوز ۷)
👇👇👇👇👇👇👇👇👇👇👇
👇👇👇👇👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
VSCodeUserSetup-arm64-1.70.2.exe
78.3 MB
VSCodeUserSetup-arm64-1.70.2.exehttps://update.code.visualstudio.com/1.70.2/win32-arm64-user/stable
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
آخرین نسخه ۶۴ بیتی مفسر پایتون ورژن ۳.۱۱.۴ برای ویندوز ۸ به بعد (روی ویندوز ۷ نصب نمیشه )
👇👇👇👇👇👇👇👇👇👇
👇👇👇👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
python-3.11.4-amd64.exe
24.2 MB
python-3.11.4-amd64.exehttps://www.python.org/ftp/python/3.11.4/python-3.11.4-amd64.exe
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
آخرین نسخه ۳۲ بیتی مفسر پایتون ورژن ۳.۱۱.۴ برای ویندوز ۸ به بعد (روی ویندوز ۷ نصب نمیشه )
👇👇👇👇👇👇👇👇👇👇
👇👇👇👇👇👇👇👇👇👇
👍1
Forwarded from دانلود ویدیو از هر جا || Utoop
python-3.11.4.exe
23.1 MB
python-3.11.4.exehttps://www.python.org/ftp/python/3.11.4/python-3.11.4.exe
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
نسخه ۳.۸.۱۰ مفسر پایتون ۶۴ بیتی مخصوص ویندوز ۷ (روی ویندوز ۸ به بعد نصب نمیشه )
👇👇👇👇👇👇👇👇👇👇👇👇
👇👇👇👇👇👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
python-3.8.10-amd64.exe
27 MB
python-3.8.10-amd64.exehttps://www.python.org/ftp/python/3.8.10/python-3.8.10-amd64.exe
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
نسخه ۳.۸.۱۰ مفسر پایتون ۳۲ بیتی مخصوص ویندوز ۷ (روی ویندوز ۸ به بعد نصب نمیشه )
👇👇👇👇👇👇👇👇👇👇👇👇
👇👇👇👇👇👇👇👇👇👇👇👇
Forwarded from دانلود ویدیو از هر جا || Utoop
python-3.8.10.exe
25.9 MB
python-3.8.10.exehttps://www.python.org/ftp/python/3.8.10/python-3.8.10.exe
دانلود شده توسط ربات UTOOP
@toobsaverbot 0s
Forwarded from پایتون فارسی(PyCore)
برای ارتباط با من به این اکانت پیام بدید
حتما خودتون رو معرفی کنید و سوالتون رو تا حد امکان کوتاه بپرسید سوالات اصلی رو بذارید سر کلاس های حضوری
@MeisamShabani
حتما خودتون رو معرفی کنید و سوالتون رو تا حد امکان کوتاه بپرسید سوالات اصلی رو بذارید سر کلاس های حضوری
@MeisamShabani
Forwarded from پایتون فارسی(PyCore)
من را در اینستاگرام دنبال کنید
https://www.instagram.com/invites/contact/?i=99fln0qk0u80&utm_content=vfu6qv
https://www.instagram.com/invites/contact/?i=99fln0qk0u80&utm_content=vfu6qv
* مهم *❗❗❗❗❗❗
بچه های دوره پایتون که دو هفته پیش دوره به پایان رسید و شروع دوره قبل از عید بود
با تمام تایم گرفتن از تهران تا پایان هفته بعد وقت دارید برای تحویل پروژه هاتون
عدم تحویل پروژه بر عدم نیاز به مدرک تلقی میشه در صورتی که زمان گذشته باشه از آخرین فرصت تحویل برای گرفتن مدرک و تحویل پروژه باید با مجتمع صحبت کنید اگر امکانش باشه با دادن یه هزینه دوباره دوره باز بشه و نمره شما ثبت بشه
برای اینکه درگیر این مشکلات نشید تا پایان هفته بعد حتما پروژه ها رو تحویل بدید
نکته : بچههایی که دوره پیشرفته ثبت نام کردن بدلیل زمانی که باید برای ویدیوهای پیش نیاز که براشون ارسال شده و یا میشه بذارن چهار روز بیشتر فرصت دارند
موفق باشید 🎉🎉🎉🎉
بچه های دوره پایتون که دو هفته پیش دوره به پایان رسید و شروع دوره قبل از عید بود
با تمام تایم گرفتن از تهران تا پایان هفته بعد وقت دارید برای تحویل پروژه هاتون
عدم تحویل پروژه بر عدم نیاز به مدرک تلقی میشه در صورتی که زمان گذشته باشه از آخرین فرصت تحویل برای گرفتن مدرک و تحویل پروژه باید با مجتمع صحبت کنید اگر امکانش باشه با دادن یه هزینه دوباره دوره باز بشه و نمره شما ثبت بشه
برای اینکه درگیر این مشکلات نشید تا پایان هفته بعد حتما پروژه ها رو تحویل بدید
نکته : بچههایی که دوره پیشرفته ثبت نام کردن بدلیل زمانی که باید برای ویدیوهای پیش نیاز که براشون ارسال شده و یا میشه بذارن چهار روز بیشتر فرصت دارند
موفق باشید 🎉🎉🎉🎉