منوی خودپرداز خود را در

این ممکن است یک باشد SPEEDRUN STEMPES در مورد نحوه نوشتن منوهای پایتون با استفاده از دستورات ورودی در ترمینال. امیدوارم این پیش نویس به عنوان یک صفحه نمایش باشد تا بتوانید ایده ها یا فقط یک خواندن را ترسیم کنید.
این کد در نسخه 3.13.0 در پایتون نوشته شده و در ترمینال اجرا شده است پودر با استفاده از سبک نوشتن عملکردی ، اگر نسخه قدامی مترجم را انتخاب کنید ، ممکن است مشکلی ایجاد نشود. به هر حال بیایید به تجارت برسیم ، چرا نام دستگاه خودپرداز؟ مخفف دستگاه خودپرداز این یک مخفف فنی برای دستگاه گوینده خودکار، ماشینهایی که به معاملات بانکی اجازه می دهند. این موضوع به عنوان ایده ای برای مفهوم سازی عملیات شبیه سازی منوهای هوشمند مانند ماشین حساب یا هر فرآیند دیگری که نیاز به یک اسکریپت فرمان در ترمینال دارد انتخاب شده است ، من به محدودیت های تحمیل شده برای برنامه هایی که رابط های خط فرمان را کشف می کنند ، نمی پردازم.
Obs: Este texto não foi coletado, submetido ou imposto a prompts de AI. Cabe o seu autor escolher a origem e motivação para o seu intelecto.
▶ ︎ • ၊၊ ||၊ |။ |||| | Lorn - OUT OF THE FRAME
قبل از شروع کد ، ما باید LIBS را در زیر بگنجانیم تا ویژگی ها را انجام دهیم os.system(str)
و یادداشت ها را تایپ کنید Callable
، بله در این کد حاشیه نویسی به عنوان یک سبک نوشتن که به کد سازمان یافته تر ، منسجم ، قابل خواندن و کاهش خطاهای نوشتن ممکن است.
from os import system
from typing import Callable
تابع not_ATM()
این مسئول مونتاژ و اجرای منو است که شامل کلیه منطق و عملکردهای لازم برای اجرای آن است.
این برنامه باید ساده باشد ، ما لازم نیست که به چیزی مانند ایجاد ماژول یا بسته تبدیل شویم.
if __name__ == "__main__":
not_ATM()
system("cls||clear")
عملکرد منو ، گزینه ها و دستورات را در صفحه ترمینال ارائه می دهد
def menu() -> None:
for i, item in enumerate(["\nInforme uma das opções:\n",
"1 - Task 1", "2 - Task 2",
"3 - Task 3", "4 - Sair\n"]):
print(f"{'':.>5} {item}" if i > 0 else item)
عملکرد get_message(int)
متن عملکرد را برمی گرداند input(str)
مورد استفاده برای ضبط صفحه کلید
def get_message(attempts: int):
message = [":...",
"Opção selecionada:..."]
return message[0] if attempts > 0 else message[1]
این عملکرد اصلی در عملکرد است not_ATM()
عملکردهای دیگر مکمل هایی مانند گزینه های منو هستند. در زیر نمونه ای از اجرای منو در ترمینال آورده شده است.
python .\app.py
Informe uma das opções:
..... 1 - Task 1
..... 2 - Task 2
..... 3 - Task 3
..... 4 - Sair
Opção selecionada:...1
ما باید ماژول App.py را ایجاد کنیم تا به هدف خود خدمت کنیم
new-Item 'app.py' -ItemType File
درج محتوای پایتون در ماژول ایجاد شده
Add-Content -Path .\app.py -Value 'print("Olá mundo")'
برای اجرای برنامه زیر ، فقط با ماژول تماس بگیرید app.py
python .\app.py
Olá mundo
قبل از وارد کردن کد در ماژول App.py ، بیایید ساختار ساختار را تجزیه و تحلیل کنیم While(...):
بشر در این اپراتورهای استاندارد morsa (:=)
اشمیه unpacking (*)
آنها برای ضبط و فیلتر دستورات ارسال شده توسط صفحه کلید استفاده می شوند. با باز کردن بسته بندی ما دستورات خروجی را از لیست دریافت می کنیم [*'qQeE']
و با اپراتور ما تصادف ارسال شده توسط صفحه کلید را در بیان منطقی در حالی ضبط می کنیم.
attempts = 0
while (option := input(get_message(attempts))[-1:]) not in [*'qQeE']:
system("cls||clear")
menu()
try:
if (tasks[option]() == 'exit'):
break
print(f"{tasks[option]()}\n")
attempts = 0
except:
if attempts >= 2:
input("Você superou N tentativas, operação encerrada...")
break
attempts += 1
ساختار try/except
از آن برای ضبط استثنائات استفاده می شود وقتی صفحه کلید گزینه کلید ناشناس را ارسال می کند. فرهنگ لغت وظایف مسئول اعتبارسنجی کلیدها و داشتن گزینه نادرست است ، استثناء پیام را از آن مطلع می کند گزینه نامعتبر ، دوباره امتحان کنیدبشر
try:
if (tasks[option]() == 'exit'):
break
print(f"{tasks[option]()}\n")
attempts = 0
except:
if attempts >= 2:
input("Você superou N tentativas, operação encerrada...")
break
attempts += 1
اکنون تمام مطالب زیر را برای ماژول کپی کنید برنامه
from os import system
from typing import Callable
def not_ATM() -> None:
def menu() -> None:
for i, item in enumerate(["\nInforme uma das opções:\n",
"1 - Task 1", "2 - Task 2",
"3 - Task 3", "4 - Sair\n"]):
print(f"{'':.>5} {item}" if i > 0 else item)
def task_1() -> str:
return "task_1"
def task_2() -> str:
return "task_2"
def task_3() -> str:
return "task_3"
def out() -> str:
return 'exit'
tasks: dict[str, Callable[[], str]] = {
"1": task_1, "2": task_2,
"3": task_3, "4": out}
menu()
attempts = 0
def get_message(attempts: int):
message = [":...",
"Opção selecionada:..."]
return message[0] if attempts > 0 else message[1]
while (option := input(get_message(attempts))[-1:]) not in [*'qQeE']:
system("cls||clear")
menu()
try:
if (tasks[option]() == 'exit'):
break
print(f"{tasks[option]()}\n")
attempts = 0
except:
if attempts >= 2:
input("Você superou N tentativas, operação encerrada...")
break
attempts += 1
if __name__ == "__main__":
not_ATM()
system("cls||clear")
در اینجا ما با این مفهوم و منطق در مورد منوها به پایان می رسیم ، زمانی را برای تجزیه و تحلیل بهتر اختصاص می دهیم و به یاد می آوریم اشکال مختلف نوشتن برای ساخت منو وجود داردبشر
برای اجرای دستور زیر.
python .\app.py
Não seja um escravo de sua própria mente programada pelo sistema