ویدیو آموزش عملگر walrus در پایتون

امیرحسین بیگدلو June 2023

در این ویدیو شما با بزرگترین تغییر پایتون 3.8 آشنا میشوید: عبارات تخصیصی. عبارات تخصیصی با ساختار جدید := معرفی شدند. این عبارت به نام walrus (والروس) شناخته میشوند که به معنی شیردریایی است.

 

عبارت walrus به شما امکان می دهد که یک مقدار را در یک عبارت اختصاص دهید و برگردانید. به عنوان مثال، اگر می خواهید به یک متغیر اختصاص دهید و مقدار آن را چاپ کنید، معمولاً کاری شبیه به این انجام می دهید:

>>> walrus = False
>>> print(walrus)
False

 

در پایتون 3.8 ، اجازه دارید این دو عبارت را با استفاده از عملگر walrus در یک ترکیب کنید:

>>> print(walrus := True)
True
>>> type(walrus)
<class 'bool'>

 

عبارت تخصیص به شما امکان می دهد True را به walrus اختصاص دهید و بلافاصله مقدار را چاپ کنید. اما به خاطر داشته باشید که اپراتور walrus هیچ کاری را که بدون آن امکان پذیر نیست انجام نمی دهد. این فقط سازه های خاصی را راحت تر می کند و گاهی می تواند هدف کد شما را به وضوح بیان کند.

 

یکی از الگوهایی که برخی از نقاط قوت اپراتور walrus را نشان می دهد حلقه هایی است که در آن شما نیاز به مقداردهی اولیه و به روز رسانی یک متغیر دارید. به عنوان مثال، کد زیر از کاربر درخواست می کند تا زمانی که quit را تایپ می کند:

# write_something.py

inputs = list()
current = input("Write something: ")
while current != "quit":
    inputs.append(current)
    current = input("Write something: ")

 

این کد کمتر از ایده آل است. شما عبارت input() را تکرار می کنید و به نحوی باید قبل از درخواست کاربر، current را به لیست اضافه کنید. راه حل بهتر این است که یک حلقه نامحدود را تنظیم کرده و از break برای توقف حلقه استفاده کنید:

# write_something.py

inputs = list()
while True:
    current = input("Write something: ")
    if current == "quit":
        break
    inputs.append(current)

 

این کد معادل کد بالا است ، اما از تکرار جلوگیری می کند و به نحوی خطوط را در ترتیب منطقی تری نگه می دارد. اگر از عبارت walrus استفاده می کنید ، می توانید این حلقه را بیشتر ساده کنید:

# write_something.py

inputs = list()
while (current := input("Write something: ")) != "quit":
    inputs.append(current)

 

این کد شرط را به خط while برمی گرداند، جایی که باید باشد. با این حال، در حال حاضر چندین اتفاق در آن خط رخ می دهد، بنابراین خواندن صحیح آن کمی بیشتر تلاش می برد. بهترین قضاوت خود را در مورد زمانی که اپراتور walrus به خوانایی بیشتر کد شما کمک می کند استفاده کنید.

ویدیوهای مشابه



ارسال نظر


Mahdi

2 سال قبل پاسخ به نظر

بابت آموزش های خوبت ممنونم.
این سری یک اشتباه منطقی داره برنامه داخل حلقه!
شما اون inputs رو پرینت کن و میبینی فقط مقدار True, False بهش append شده! درصورتی که ما عدد میخواستیم.
چطوری مقدار رو بدست بیاریم؟

ارسال نظر



آرش

2 سال قبل

پرانتز ها رو درست نگذاشتی


Box

1 سال قبل

پرانتزی والروس رو نذاشتی.
while current:=input("Number :"):
inputs.append(current)

فقط بولین اضافه میشه

NeverGonnaDanceAgain

2 سال قبل پاسخ به نظر

Great Explanation. It Helped me out

ارسال نظر



shayan

2 سال قبل پاسخ به نظر

سلام
ویدیو اشتباهی اپلود شده

ارسال نظر



امیرحسین بیگدلو

2 سال قبل

سلام
خیلی ممنون از شما. درست شد.

مونگارد