from functools import reduce
from operator import mul
def persistence(n):
i = 0
while n > 9:
n = reduce(mul, map(int, str(n)), 1)
i += 1
return i
def persistence(n):
i = 0
while n > 9:
n = eval('*'.join(f'{n}'))
i += 1
return i
from functools import reduce
from operator import mul
from itertools import count
def persistence(n):
for i in count(0):
if n > 9:
n = reduce(mul, map(int, str(n)), 1)
else:
return i
assert persistence(39) == 3
assert persistence(999) == 4
assert persistence(4) == 0
apihelper.proxy = {'https':'socks5://userproxy:password@proxy_address:port'}
apihelper.proxy = {'https':'socks5h://userproxy:password@proxy_address:port'}
wget -qO /dev/null http://192.168.1.105/control?cmd=GPIO,12,1
sleep 1
wget -qO /dev/null http://192.168.1.105/control?cmd=GPIO,12,0
oh-my-zsh
: git
, colored-man
, zsh-syntax-highlighting
typeset -A key
if [[ "$TERM" != emacs ]]; then
[[ -z "$terminfo[kcuu1]" ]] || bindkey -M viins "$terminfo[kcuu1]" up-line-or-search
[[ -z "$terminfo[kcud1]" ]] || bindkey -M viins "$terminfo[kcud1]" down-line-or-search
fi
function zle-line-init () { echoti smkx }
function zle-line-finish () { echoti rmkx }
zle -N zle-line-init
zle -N zle-line-finish
DOT=~/.dotfiles
alias -g g='| grep'
alias -g l='| less -r'
alias -g m='| more -r'
alias -g copy='| pbcopy'
alias rm='rm -i'
alias vimrc='vim ~/.vimrc'
alias ff='rm -rf'
alias reload='source ~/.zshrc'
alias please='sudo'
alias su='sudo su -'
alias py='python3 '
alias ls='ls -G'
alias la='ls -A'
alias ll='la -l'
alias al="ls -ap | grep '^\.' | grep -v './$'"
alias a='ls -d .*'
alias jsc='/System/Library/Frameworks/JavaScriptCore.framework/Versions/Current/Resources/jsc'
alias gh="cat $DOT/oh-my-zsh/plugins/git/git.plugin.zsh | grep -i '^alias' | grep -i "
alias gw="cat $DOT/.git_wizardry | grep -i "
alias pl="mkdir playground/; cd playground/"
~/.zshrc
bindkey '^[[A' up-line-or-search # up arrow for back-history-search
bindkey '^[[B' down-line-or-search # down arrow for fwd-history-search
bindkey ';5D' backward-word # ctrl+left
bindkey ';5C' forward-word # ctrl+right
bindkey '\e[1~' beginning-of-line # home
bindkey '\e[2~' overwrite-mode # insert
bindkey '\e[3~' delete-char # del
bindkey '\e[4~' end-of-line # end
bindkey '\e[5~' up-line-or-history # page-up
bindkey '\e[6~' down-line-or-history # page-down
zstyle ':completion:*' insert-tab false # Автокомплит для первого символа
HISTFILE=~/.zhistory
## Число команд, сохраняемых в HISTFILE
SAVEHIST=5000
## Чucлo команд, coxpaняeмыx в сеансе
HISTSIZE=5000
DIRSTACKSIZE=20
# Опции истории команд
#Добавляет в историю время выполнения команды.
setopt extended_history
alias history='fc -il 1'
#История становится общей между всеми сессиями / терминалами.
setopt share_history
# Дополнение файла истрии
setopt APPEND_HISTORY
#Добавить команду в историю не после выполнения а перед
setopt INC_APPEND_HISTORY
# Игнopupoвaть вce пoвтopeнuя команд
setopt HIST_IGNORE_ALL_DUPS
# Удалять из файл истории пустые строки
setopt HIST_REDUCE_BLANKS
# команды «history» и «fc» в историю заноситься не будут
setopt HIST_NO_STORE
# если набрали путь к директории без комманды CD, то перейти
setopt AUTO_CD
#Сообщать при изменении статуса фонового задания
setopt NOTIFY
#Перемещение стрелочками по выбору
#setopt menucomplete
#zstyle ':completion:*' menu select=1 _complete _ignored _approximate
#Вести себя как в BASH
setopt AUTO_MENU BASH_AUTO_LIST
# исправлять неверно набранные комманды
setopt CORRECT_ALL
# вопрос на автокоррекцию
SPROMPT='zsh: Заменить '\''%R'\'' на '\''%r'\'' ? [Yes/No/Abort/Edit] '
# загружаем список цветов
autoload colors && colors
#Можно вводить комментарии начинающиеся с #.
setopt interactive_comments
autoload -U compinit promptinit
compinit
promptinit;
#Дополняем спрятанные .файлы:
_comp_options+=(globdots)
# экранируем спецсимволы в url, например &, ?, ~ и так далее
autoload -U url-quote-magic
zle -N self-insert url-quote-magic
# Включение поддержки выражений вроде «{1-3}» или «{a-d}» — они будут разворачиваться
# в «1 2 3» и «a b c d» соответственно
setopt BRACECCL
# куда же мы без калькулятора
autoload -U zcalc
if [[ $EUID == 0 ]]
then
#Закорючки %2` означают две директории в пути.
PROMPT=$'%{\e[1;31m%}%n %{\e[1;34m%}%2~%{\e[1;31m%} %#%{\e[0m%} '
else
#PROMPT=$'%{\e[1;32m%}%n %{\e[1;34m%}%~ %#%{\e[0m%} ' # root dir #
PROMPT=$'%{\e[1;31m%}%n %{\e[1;34m%}%2~%{\e[1;31m%} %#%{\e[0m%} '
fi
RPROMPT=$'%{\e[1;30m%}%T% %{\e[1;36m%} %M%{\e[0m%}' # right prompt with time
alias ls='ls --color=auto'
alias grep='grep --colour=auto'
alias df='df -k --print-type --human-readable'
alias du='du -k --total --human-readable'
alias -g HE='2>>( sed -ue "s/.*/$fg_bold[red]&$reset_color/" 1>&2 )' # Highlight Errors
# разукрашиваем команды с помощью grc
if [ -f /usr/bin/grc ]; then
alias ping='grc --colour=auto ping'
alias traceroute='grc --colour=auto traceroute'
alias make='grc --colour=auto make'
alias diff='grc --colour=auto diff»'
alias cvs='grc --colour=auto cvs'
alias netstat='grc --colour=auto netstat'
# разукрашиваем логи с помощью grc
alias logc="grc cat"
alias tail='grc --colour=auto tail -n 200 -f'
alias logh="grc head"
fi
# После перехода в директорию вызываем ls.
function lcd() {cd "$1" && ls}
##подключаем всякую фигню
#Красивый вывод mysql
export MYSQL_PS1="mysql: \d|> "
# Необходимо добавить в конфиг Mysql
# [mysql]
# pager = grcat ~/.grcat
#Раскраска строки ввода
source ~/.zsh/zsh-syntax-highlighting.zsh
bot.send_message(message.chat.id, answer, parse_mode='Markdown', disable_web_page_preview=True)
body {
font-family: 'PT Sans Caption', sans-serif;
font-size: 11px;
line-height: 120%;
font-weight: normal;
text-decoration: underline;
letter-spacing: 0px;
font-style:normal;
}
from random import randint, choice
def neighbours(cells):
return {(i, j) for y, x in cells
for i in range(y - 1, y + 2) for j in range(x - 1, x + 2)}
N = 10 # а вот менять не надо
abc, digits = 'abcdefghij', '0123456789'
field, sea_map = {}, [[' '] * N for _ in range(N)]
for size in 4, 3, 3, 2, 2, 2, 1, 1, 1, 1:
while True:
ship = [(randint(0, N - 1), randint(0, N - 1))]
for _ in range(1, size):
ship.append(choice([(i, j) for y, x in ship for i, j in (
(y - 1, x), (y, x - 1), (y, x + 1), (y + 1, x)
) if 0 <= i < N > j >= 0 and (i, j) not in ship]))
if not neighbours(ship) & field.keys():
break
field.update(dict.fromkeys(ship, ship))
fleet = set(field)
for step in range(1, 51): # ограничимся 50ю ходами
print(' 0 1 2 3 4 5 6 7 8 9 \n ┌─┴─┴─┴─┴─┴─┴─┴─┴─┴─┴─┐')
for ch, row in zip(abc, sea_map):
print(ch, '┤', *row, '├', ch)
print(' └─┬─┬─┬─┬─┬─┬─┬─┬─┬─┬─┘\n 0 1 2 3 4 5 6 7 8 9')
s = input(f'{step:>2} Ваш ход: ')
try:
y, x = abc.index(s[0]), digits.index(s[1])
ship, row = field.get((y, x), ), sea_map[y]
if ship:
del field[y, x]
row[x] = '*'
print(s, 'Попал\n' if ship & field.keys() else 'Убил\n')
if not field:
print('Победа!')
break
else:
if row[x] == ' ':
row[x] = str(len(fleet & neighbours([(y, x)])))
print(s, 'Мимо\n')
except:
print('Ожидался ход в формате \'a0\', но что-то пошло не так...\n')
else:
print(f'В этот раз не вышло, в строю осталось {len(field)} палуб '
f'на {len({id(ship) for ship in field.values()})} кораблях.')
В общем, мне нужен способ отправить мне уведомление, если боты не авторизовались в ВК до 7 утра.Я думаю выглядеть это будет примерно так: