Код:
import calendar
b_day, b_month, b_year = map(int,input('Enter your birthdate (for example 24 08 1991): ').split())
b_weekday = calendar.weekday(b_year, b_month, b_day)
print('Your birthday:',calendar.day_name[b_weekday], '\n')
c = calendar.TextCalendar()
c.prmonth(b_year, b_month)
Бувають програми, без яких можна обійтися. Але, якщо звикнути до їх можливостей, то робота за ком’ютером стає набагато зручнішою. Наприклад, використання клавіатури для певних дій — це не просто зручно, це економія часу. Щоденна і щогодинна.
В моєму комп’ютері три мови набору тексту, відповідно в будь-який час можна погратися в лотерею: натиснути Atl+Shift і, не дивлячись на мовний індикатор, вгадати — яка зараз мова обрана акутуальною. Як було б зручно, якщо б натиснути всліпу одну клавішу і бути на 100% впевненим, яку мову обрав. Натиснув іншу клавішу – починаєш писати, не перевіряючи, що декларує мовний індикатор.
Ще один приклад — слухаємо музику і тут треба вимкнути звук. Або хтось зайшов або телефонує. Якщо у вас мультимедійна клавіатура, то на ній є відповідні кнопки. Або можна крутити ручку гучності на колонках, якщо вони поруч. Інакше треба зловити мишку. Мишкою зловити в правому нижньому куті екрану значок динаміка, натиснути на нього, а потім ще раз зловити мишкою значок виключення динаміків. А чи не багато дій для тривіальної задачі? Але ж на це все іде час, невже не можна якось зручніше?!
Третій приклад. Припустим, ви — вчитель. І вам, по роботі необхідно багато листуватися з учнями. Наприклад, під час дистанційного навчання. Не буде ж дуже гарним, якщо ви напишете учню в листі лише фразу «Списав, зараза!» «А які альтернативні версії ви розглядали?». Як правило, згідно етикету, треба спочатку привітатися, а у фіналі повідомлення — попрощатися. Як було б чудово, якщо б хтось, замість вас зайнявся всіма цими формальними вітаннями-прощаннями, тим самим економивши вам час.
І, як не дивно, всі ці три реальні задачі можна вирішити єдиною невеликою програмою — AutoHotkey. Програма реально невеличка. В пам’яті займає менше двох мегабайт, і вирішує не лише ці три, а значно більше задач. Завдяки власній скриптовій мові, розробленій для роботи з клавіатурними скороченнями і гарячими клавішами автори AutoHotkey зробили неймовірно круту штуку. До речі, автори програми — Chris Mallett і Steve Gray, офіційний сайт — autohotkey.com , код можна скомпілювати самому, все необхідне — на GitHub.
Переходимо до практики. Програма, до речі, відома, в мережі купа форумів, на яких вам можуть підказати, як зробити те, що вам треба. Скриптова мова AutoHotkey — велика, сі-подібна, можна писати цілі твори. Я ж покажу розв’язання саме цих трьох задач, тобто, як я вирішив те, що було потрібно саме мені.
Як скачати програму, писати не бачу сенсу. Отже самостійно скачуємо і встановлюємо програму AutoHotkey. Сам скрипт пишемо в звичайний текстовий файл з розширенням *.ahk
Тобто, ми створюємо єдиний файл, наприклад main.ahk і розміщуємо його в теку автозавантаження. І це все. При запуску комп’ютера, запуститься AutoHotkey, відкриє цей файл і буде користуватися. Під час роботи, до речі, можна завершити роботу AutoHotkey і запускати знову, це зручно поки ви будете відлагоджувати свій скрипт. Для тих, кому потрібно, в комплекті є конвертер, що дозволяє конвертувати .ahk в *.exe файли.
Вирішуємо першу задачу — як встановити включення певної мови введення натисканням однієї єдиної клавіши.
Ця дія потребує виконання проміжних дій. Необхідно визначити ідентифікатор локалі для кожної мови, що встановлена на ваш комп’ютер, використавши скрипт від YMP з сірого форуму.
Скачуємо скрипт – це файл f11.ahk
Скачали? Запускаємо. Далі — стандартними засобами Windows включаємо мову, наприклад, англійську. І натискаємо на клавіатурі клавішу F11. У вікні, що відкриється, буде виведено ідентифікатор локалі для англійської мови. Ось, як у мене:
Запишіть цей ідентифікатор. Переключаємо на українську і знову визначаємо і записуємо ідентифікатор локалі, тепер вже для української.
Бачимо, що ідентифікатор визначився від’ємним. Але враховуючи, що все працює, нехай так все буде. Для свого комп’ютера я ще визначив ідентифікатор для російської мови.
Отже, у мене три мови встановлено, відповідно, всі три ідентифікатора визначено. І скрипт у файлі f11.ahk більше не потрібен.
Створюємо головний скрипт. Нехай він зветься main.ahk
І в ньому прописуємо переключення мов.
Я для себе визначив так: для включення англійської використовую лівий Ctrl, для включення української – правий Ctrl, для включення російської — CapsLock. Якщо мені колись буде треба CapsLock (особисто мені — нечасто), то його можна включити за допомогою Shift+CapsLock.
Ось як це просто виглядає у файлі main.ahk :
~LControl:: SendMessage, 0x50,, 0x4090409,, A ; english
~RControl:: SendMessage, 0x50,, -0xF57FBDE,, A ; українська
CapsLock:: SendMessage, 0x50,, 0x4190419,, A ; русский
Переходимо до другого акту вистави — керування гучністю звуку, в даному випадку я керую загальною гучністю за допомогою мною обраних комбінацій Ctrl+Home і Ctrl+End :
^Home::Send {Volume_Up 2}
^End::Send {Volume_Down 2}
Як бачите, я збільшую і зменшую гучність з кроком в 2, треба повільніше — поміняйте крок на 1. Якщо хочете більший крок — також не проблема, змінюйте параметр.
Ну і останнє — автозаміна. При чому можна використати багаторядкову автозаміну, розділяючи рядки символами «`n»
Так як я мало користуюсь трикрапкою, то я визначив для себе автозаміну так: якщо я напишу послідовність букви і двох крапок, програма замінить цю послідовність на певний текст Наприклад - «д..» - це буде «Добрий день!»
Або «у..» - буде замінюватися двома рядками — в першому слово «Удачі!», а в другому — підпис.
Ну і кожен може наробити собі автозамін і гарячих клавіш як саме йому буде потрібно.
Ось, що вийшло у мене у файлі main.ahk:
~LControl:: SendMessage, 0x50,, 0x4090409,, A ; english
~RControl:: SendMessage, 0x50,, -0xF57FBDE,, A ; українська
CapsLock:: SendMessage, 0x50,, 0x4190419,, A ; русский
^Home::Send {Volume_Up 2}
^End::Send {Volume_Down 2}
::д..::Добрий день!
::в..::Всього найкращого,`nАнатолій Анатолійович
::у..::Успіхів{!}`nАнатолій Анатолійович
Можете скачати мій файл і погратися, а потім виправити на свої значення і скопіювати у теку «Автозавантаження».
Певний час піде, звичайно, щоб звикнути до нових можливостей. Але коли звикнути — то вже не відтягнути за вуха. Тим більше, розробники продовжують розвивати AutoHotkey, остання версія вийшла 17 липня 2020 року, підтримується Windows 10, програма безкоштовна.
Успіхів!
Анатолій Анатолійович
:)
Код:
def who_is(*txt):
if len(txt) == 0:
return('Як ці програмісти вже задовбали своїми тестами')
elif len(txt) == 1:
return(txt[0] + ' молодчина')
elif txt[1] == 'дівчина':
return(txt[0] + ' хороша')
elif txt[1] == 'хлопець':
return(txt[0] + ' хороший')
else:
return(txt[0] + ' з матриці')
print(who_is('Оленка', 'дівчина'))
print(who_is('Іван', 'хлопець'))
print(who_is('Нео', 'дядько'))
print(who_is('Чупакабра'))
print(who_is())
Код:
def solomon_decorator(function_to_decorate):
def the_wrapper_around_the_original_function():
print('Все пройде.')
function_to_decorate() # Сама функція
print('Пройде і це.')
return the_wrapper_around_the_original_function
def i_am_cool():
print('Я крутий!')
print('\nВиклик функції "i_am_cool":')
i_am_cool()
print('\nВиклик цієї ж функції з передачею її декоратору:')
i_am_cool_decorated = solomon_decorator(i_am_cool)
i_am_cool_decorated()