recursal/Fanatic-Fandom huggingface dataset:
Def

**def** - Это один из важнейших методов в Python. Благодаря нему можно значительно сокращать код.

## Использование

В функциях можно поместить что угодно! Можно попробовать даже поместить класс, но во первых будет сложно, а во вторых непонятно зачем.

```
def func1():
    print('Hello World!')

def func2(a, b, c):
    print(a + b - c)

```
В функциях можно также поместить и другие функции, но это уже будет называться декоратором. Это уже немного другая тема, но о ней мы конечно же поговорим.

# Декоратор - это функция, ожидающая ДРУГУЮ функцию в качестве параметра
def my\_shiny\_new\_decorator(a\_function\_to\_decorate):
    # Внутри себя декоратор определяет функцию-"обёртку".
    # Она будет (что бы вы думали?..) обёрнута вокруг декорируемой,
    # получая возможность исполнять произвольный код до и после неё.

    def the\_wrapper\_around\_the\_original\_function():
        # Поместим здесь код, который мы хотим запускать ДО вызова
        # оригинальной функции
        print ("Я - код, который отработает до вызова функции")

        # ВЫЗОВЕМ саму декорируемую функцию
        a\_function\_to\_decorate()

        # А здесь поместим код, который мы хотим запускать ПОСЛЕ вызова
        # оригинальной функции
        print ("А я - код, срабатывающий после")

    # На данный момент функция "a\_function\_to\_decorate" НЕ ВЫЗЫВАЛАСЬ НИ РАЗУ

    # Теперь, вернём функцию-обёртку, которая содержит в себе
    # декорируемую функцию, и код, который необходимо выполнить до и после.
    # Всё просто!
    return the\_wrapper\_around\_the\_original\_function

# Представим теперь, что у нас есть функция, которую мы не планируем больше трогать.
def a\_stand\_alone\_function():
    print ("Я простая одинокая функция, ты ведь не посмеешь меня изменять?..")

a\_stand\_alone\_function()

# который нам потребуется, и вернёт новую, готовую к использованию функцию:

a\_stand\_alone\_function\_decorated = my\_shiny\_new\_decorator(a\_stand\_alone\_function)
a\_stand\_alone\_function\_decorated()
#выведет:
Tkinter/Button

**Button** (рус. *Кнопка*) — виджет Tkinter, представляющий из себя обычную кнопку.

## Параметры

### activebackground

```
btn = Button(root, text='Button', activebackground='red')
```

### activeforeground

```
btn = Button(root, text='Button', activeforeground='#fff')
```

### command

```
def changecolor(): btn['bg'] = 'blue'
btn = Button(root, text='Button', command=changecolor)
```

### font

```
btn = Button(root, text='Button', font='Courier 20')
```
Project(ScratchClient)

Project - это класс ScratchClientа. В нём хранятся данные о проекте.

## Получение экземпляра проекта

Для получения проекта требуется такой код:

```
ScratchSession.get_project(Тут в Числовой Форме id проекта)

```

Советую после получения, записать данные в переменную, что бы каждый раз не получать их заново:

```
project = ScratchSession.get_project(Тут в Числовой Форме id проекта)

```

## Параметры класса Project

Тут будут описаны параметры класса Project.
Math

Math - главный математический модуль из стандартной библиотеки Python.

## Список методов

**math.ceil**(X) – округление до ближайшего большего числа.

**math.copysign**(X, Y) - возвращает число, имеющее модуль такой же, как и у числа X, а знак - как у числа Y.

**math.fabs**(X) - модуль X.

**math.factorial**(X) - факториал числа X.

**math.floor**(X) - округление вниз.

**math.fmod**(X, Y) - остаток от деления X на Y.

**math.frexp**(X) - возвращает мантиссу и экспоненту числа.

**math.ldexp**(X, I) - X \* 2i. Функция, обратная функции math.frexp().

**math.fsum**(последовательность) - сумма всех членов последовательности. Эквивалент встроенной функции sum(), но math.fsum() более точна для чисел с плавающей точкой.

**math.isfinite**(X) - является ли X числом.

**math.isinf**(X) - является ли X бесконечностью.

**math.isnan**(X) - является ли X NaN (Not a Number - не число).

**math.modf**(X) - возвращает дробную и целую часть числа X. Оба числа имеют тот же знак, что и X.

**math.trunc**(X) - усекает значение X до целого.

**math.exp**(X) - eX.

**math.expm1**(X) - eX - 1. При X → 0 точнее, чем math.exp(X)-1.

**math.log**(X, [base]) - логарифм X по основанию base. Если base не указан, вычисляется натуральный логарифм.

**math.log1p**(X) - натуральный логарифм (1 + X). При X → 0 точнее, чем math.log(1+X).

**math.log10**(X) - логарифм X по основанию 10.

**math.log2**(X) - логарифм X по основанию 2.

**math.pow**(X, Y) - XY.

**math.sqrt**(X) - квадратный корень из X.

**math.acos**(X) - арккосинус X. В радианах.

**math.asin**(X) - арксинус X. В радианах.

**math.atan**(X) - арктангенс X. В радианах.

**math.atan2**(Y, X) - арктангенс Y/X. В радианах. С учетом четверти, в которой находится точка (X, Y).

**math.cos**(X) - косинус X (X указывается в радианах).

**math.sin**(X) - синус X (X указывается в радианах).

**math.tan**(X) - тангенс X (X указывается в радианах).

**math.hypot**(X, Y) - вычисляет гипотенузу треугольника с катетами X и Y (math.sqrt(x \* x + y \* y)).

**math.degrees**(X) - конвертирует радианы в градусы.

**math.radians**(X) - конвертирует градусы в радианы.

**math.cosh**(X) - вычисляет гиперболический косинус.

**math.sinh**(X) - вычисляет гиперболический синус.

**math.tanh**(X) - вычисляет гиперболический тангенс.

**math.acosh**(X) - вычисляет обратный гиперболический косинус.

**math.asinh**(X) - вычисляет обратный гиперболический синус.

**math.atanh**(X) - вычисляет обратный гиперболический тангенс.

**math.erf**(X) - функция ошибок.

**math.erfc**(X) - дополнительная функция ошибок (1 - math.erf(X)).

**math.gamma**(X) - гамма-функция X.

**math.lgamma**(X) - натуральный логарифм гамма-функции X.

**math.pi** - pi = 3,1415926...

**math.e** - e = 2,718281...
If

**if** - одна из встроенных функций которая очень полезная. Благодаря ней можно выполнить определённое действие только в определённом случае.

## Использование

```
a = True

if a == True: # "== True" можно не дописывать
    print('yes')

```
Также стоит ознакомится с **elif** и **else**.

```
a = 'Привет!'
b = False
c = 1.3

if a == 'Привет!':
    print('1')
elif b:
    print('2')
else:
    print('3')

```
Здесь выведется только 1 т.к. первое утверждение верно. Если бы оно было неверным, то проверялось бы условие b == True. Если же нет, то выводится 3. **else** употребляется когда ни одно из условий не подходит. **elif** если первое условие *(if)* не подходит. elif можно употреблять бесконечное количество раз. Также можно проверять по типу переменной. Примечание: type() может проверять только переменные!

```
a = 'ф'
b = True

if type(a) == str:
    print('да')
else:
    print('нет')

if type(b) == float:
    print('да')
else:
    print('нет')

```

### Ключевые слова

Ключевые слова употребляются не только в if, но и ещё и в прочих модулях! Давайте рассмотрим несколько модулей:

```
a = 'ae'
b = 14

if a == False or 'ae':
    print('да')
# or выполняет одно из двух

if a == 'ae' and b == 14:
    print('однако, да')
# and выполняет сразу двое заданных условий.

```
Ещё в Python существуют **is** и **not**. is и is not могут показаться похожими на знакомые == и !=, но это не совсем так. Подробнее смотрите в статьях про них.
Также если вы хотите указать, что переменная равна None вместо:

```
a = None
if a == None:
    print("NONE")
# Выводит NONE

```

А вот так, с использование Is:

```
a = None
if a is None:
    print("None")
# Выводит None

```

Оператор Is проверяет саму идентичность объектов, а == их равенство. Т. е == это метод класса \_\_eq\_\_, а is полная идентичность объектов.

## Примечания

* Если в условии if оставить лишь переменную, то if будет выполняться в любом случае, кроме False.
Format

**format** - Метод, благодаря которому можно немного сократить код.

## Использование

Его можно использовать двумя способами:

```
a = 5
b = 40
print(f'a равен {a}, а b - {b}')
print('a равен {}, а b - {}'.format(a, b))

```
Может показаться, что лучше писать f'текст', но .format() может делать больше чем кажется на первый взгляд.

```
print('{0}, {1}, {0}'.format('abra', 'cad'))

data = {'name': 'Ivan', 'age': 42, 'money': 1200}
print('Information about {name}: Age - {age}, money: {money}$'.format(\*\*data))

```
Tuple

**Кортеж** (*англ*. **tuple**) — упорядоченная статическая коллекция объектов произвольных типов.

## Основы Кортежа

Для создания кортежа используются ()

Пример Основ:

```
# Попытка удалить элемент кортежа
del ex\_tuple[0] # Выдаст ошибку, ибо таже на уровне внутренних процессов pythona выдаст ошибку. Кортеж статический!

```
**Если вы ваши списки не изменяются - используйте кортежи! Они занимают меньше памяти и читаются быстрее! Если ваши списки изменяются использовать кортежи нельзя - это приведёт к ошибке!**
Python вики

Добро пожаловать на Python вики! Это энциклопедия по языку Python. Здесь пока что мало информации, но надеемся, что однажды она станет известной!

**Python** - Язык программирования, созданный в 1991-ом году. Он легко изучается благодаря простому синтаксису, однако при создании игр *(особенно онлайн)* Python не очень хорошо подходит т.к. он не такой быстрый. Но если использовать Python к примеру для создания ботов, сайтов, или при несложных программах, то этот язык программирования отлично подходит!

Рекомендуем посетить эти статьи, они помогут тебе освоить основы Python!

* Print
* String
* Boolean
* If
* Ошибки
* Def
* Категория:ООП

В этой вики надо ещё кучу информации написать чтобы по ней хотя бы новички могли бы получить основную базу информации для того чтобы начинать программировать что-то самим... Было бы приятно, если бы вы помогли нам! Что же сейчас конкретно требуется? Это вы можете посмотреть здесь!

## Рекомендуется

**Class** - В этой статье рассказано практически всё об ООП а также это самая большая статья на вики!
Dict

**Словарь** (*англ. **Dict)*** - это структура для хранения данных, которая работает по принципу **Ключ:Значение**

## Основы словарей

Для создания словаря нам нужно использовать {}

Всё базовые функции словарей:

```
# Объединяем словари
ex\_dict2 = {"Key":"Значение1"}
ex\_dict.update(ex\_dict2) # Выдаст {"Ключ1":"Значение1","Key":"Значение1"}
# Получаем все ключи из словаря
ex\_dict.keys() # Выдаст ["Ключ1","Key"] (Можно перебирать циклом for)

```

## Удаление элементов

Удаление происходит с использованием структуры del

Синтаксис простой

```
del <Имя словаря>[<Ключ элемента которого хотите удалить>]

```
Переменные

**Переменная** — поименованная, либо адресуемая иным способом область памяти, адрес которой можно использовать для осуществления доступа к данным.

## Использование

Все переменные имеют два параметра: Название, и значение. Пример: **a = 4**

В переменных можно хранить также и анонимные функции!

```
a = lambda x, y, z = x + y + z

```

### global

С помощью global можно сделать переменную доступной и за пределами цикла/класса/функции и т.д...

## Ограничения

При создании переменных в Python вы можете встретиться с некоторыми ограничениями.

### Название

* название переменной может начинаться только с английского алфавита или со знака нижнего подчёркивания;

* название переменной не может быть равно названию какого-либо из ключевых слов.
	+ **Ключевые слова:** and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield.

## Факты

* Названия переменных чувствительны к регистру, поэтому переменные username, Username и UserName — разные.
* Переменные в классах называются полями.
ScratchClient

ScratchClinet - это библиотека для python, созданная Raihan142857 и ilcheese2, которая даёт возможность удобно взаимодействовать со Scratch Api. Она может делать почти всё, что присутствует в scratch api.

## Функционал

**Данная библиотека позволяет**

* Изменять облачные переменные
* Читать облачные переменные
* Читать комментарии на проекта, у профилей пользователей, в студиях
* Оставлять комментарии на проектах, у пользователей и в студиях
* Делать репорты пользователей, студий, проектов
* Подписываться, лайкать и добавлять проекты в избранное, подписываться на студии и делать все тоже действия наоборот
* Читать сообщения

## Установка Библиотеки

Команда для установки библиотеки ниже

```
 pip install scratchclient

```

## Примеры

#### Основы библиотеки

```
 from scratchclient import ScratchSession
 s = ScratchSession("имя на скретче", "пароль на скретче")
 user = s.get_user("ImIsNotGagarinten")
 user.post_comment("Ура! Это Пример со скретч вики! Мы отправили тебе его, автор статьи!")

```

В первой строке мы импортируем библиотеку, а из неё ScratchSession - это сессия входа на скретч для работы с api Подробнее о ней на вики странице Вторая строка - мы создаём класс ScratchSession в переменной **s** ScratchSession осуществляет вход в аккаунт скретч. Что бы она вошла нужно предоставить данные(**username**, **password**) В третей строке мы используем **s.get\_user()**, как мы разобрали в прошлой строке s - это ScratchSession. Она имеет функцию получения **get\_user()** Её синтаксис:

```
 s.get_user("Имя Юсера")

```

После получения user мы задаём переменную user, где будет храниться нужный нам пользователь. Далее мы используем функцию **user.post\_comment("Тут Комент")**, она оставляет комент у user или проекта, а то и даже у студии, но в ней (до точки) должен передаваться обЪект(можно было и **s.get\_user("U Ser").post\_comment("U is U Ser")**), объект это **user** либо **project** либо **studio**.

## Работа с проектами

Project - это класс ScratchClientа. В нём храняться данные о проекте

## Получение экземпляра проекта

Для получения проекта требуется такой код:

```
ScratchSession.get_project(Тут в Числовой Форме id проекта)

```

Советую после получения, записать данные в переменную, что бы каждый раз не получать их заново:

```
project = ScratchSession.get_project(Тут в Числовой Форме id проекта) Параметры класса Project]

```
While

**while** - Это цикл, который выполняется до тех пор, пока в нём что-то не изменится.

## Использование

```
a = 5
while a > 2:
    a -= 1
    print(a)

```
Здесь будет выполняться действие a - 1 пока a не станет меньше или равен двум.
while очень хорошо подходит в **try**, **except**.

```
a = 0

        a = int(input('Введите число: '))
        a += 5
        print(a)
    except ValueError:
        print('Кхм, вам надо написать число')

```
Также можно создать простую игру которая будет работать в while.

```
game = 1
b = 0
print('Вы на необитаемом острове!')
while game == 1:
    a = str(input('Хотите кокос? '))
    if a == 'Да':
        print('Вы получили кокос!')
        b += 1
    else:
        print('К вам пришёл лев и он съел вас. Вы собрали', b, 'кокосов!')
        game = 0

```
В for же цикл будет работать ограниченное количество раз. Однако не стоит for заменять на **while**! *(Здесь нужно дополнить)*
С помщью цикла **while можно сделать бесконечный цикл. Для это го пишем *while True: print("LOOP")***

```
#Сначала создаём счётчик, зачем нам что бы цикл работал бесконечно!
counter = 0
#Запускаем бесконечный цикл
while True:
    #Увеличиваем счётчик
    counter+=1
    print(counter)
    # Когда счётчик дойдёт до 20, останавливает цикл
    if counter == 10:
        break

```
Python

**Python** (Пайтон/Питон) — Высокоуровневый язык программирования предназначенный от создания простых программ заканчивая созданием искусственного интеллекта! Язык является полностью объектно-ориентированным — всё является объектами. Одной из особенностей языка является выделение блоков кода пробельными отступами. Недостатками языка являются зачастую более низкая скорость работы и более высокое потребление памяти написанных на нём программ по сравнению с аналогичным кодом, написанным на компилируемых языках, таких как C или C++. Хотя специально для него были разработаны библиотеки компиляции. Например тот же PyPy - работает обычного Cpython в 3 раза быстрее.
Pygame/Pygame.display()

p**ygame.display()** — модуль, использующийся для управления окном игры и экраном.

## Описание

Модуль pygame.display() используется для управления окном игры и экраном.

### Методы

* **pygame.display.init()** — инициализирует модуль Pygame;
* **pygame.display.quit()** — деинициализирует модуль Pygame;
* **pygame.display.get\_init()** — возвращает *True*, если модуль Pygame был инициализирован
* **pygame.display.set\_mode((x,y),flag)** — задает размеры и параметры окна
* **pygame.display.update()** — обновляет окно
Ключевые слова

## Список слов

**keyword** - Модуль, благодаря которому можно получить список всех ключевых слов *(keyword.kwlist)* а также проверить, является ли значение ключевым *(keyword.iskeyword())*.

**True и False** - Правда и Ложь. boolean значения.

**None** - "Пустой" объект.

**and** (и) - Позволяет проверить два условия.

**with / as** - менеджер контекста.

**assert** условие - возбуждает исключение, если условие ложно.

**break и continue** - Ключевые слова циклов.

**class** - пользовательский тип, состоящий из методов и атрибутов.

**def** - определение функции.

**del** - удаление объекта.

**if/elif** - Если/В другом случае, если.

**else** - см. for/else или if/else.

**except** - перехватить исключение.

**finally** - вкупе с инструкцией try, выполняет инструкции независимо от того, было ли исключение или нет.

**for/while** - Циклы.

**from/import** - Нужны для импортирования библиотек.

**global** - позволяет сделать значение переменной, присвоенное ей внутри функции, доступным и за пределами этой функции.

**import** - импорт модуля.

**in** - проверка на вхождение.

**is** - ссылаются ли 2 объекта на одно и то же место в памяти.

**lambda** - определение анонимной функции.

**nonlocal** - позволяет сделать значение переменной, присвоенное ей внутри функции, доступным в объемлющей инструкции.

**not** - логическое НЕ.

**or** - логическое ИЛИ.

**pass** - Пропустить ход.

**raise** - возбудить исключение.

**return** - вернуть результат.

**try** - выполнить инструкции, перехватывая исключения.

**yield** - определение функции-генератора.

## Значения

### continue и break

Иногда нужно чтобы цикл работал не совсем как цикл. Например нужно чтобы при каком-то случае он останавливался, или же чтобы начинался заново до его конца. break и continue помогут с этим! break останавливает цикл, а continue возвращает действия цикла в начало! Возможно, это объяснение не совсем понятно, так что посмотрим на примере!

```
a = True
while a:
    n = str(input('a/b/c :'))
    if n == 'a':
        print('Ok!')
    elif n == 'b':
        continue
    elif n == 'c':
        break
    else:
        print('Я чего-то не понял... Ладно, остановлю цикл.')
        a = False
    print("Действие input'а готово!")

```
continue (b) возвратит цикл на момент, где надо писать input, и не выведется последний print в цикле. break же (c) вообще остановит цикл и программа завершится т.к. после цикла ничего нет. Результат else в этом цикле можно было сказать что выполняет функцию break, однако цикл не останавливается, значение a меняется на False, но действия после else продолжаются и заканчивается на последней строке кода (print).

### from и import

Эти два слова очень нужны в языке Python. Благодаря ним можно импортировать различные библиотеки. Примеры работы находятся ниже.

```
import cowsay
from random import randint
import datetime

```
Pygame

**Pygame** — библиотека модулей для языка Python, созданная для разработки 2D игр.

## Статьи

### Модули

* pygame

* pygame.color()
* pygame.display()
* pygame.draw()
* pygame.event()
* pygame.font()
* pygame.image()
* pygame.key()
* pygame.locals()
* pygame.mixer()
* pygame.mouse()
* pygame.music()
* pygame.Rect()
* pygame.Surface()
* pygame.time()
Pickle

Pickle - модуль из стандартной библиотеки Python. Используется для сохранения объектов Python и их последующий выгрузке

## Пример Использования:

Для примера мы будем сохранять вот этот словарь:

```
>>> data = {"names":["Саня", "Пётр"]}

```

Для начала нам нужно импортировать модуль, после открыть файл и вызвать метод **dump(*obj*)**

```
>>> with open('data.pickle', 'wb') as f:
...     pickle.dump(data, f)

```
После, давайте убедимся, что файл сохранился правильно и не вызвал ошибок:

```
>>> with open('data.pickle', 'rb') as f:
...     data\_new = pickle.load(f)

```

Читаем вывод:

```
>>> data\_new
{"names":["Саня", "Пётр"]}

```
Такой метод работает со всеми объектами Python

## Полный список всех методов и классов модуля

**pickle.dump**(obj, file, protocol=None, \*, fix\_imports=True) - записывает сериализованный объект в файл. Дополнительный аргумент protocol указывает используемый протокол. По умолчанию равен 3 и именно он рекомендован для использования в Python 3 (несмотря на то, что в Python 3.4 добавили протокол версии 4 с некоторыми оптимизациями). В любом случае, записывать и загружать надо с одним и тем же протоколом.

**pickle.dumps**(obj, protocol=None, \*, fix\_imports=True) - возвращает сериализованный объект. Впоследствии вы его можете использовать как угодно.

**pickle.load**(file, \*, fix\_imports=True, encoding="ASCII", errors="strict") - загружает объект из файла.

**pickle.loads**(bytes\_object, \*, fix\_imports=True, encoding="ASCII", errors="strict") - загружает объект из потока байт.

Модуль pickle также определяет несколько исключений:

* **pickle.PickleError**
	+ **pickle.PicklingError** - случились проблемы с сериализацией объекта.
	+ **pickle.UnpicklingError** - случились проблемы с десериализацией объекта.
Discord.py

discord.py - Библиотека для Discord, созданная для разработки ботов.

## Создание простого бота

### Шаг 1 - Создание бота

Для этого вам придётся зайти на сайт Discord'а по разработки приложений. Далее создаём приложение с помощью кнопки **New Application**.

**Нужно дополнить этот отдел информацией и изображениями**

### Шаг 2 - Hello World!

Напишем сначала просто код для того чтобы бот запускался.

```
import discord

client = discord.Client()

client.run("Insert here token of bot")

```
Кстати, токен бота обычно хранят в отдельном файле.
Далее создаём событие через @client.event и пишем асинхронную функцию on\_message.

```
@client.event
        await message.channel.send("Hello World!")

```
Также в разработке Discord ботов пример Hello World заменяется "Ping Pong". Выглядит так: пишешь команду ping, получаешь ответ Pong!
Теперь напишем событие во время запуска. Оно необязательно, но благодаря ему можно узнать когда можно использовать бота + некоторые команды *(например client.change\_presence())* лучше использовать именно в этом событии.

```
@client.event
async def on\_ready():
    print("I'm ready!")

```

### Шаг 2.1 - Создание бота через commands.Bot()

Особо ничем не отличается т.к. является классом-наследником от Client, однако имеет возможности которые значительно облегчают разработку. Вот так выглядит обычный код с запуском бота и Ping Pong:

```
import discord
from discord.ext import commands

client = commands.Bot()

@client.command()
async def ping(ctx):
    await ctx.send("Pong!")

client.run("Insert here token of bot")

```
В командах необходимо писать ctx даже если он не используется!
List

**Список** *(англ. List)* — упорядоченная изменяемая коллекция объектов произвольных типов.

## Описание

Список является набором пронумерованных элементов, расположенных по порядку. В каждом элементе находится какое-либо значение.

**Если вы ваши списки не изменяются - используйте кортежи! Они занимают меньше памяти и читаются быстрее! Если ваши списки изменяются использовать кортежи нельзя - это приведёт к ошибке!**

## Создание списка

Список можно создать несколькими способами.

### Переменные

Можно создать переменную, значением которой будет являться список.

```
l = ['apple', 5, 10.3, 'hello world']

```

Список является значением переменной *l*. Он состоит из 4 ячеек разных типов данных. Каждый элемент имеет свой номер, начинающийся с 0 и возрастающий слева направо.

### list()

Функция list() может создавать массив из заданного значения.

```
> list('hello world')
['h', 'e', 'l', 'l', 'o', ' ', 'w', 'o', 'r', 'l', 'd']

```

В данном примере строка 'hello world' была превращена в массив, состоящий из 11 элементов.

### list.split()

Функция list.split() схожа с list(), однако разделяет словосочетания не по отдельным буквам, а по словам.

```
> l = 'hello world'
> print(l.split())
['hello', 'world']

```

## Методы списков

```
l = ['hello world', 5, 0.1]

```

## Получение значений элементов

Вы можете получать значения элементов.

```
> l = ['hello world', 5, 0.1]
> print(l[0])
hello world

```

В данном примере получение значения определённого элемента происходит с помощью **l[0]**.

* **l** — название массива
* **[0]** — порядковый номер ячейки

## Удаление Элементов

Удаление элементов происходит через структуру **del.**

Синтаксис по удалению элемента:

```
del <название списка>[<номер элемента>]

```

## Списки Генераторы

Как гласит **дзен** ***python - "Есть только один способ сделать это."***

Но к сожалению что бы сгенирировать список есть несколько способов.

Так какой же выбрать?

Давайте рассмотрим на примере задачи.

У нас есть задача, у нас есть словарь, из словаря нужно записать ключи в список.

Первый, самый очевидный:

```
# Мы перебераем все ключи из словаря ex\_dict
for i in ex\_dict.keys():
    # Добавляем в список данные из словаря
    ex\_list.append(i)

```
Первый очевидный способ
Но есть и второй способ, он более компактный и быстрый:

```
# Вместо иницилизации пустого списка мы развёртываем цикл for внутри него
ex\_list = [i for i in ex\_dict.key()]

```
Синтаксис этого генератора такой:

```
[<переменная цикла> for <переменная цикла> in <объект для перебора>]

```
Теперь о том какой способ лучше использовать:

Лучше конечно использовать второй способ, ибо он компактнее, быстрее, надёжнее.
Pip

Pip - менеджер модулей PyPi. Используется по умолчанию в большинстве версий Python.

## Список команд

##### Установка модулей

```
pip install <название_модуля>

```
Pip автоматический установит все зависимости для модуля.

###### Формат requirements.txt

Самый обычный формат такой:

```
module1
module2
module3

```
С каждой новой строки указывать другой модуль.

Если вы хотите указать точную версию, или же не меньше вы можете использовать операторы python ==, > и тд.

Примерно в таком формате:

```
module1 == 0.0.1
module2 <= 0.0.2
module3 >= 0.0.3

```

##### Удаление модулей

```
pip uninstall <название_модуля>

```
В этой команде он уже не будет удалять зависимости, тут приходится удалять всё вручную.

##### Вывод списка установленных модулей

```
pip list

```
Должен вывести список модулей в таком формате:

```

```
Tkinter

**Tkinter** — встроенная библиотека языка Python, используется для создания графического интерфейса.

## Tkinter

### Виджеты

* **Button** — создание кнопки
* **Canvas**
* **Checkbutton**
* **Combobox**
* **Entry** — добавление однострочного поля для вода текста
* **Frame**
* **Label** — добавление текста
* **Listbox**
* **Menubutton**
* **Menu** — добавление горизонтального меню
* **Message**
* **Optionmenu**
* **Notebook** — создание вкладок
* PhotoImage - добавление изображения
* **Progressbar**
* **Radiobutton**
* **Sizegrip**
* **Scale**
* **Scrollbar**
* **Spinbox**
* **Text** — добавление многострочного поля для ввода текста с возможностью форматирования
* **Toplevel**
* **Treeview**
* **Spinbox**
* **Panedwindow**
* **Labelframe**
* **tkMessageBox** — создание диалоговых окон

### Расположение виджетов

* pack()
* grid()
* place()

## Создание простой программы

Для начала создадим пустое окно

```
from tkinter import \*
window = Tk()
window.geometry('1200x800+200+100') # Размер окна
window.mainloop()

```
Самое главное это прописать переменную хранящую **Tk()**. Это - окно в котором и будут происходить все действия. **window.mainloop()** это открытие самого окна. Теперь давайте сделаем так, чтобы что-то выводилось. Создадим две кнопки, которые при нажатии будут выводить в терминал "Hello World!" и "Different Hello World!", а также напишем какой-то текст.

```
from tkinter import \*
window = Tk()
window.geometry('800x200+200+100')
window.title('Touch on buttons!')

about = Label(text='Hello! This programm writed for example on "Python вики"!', font='Courier 15') # font='<Стиль текста> <размер>'
about.pack()

def hello(): print('Hello World!')
def also\_hello(): print('Different Hello World!')

button1 = Button(text='Touch me!', command=hello, height=3, width=10, font='Courier 20')
button2 = Button(text='Touch me too!', command=also\_hello) # "command=" принимает лишь функции. Переменные и просто print('Different Hello World!') не подойдут

button1.pack()
button2.pack() # .pack() нужно для того чтобы вставить в программу объекты, а также можно таким образом указывать где будут располагаться объекты.
# Если поместить about.pack() ниже кнопок, то текст будет внизу.

window.mainloop()

```
Вот мы и создали простую программу. Если хотите научится писать что-то более сложное и интересное, то начните изучать виджеты Tkinter!
Lambda

## Использование

lambda функции удобно использовать если функция маленькая. Сравним два варианта одной и той же функции с def и lambda:

```
# def
def summa(a, b):
    print(a + b)
summa(3, 4)

# lambda
summa = lambda a, b: print(a + b)
summa(3, 4)

```
Сразу же заметно, что lambda функция намного компактнее.

Также lambda относится к функциональной парадигме программирования. Именно она позволяет писать код на python с помощью функциональной парадигме.
Pygame/Pygame.draw()

**pygame.draw()** — метод, используемый для создания геометрических объектов с возможностью изменения их параметров.

## Описание

Метод pygame.draw() используется для создания геометрических объектов с возможностью изменения их параметров.

## Создание фигур и их параметры

Каждая фигура имеет собственные параметры.

### Линии

```
pygame.draw.line(root, (255, 255, 0), [100, 100], [200, 200], 3)

```

где:

* **pygame.draw.line(** — начало метода;
* **root** — название окна игры;
* **(255, 255, 0)** — цвет линии, RGB;
* **[100, 100]** — координаты начала линии;
* **[200, 200]** — координаты конца линии;
* **3** — толщина линии.

### Прямоугольник

```
pygame.draw.rect(root, (255, 255, 0), (100, 100, 100, 100))

```

где:

* **pygame.draw.rect(** — начало метода;
* **root** — название окна игры;
* **(255, 255, 0)** — цвет фигуры, RGB;
* **(100, 100,** — положение фигуры по *x* и *y*;
* **100, 100)** — ширина и высота фигуры;
* **)** — конец метода.

### Контур прямоугольника

```
pygame.draw.rect(root,blue, ( 0, 0), ( 1, 1), 3)

```

где:

* **pygame.draw.rect(** — начало метода;
* **root** — название окна игры;
* **(255, 255, 0)** — цвет контура, RGB;
* **(100, 100,** — положение фигуры по *x* и *y;*
* **100, 100)** — ширина и высота фигуры;
* **10** — толщина контура.

### Многоугольник

```
pygame.draw.polygon(root, (255, 255, 0), [[100, 100], [200, 100], [200, 200], [100, 200]])

```

где:

* **pygame.draw.polygon(** — начало метода;

* **root** — название окна игры;

* **(255, 255, 0)** — цвет фигуры, RGB;
* **[ —** начало списка вершин многоугольника;
* **[100,100] —** координаты левой верхней вершины;
* **[200, 100] —** координаты левой нижней вершины;
* **[200, 200]** — координаты правой нижней вершины;
* **[200, 100] —** координаты правой верхней вершины;
* **]** — конец списка вершин многоугольника;
* **)** — конец метода.

### Круг/окружность

#### Круг

```
pygame.draw.circle(root, (255, 255, 0), (150, 150), 100)

```

где:

* **pygame.draw.circle(** — начало метода;
* **root** — название окна игры;
* **(255, 255, 0)** — цвет круга;
* **(150, 150) —** координаты центра круга;
* **100** — радиус круга.

#### Окружность

```
pygame.draw.circle(root, (255, 255, 0), (150, 150), 100, 10)

```

где:

* **pygame.draw.circle(** — начало метода;
* **root** — название окна игры;
* **(255, 255, 0)** — цвет окружности;
* **(150, 150) —** координаты центра окружности;
* **100** — радиус окружности;
* **10** — толщина контура окружности.

## Ссылки

* Pygame documentation
* Лаборатория линуксоида. Урок 3 — геометрические примитивы
Библиотеки

**Библиотеки** - Очень важная часть в Python. Благодаря ним можно сократить код на несколько строк, а иногда даже и на десятки!

## Как пользоваться библиотеками?

Для этого есть два ключевых слова - **from** и **import**. import нужен чтобы просто импортировать библиотеку, а from нужен чтобы импортировать что-то конкретное.

```
import math # Импортирование библиотеки math
from random import randint # Импортирование из библиотеки random модуль randint

```
Чтобы пользоваться, надо написать **слово()**, или же **слово1**.**слово2()**

## Как создать библиотеку?

> *Здесь написано лишь про то как создать библиотеку. Если вы хотите узнать больше о классах и о самом ООП, то перейдите в статью о классах.*
>
>

Для этого надо создать файл и написать там один или более классов. Можно также вставить лишь одну функцию, а можно просто переменную сделать там. Пример кода

```
# Переменные в классах называются полями. Функции в классах - модули.
class Animals:
    dog = None
    snake = None
    elephant = None
    lion = None

    # self в модулях обязателен!
    def \_\_init\_\_(self, dog, snake, elephant, lion): # Благодаря \_\_init\_\_ можно просто написать Animals(значения)
        self.status(dog, snake, elephant, lion)

        self.get\_data()

    def status(self, dog, snake, elephant, lion): # Ввод данных в поля
        self.dog = dog
        self.snake = snake
        self.elephant = elephant
        self.lion = lion

    def get\_data(self): # Отправка сообщения. Необязательно, но можно
        print('Статус животных в зоопарке:', 'Собака - ' + str(self.dog), 'Змея - ' + str(self.snake), 'Слон - ' + str(self.elephant), 'Лев - ' + str(self.lion), sep='\n')

    # Дальше только для второго примера идёт
    some\_variable\_Animals = 'Некоторая переменная в Animals'

def summa(a,b,c):
    return print(a + b + c)

some\_variable = 'Это текст в переменной some\_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/'

```

```
# Переходим к другому файлу (название неважно)
from zoo import \* # import \* означает что импортируется всё из файла zoo. Без этого надо было бы писать "...import Animals", "...import summa" и т.д...

Animals('Есть',True,'1','Нет')
# print(some\_variable\_Animals) - При попытке вывести это выйдет ошибка
summa(1, 5, 7)
print(some\_variable)

# Это текст в переменной some\_variable. Она находится в файле mymodule.py. Вообще, переменным здесь не совсем место, но они могут быть здесь :/

```

## Установка библиотек из pip

Для установки библиотеки нужно написать в консоль такую команду:

```
pip install <название модуля>

```
Для вывода всех установленных библиотек

```
pip list

```
Для удаления пакета:

```
pip uninstall <название пакета>

```

## Список библиотек

* cowsay
* Tkinter
* random
* Math
* turtle - Рисование разнообразных рисунков с помощью объекта, называемой черепахой.
* Pygame
Tkinter/Entry

**Entry** - Виджет Tkinter который создаёт текстовое поле для ввода текста.

## Методы

### .get()

Можно получить данные из текстового поля. Пример:

```
from tkinter import \*
window = Tk()
window.geometry('400x400')

def data():
    text = entry.get()
    label['text'] = text

label = Label(font = 'Ariel 30')
button = Button(text = 'Преобразовать', command = data)
entry = Entry()

entry.pack()
button.pack()
label.pack()
window.mainloop()

```

### .insert()

```
from tkinter import \*
window = Tk()
window.geometry('400x400')

add = lambda: entry.insert(1, 'Сделано Python вики!')

button = Button(text = 'Базовый текст', command = add)
entry = Entry()

entry.pack()
button.pack()
label.pack()
window.mainloop()

```

### .delete()

```
from tkinter import \*
window = Tk()
window.geometry('400x400')

clear = lambda: entry.delete(0, END) # До каких символов будет удалятся

button = Button(text = 'Очистить', command = clear)
entry = Entry()

entry.pack()
button.pack()
window.mainloop()

```
Angemon

## Allgemeine Informationen

Name: Angemon

Level: Champion

Typus: Serum

Art: Engeldigimon

Attacken: Kraft des Lichtes, Engelsstab

Charakter: Ehrlich, Offen, Herzig

Kampfart: Mitteldistanz

## Bewertungen

1. Kampfkraft: 6
2. Digitionen: 6
3. Wichtigkeit in der Serie: 9
4. Fähigkeiten: 8
5. Eigene Meinung: 7
6. Aussehen: 7
7. Schnelligkeit: 7
8. Lvl: 5
9. Intelligents: 7
10. Verteidigung: 7

Ergebnis: 69
Andrea Kormos

## Allgemeines

Name: Andrea Kormos

Rasse: Vampir

Rang: Neuling

Gruppe: Benny Laffite

Status: Tot durch Dean

Charakter: Nett, will es eigentlich nicht

## Kräfte

* **Superstärke**
* **Fangzähne**
* **Supergeschwindigkeit**
* **Superagilität**
* **Superausdauer**
* **Verschärfte Sinne**
* **Unsterblichkeit**
* **Unverwundbarkeit**
* **Regeneration**

## Schwächen

* **Enthauptung** - tötet sie endgültig.
* **Blut eines toten Menschen** - ist für einen Vampir wie Gift, welches sie für eine gewisse Zeit betäubt.
* **Sonnenlicht** - brennt nur auf der Haut, tötet sie jedoch nicht.
* **Der Colt** - dieser Revolver kann so gut wie alles töten
* **Engel** - Da Engel sehr viel mächtiger sind als Vampire, können sie Vampire mit Leichtigkeit verbrennen und somit töten.

Ergebnis: 21
Austin Theory

## Allgemeines

Name: Austin Theory

Herkunft: Georgia

Alter: 22

Liga: NXT und EVOLVE

## Karrieredaten

Trainer: AR Fox

Wrestlingstil: Allrounder

Spitzname: The Unproven One

Move Set: Shooter, The Unprooven Cutter

Bestes Match: Austin Theory vs JD Drake EVOLVE

## Matchstatistik im Jahresschnitt

Siege: 104

Niederlagen: 112

Unentschieden: 3

Anzahl: 219

## Titel

* EVOLVE Championship
* FIP World Heavyweight Championship
* FSPW Heavyweight Championship 2x
* PWA Heritage Championship
* The Crash Heavyweight Championship
* WWN Championship 2x

## Mein Buch

Name: Austin Jazzy

Gilde: Weltraumschiff

Fähigkeit: Atomatem

## Bewertung

1. Statistik: 5
2. Gimmick: 7
3. Promos: 7
4. Wrestlingstil: 7
5. Meine Meinung: 6
6. Move Set: 7
7. Tag Team: 0
8. Matches: 8
9. Größter Moment der Karriere: 6
10. Cagematch Meinungen: 8

Ergebnis: 63
Durante Lucifer's Servants

The following is a list of characters are Durante Lucifer's servants and groups.

## Plot

Durante's entire peerage made their first appearance in Chapter 756 and had a formal introduction in Chapter 770. Prior to Chapter 756, the only members that were revealed was Whiltierna, Durante's lover and Queen and Eithlinn's older sister, and Jessica Hitler, Durante's Pawn. According to Zexal, Durante's peerage rarely gathers together as he has only seen three of his servants (Surtr Sekund, Jonathan Flamel and Souji Okita) together once when he was a child. Mephisto, who knew all the members of the Lucifer Group, even mentions in *"The Worry of the Young Heir-sama"* that it was his first time seeing them all together.

During the decisive battle with Trihexa and the corrupt Mitsuya, Durante's peerage once again gathered with all members, where all members save Whiltierna, who was immobilized by Durante, sealed themselves inside the Isolation Barrier Field along with Trihexa and Mitsuya's Apocalypse Beast powers, intending on battling the imperial beasts inside the barrier.

## Members

* **Durante Lucifer**: The Devil formerly holding the title of Lucifer and is known as the Crimson Grandmaster. (King)
* **Whiltierna**: Durante's Queen and lover. She is also a Dullahan, a race thought to be close to extinction. (Queen)
* **Jonathan Flamel**: The descendent of Nicolas Flamel, the man who discovered the legendary Philosopher's Stone. (Bishop x2)
* **Souji Okita**: The former 1st squad captain of the Shinsengumi. (Knight x2)
* **Surtr Sekund**: The ultimate Rook. He is the clone of Surtr from Norse Mythology. (Rook, Mutation Piece)
* **Ounamazu**: A sacred beast known as the **Mud Fish under the Deep Sea** (深海の下の泥魚, *Shinkai no Shita no Doro Sakana*). It is mainly used for transportation, searching the enemy and also to annihilate grunts. (Rook)
* **Jessica Hitler**: A descendant of the Führer of Germany, Adolf Hitler. She is said to be one of the Top 5 Pawns in the Netherworld. (Pawn ?)
* **Beo Wülf**: A descendant of the hero Beowulf, he is said to be one of the Top 5 Pawns in the Netherworld. (Pawn ?)
* **Guren**: A Chinese Qilin that was reincarnated into Durante's Pawn. (Pawn ?)

## Trivia

* Durante's peerage is said to be the strongest group in the Netherworld.
* To combat Cthulhu, who has the ability to cancel the effects of Ancient Relics, Durante's peerage has no Ancient Relic users included in it.
* Ounamazu is the only member that hasn't made an appearance in the series.
Mephisto Lucifer

## Mephisto Lucifer

### Kana

メフィスト・ルシファー (katakana, real name)鮫島 (Alias)

### Romaji

Mefisuto Rushifā (Real Name)Samejima (Alias)

## Profile

### Nicknames

Samejima (Alias)Darling (by Emilia and Rachel)

Baby-Insanity Devil

Phoo-Boy (by Indra)

Beast of Trickery (Apostle Title)

Son of the Bastard Devil (by Cthulhu)

### Equipment, Magic and Abilities

MagicCorrupt Morning Star

Imps (Familiars)

Raven (Familiar)

Wizardry

Sorcery

## Personal Information

### Relatives

Original Lucifer (Great-Grandfather) †Lilith (Great-Grandmother)

Mammon Lucifer (Grandfather) †

Akuma Lucifer (Father) †

Lailah Ryder (Mother) †

Mephistopheles (Godfather)

Lucifer (Older Brother)

Estarossa Lucifer (Half-Brother) †

Piety (Half-Brother) †

Mitsuya Lucifer (Younger Brother)

Lyre Ryder (Younger Sister)

Arth Lucifer (Adoptive Brother)

Calypso Lucifer (Half-Sister)

Zeref Lucifer (Half-Brother) †

Alexander Rider (Grandfather)

Laylah (Grandmother)

Leliel Ryder (Aunt) †

Ruval Ryder (Uncle)

Ravel Ryder (Cousin)

Sona Lucifer (Daughter)

### Affiliations

Lucifer ResidenceMythos Academy (Principal)

Netherworld

House of Lucifer

Vatican (Informant)

72 Daemons

Ten Star Apostles Lord

Heaven

Grigori

Team Kin of Pheles (Leader)

### Ranking

Master/King PieceUltimate-Class Devil

Cadre
Hero Faction

The **Hero Faction** (英雄派 *Eiyū-ha*) was the second-largest faction of the Nazareth House led by Kemo Kemo, the descendant of Cao Cao from the Chinese novel *Romance of the Three Kingdoms*.

## Summary

The Hero Faction was one of the factions in Nazareth House that consisted of solely Humans. All members of the Hero Faction were either Relic, Holy-Demonic Sword, Holy Sword, Demon Sword, and/or Longinus wielders.

The motto of the Hero Faction was to fight and defeat "evil beings" such as Devils, Fallen Angels, Dragons, and Demons that bring harm to Humans. The Hero Faction possessed a large number of Relic wielders who were either abducted and brainwashed, or followed willingly. Many of these members, however, were sacrificed in battle during the Hero Faction's attempts to force them to achieve Overdrive. All of those who didn't reach Overdrive were eventually captured and later died as a result of Lilith's snakes destroying their Relics, while those who did achieve Overdrive were called back before they could be caught.

The Hero Faction went inactive after Chapter 546, after the loss of their leaders. Shiva sends their most powerful members (Kemo Kemo, Adolf Medici, Johann George and Guan Yu) to the Realm of the Dead, taking all of their Longinus from them. Heracles, Jeanne and Sigurd were captured by the Devils and Fallen Angels for interrogation, while Abraham Van Helsing was the only main member of the Hero Faction who died in battle.

## Former Members

 Eri Ambrosius
 Millia Morgan Pendragon

## Trivia

* Practically almost every Hero Faction member shown wears matching uniforms similar to that of a Japanese school uniform (more specifically, the *gakuran* worn in the fall).
* Red Boy is the only known half-human within the ranks of the Hero Faction.
Karim Luveve

**Karim Luveve** era um general de Vonleh e guerreiro lendário da poderosa família Luveve, que tinha a missão de buscar Tomma e restaurar a paz em Arcos até morrer em circunstâncias misteriosas no Vale da Morte.

## Aparência

Karim era um homem de meia idade, de porte imponente, calvo e com um bigode e suíças grossas grisalhos.

## Personalidade

Karim era gentil, preocupado com seu país e pacífico, apesar de ser um guerreiro reconhecido por toda Arcos. Determinado e orgulhoso, ele recusa sedativos antes de sua morte, apesar de estar em grande dor, para refletir sobre seus erros em seus últimos momentos.

## História

#### Passado

Os Luveve são uma das famílias mais tradicionais e antigas de Arcos, são extremamente ricos e portadores do poderoso Anel dos Luveve. Mesmo em sua notável família, Karim destacou-se como um guerreiro notável e sua vontade de fazer o melhor pelo seu país. Ele possuía um irmão em Amir Luveve.

Em determinado momento, ele resolveu buscar Tomma na lendária cidade de Garkunfel para resolver os problemas de sucessão do país e dar fim a guerra civil de 15 anos. Mas em circunstâncias desconhecidas o poderoso soldado foi derrotado e deixado para morrer.

#### Saga de Michegnon

Karim, em seus momentos finais, encontra Clement e dá a ele a missão de encontrar a mística cidade e levar dela para Vonleh o misterioso Tomma.

## Habilidades

Não se sabe muito sobre as extensões das habilidades de Karim, exceto pela grande fama que ele possuía em toda Arcos, bem como por sua determinação de se manter vivo por dois dias apesar de seriamente ferido na cabeça de forma a passar sua missão adiante.
Pierre Noah

**Pierre Noah** é o primeiro ministro de Vonleh.

## Aparência

Noah é um homem pequeno, de cabeça grande, pele cor de oliva e cabelos muito
negros.

## Personalidade

Noah demonstra preocupação com a cidade de Vonleh e com o país, desejando o fim do conflito que o assola. Ele confia em Karim e lamenta que tenham que usar magia para manter o povo quieto.
The International Wizard of Oz Club

**The International Wizard of Oz Club** (の・国際・オズの魔法使い・クラブ, *Ozu Kurabu no Kokusai Uizādo*), is a supporting agency of the Three Factions, and the ones who supplied Gray and Akainu with their first Artificial Longinus.

## History

Originally an agency that assisted Grigori and the Fallen Angels and later the Three Factions, The International Wizard of Oz Club was built and founded by the Scarecrow, the young man, Justin G. Schiller, and fifteen others.

## Summary

The International Wizard of Oz Club first introduced in Chapter 607, when one of the two current leaders of the agency, the Cowardly Lion, and one of the founders of it, the Scarecrow, arrived at Mythos on the call of Mephisto Lucifer and gifted the three Longinus, Mjölnir False, Grand Chariot and Liberalitas Aura to Kami Shikai, Gray Hyoudou and Moe Hammond.

## Members

 Cowardly Lion | One of the two current leaders of The International Wizard of Oz Club.
 Tin Woodman | One of the two current leaders of The International Wizard of Oz Club.
 Eri Beatrice
 Holiday
 Dorothea Carmilla
Mythos Wiki

## Welcome to the Wiki

Welcome to the wiki. We’re a collaborative community website about your topic that anyone, including you, can edit. Click the edit button at the top of any page to get started!

## Describe your topic

Write a description about your topic. Let your readers know what your topic is about and add some general information about it.

## Latest activity

Photos and videos are a great way to add visuals to your wiki. Add one below!

File:Placeholder
The Scarecrow

The Smartest Man in Oz

Rampage Scarecrow (by Cowardly Lion and Mephisto)

Magic

Wizardry

Grauzauberer (Chairman)

Mythos

Netherworld

Heaven

Grigori

Team Crimson True Dragon Emperor of the Blazing Morning Star (Advisor)

**The Scarecrow** is the former king of the Land of Oz, and one of the seventeen founders of The International Wizard of Oz Club. He is also the chairman of the Magician organization, Grauzauberer.

## Appearance

Scarecrow has heterochromia; his left eye is blue, while the right is pure white (with one of his eyes being larger than the other). He also gives out a mysterious atmosphere similar to that of Mephisto Lucifer and Seraph Beelzebub.

The Scarecrow wears a blue business suit over an worn-out and faded hand-me down farmers clothes, with an old wrinkled and pointed hat that stands a foot above his head.

## Personality

Scarecrow is an extremely gentle man, his disposition is so kind and considerate, obliging and honest that all who know him love him.

He is also described as an very intelligent man, said to be as intelligent as Azazel and Mephisto.

## Powers & Abilities

**Expert Magician**:

**Master Strategist**:

**Wizardry**:

**Immense Durability**:

**Flight**:

## Equipment

**Powder of Life** (パウダー・オブ・ライフ, *Paudā obu Raifu*):