🐍 Python & Raspberry 🐍
8.21K subscribers
1.92K photos
125 videos
623 files
1.23K links
Python- Raspberry Pi-AI-IOT
ادمین : فرهاد ناصری زاده
@farhad_naserizadeh
@farhad3412

گروه پایتون
@Python_QA
تبادل
@mmtahmasbi
کانال مرتبط
@new_mathematical
@micropython_iot
@c_micro
اینستاگرام
http://Instagram.com/python_raspberry
Download Telegram
یک مشکلی که گاها ممکنه بعضی از دوستان بهش بر بخورن و در نگاه اول رفتار عجیب و غریبی ببینید از پایتون ، iterate کردن روی یه لیست (یا هر sequence type دیگه) و همزمان حذف آیتم از اون لیست هست. مثال :
lst = ['a', 'b', 'c']

for i in lst:
lst.remove(i)

print(lst)
انتظار میره همه آیتم ها remove شده باشن و لیست خالی شده باشه ولی خروجی به ما این رو میده:
output: ['b']

و اما دلیل :
وقتی روی sequence type ها شما for میزنین ، یه متغیری مثلا index فارغ از اینکه چه اتفاقی در for میفته دونه دونه اضافه میشه و به __getitem__ اون لیست فرستاده میشه برای گرفتن آیتم جدید. به طور مثال این دو کد زیر باهم برابر هستن :
lst = [1, 2, 3, 4]

for i in lst:
print(i * 10)

print('------------------')

index = 0
while True:
try:
i = lst.__getitem__(index)
except IndexError:
break
print(i * 10)
index += 1

بریم سر مثال اصلیمون. وقتی ما یک آیتم رو از ابتدای لیست حذف میکنیم همه ی آیتم های بعدی شیفت میشن به سمت چپ چون همیشه باید ایندکس ها از صفر شروع بشن.(دلیل اینکه time complexity متد remove میشه O(n) همین هست.)
پس اگه بخوایم فقط iteration اول رو در نظر بگیریم ، الان آیتم "a" که در ایندکس صفر بوده حذف شده از لیست و آیتم "b" اومده توی ایندکس صفر ! ولی اون متغیر index مون که برای خودش توی هر iteration یکی اضافه میشد چند شده ؟ شده 1 !
پس توی iteration دوم ایندکس شماره 1 خواسته میشه از لیست که در حال حاضر "c" در این ایندکس قرار داره. این وسط "b" موند داخل لیست...

راه حل استفاده از copy :
lst = ['a', 'b', 'c']

for i in lst.copy():
lst.remove(i)

print(lst)

خروجی :
output : []
اینستاگرام کانال 300 تایی شد 😍😍😍

مطالب کانال به مرور به آدرس اینستاگرام زیر منتقل می گردد.

لینک 👇👇👇


http://Instagram.com/python_raspberry
Quiz? 😍
خروجی کدبالا چیست؟
خروجی کد بالا چیست؟
Final Results
10%
[ ]
57%
['d', 'b', 'a']
18%
Error
15%
چبدونم
🐍 Python & Raspberry 🐍
خروجی کد بالا چیست؟
دوستان نشد هینت بزارم چون جواب طولانی بود
چن روز دیگه توضیح جواب رو میزارم
🐍 Python & Raspberry 🐍
خروجی کدبالا چیست؟
خب برای جواب دادن ب این سوال:
زمانی ک ما میایم از تابع reversed استفاده میکنیم درواقع پایتون میاد یک ایتریتور از جنس
list_reverseiterator
برامون میسازه و این ایتریتور فقط ادرس لیست مورد نظر و ایندکس اخرش رو یادش میمونه ینی تو این مورد عدد ۳ رو یادش میمونه و زمانی که تابع next رو از این ایترتیور صدا زده میشه سعی میکنه که اون ایندکس رو برگردونه و بعد یدونه کم کنه اون ایندکس رو.
اما تو این کدی ک نوشتیم مشکلش اینه ک بعد از پاک کردن اون یکی از اعضا، دیگه اون ایندکس ۳ مقداری نداره داخل لیست و نمیتونه مقدارش رو برگردونه به همین خاطر ایتریشن متوقف میشه و لیست خالی برمیگردونه

میتونید توی این
لینک همین جواب رو دقیق تر بخونید

بعد ک اینارو من برا سروش توضیح دادم سروش گفت که خب چرا این مدلی نکردن ک بهتر بشه بعد گفتم خب خودت بکن بعد سروش برداشت ی پیاده سازی نوشت ک این مشکل رو توش حل کرده
میتونید پیاده سازیش رو اینجا
بخونید


@raspberry_pyton
Forwarded from PySpider: Quiz (Kasra :|)
ورودی برنامه شامل n رشته ب طول n هستن ب طوری که همه این رشته ها شامل فقط a و b هستند
حالا هدف ما اینه ک رشته ای تولید کنیم که هیچ کدوم از این رشته ها نباشه 😁
مهم اینه ک برنامتون برای تعداد زیاد خیلی سریع ب جواب برسه

@pyspyquiz
Forwarded from PySpider: Quiz (Kasra :|)
ورودی برنامه شامل n رشته ب طول n هستن ب طوری که همه این رشته ها شامل فقط a و b هستند
حالا هدف ما اینه ک رشته ای تولید کنیم که هیچ کدوم از این رشته ها نباشه 😁
مهم اینه ک برنامتون برای تعداد زیاد خیلی سریع ب جواب برسه

@pyspyquiz
🔴 گروه پایتون

@python_qa

🔴 گروه رزبری پای

@raspberry_micro

🔴 گروه رمزنگاری

@pycrypto

🔴 گروه بات تلگرام
@pyapi

🔴 گروه زبان سی،میکروکنترلر، fpga

@micro_fpga

🔴 گروه خرید و فروش قطعات الکترونیکی

@ElectronicsFreemarket

🔴 کانال زبان سی و میکروکنترلر

@c_micro

🔴 کانال میکروپایتون و اینترنت اشیا

@micropython_iot

🔴 کانال پردازش سیگنال و هوش مصنوعی

@ai_dsp

🔴 کانال آموزش پایتون و رزبری پای

@raspberry_python

🟢 کانال ریاضیات
@new_mathematical

🔴 مباحث متفرقه گروه های تخصصی

@BlindSpots

کانال درخواست پروژه
@project_req

🟢گروه نرم افزار متلب

@Matlab_MathWorks
میخوایم ی تاپل شامل کاراکتر های ab درس کنیم، کدوم غلطه؟
Final Results
15%
('a', 'b')
57%
(*'ab')
28%
tuple(['a', 'b'])
اینستاگرام کانال
👇👇

http://Instagram.com/python_raspberry
Bitcoin mining using Python

بیتکوین ماینینگ با پایتون

کد پایتون در لینک اینستاگرام زیر 😍😍 💐💐


https://www.instagram.com/p/CRUX1ICDRhb/?utm_medium=copy_link



@raspberry_python
نکات پایتون شماره سه 😍

تولید اعداد زوج

کد پایتون در لینک اینستاگرام زیر


https://www.instagram.com/p/CRVcTcvjuaW/?utm_medium=copy_link



@raspberry_python
خروجی کد بالا چیست ؟
خروجی کد بالا چیست؟
Final Results
7%
2
11%
12
78%
24
4%
6
خروجی کد بالا چیست؟
🐍 Python & Raspberry 🐍
خروجی کد بالا چیست؟
دوستان لطفا درمورد جواب این سوال نپرسید
اجازه بدید برای اسپویل نشدن سوال فعلا ب همون هینتی ک نوشتم بسنده کنید
طبق معمول برای سوالای سخت و تریکی بعد چند روز ی توضیح خیلی مفصلی میزارم
باتشکر
بعضی وقتا پایچارم ی چیزایی میاره ادم کلی حال میکنه
مثلا اوقاتی ک میخواید مقدار دوطرف یک ویرگول رو جابجا کنید.
مکان نمارو ببرید کنار اون ویرگول و
alt+enter
رو بزنید
#pycharm
@raspberry_python