- 1
- 2
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
Нашли или выдавили из себя код, который нельзя назвать нормальным, на который без улыбки не взглянешь? Не торопитесь его удалять или рефакторить, — запостите его на говнокод.ру, посмеёмся вместе!
0
def IsZIPFile(filename):
return filename.lower().endswith('.zip')
ибааааать!
0
XRU = "XRU"
PITUH = "PITUH",
KUROCHKA = "KUROCHKA"
PETUH = PITUH.replace('I', 'E')
Traceback (most recent call last):
File "./prog.py", line 4, in <module>
AttributeError: 'tuple' object has no attribute 'replace'
0
import math
import argparse
parser = argparse.ArgumentParser()
parser.add_argument("--type")
parser.add_argument("--principal", type=int)
parser.add_argument("--periods", type=int)
parser.add_argument("--interest", type=float)
parser.add_argument("--payment", type=float)
args = parser.parse_args()
choose = args.type
p = args.principal
n = args.periods
i = args.interest
a = args.payment
if i is None or p is None and a is None:
print("Incorrect parameters.")
exit(0)
i = (i * 0.01) / (12 * 1)
if choose == "diff":
m = 1
overpayment_all = 0
while m <= n:
d = math.ceil(p / n + i * (p - ((p * (m - 1)) / n)))
m += 1
overpayment_all += d
print(f"Month {m - 1}: payment is {d}")
print()
print(f"Overpayment = {overpayment_all - p}")
elif choose == "annuity" and a is None:
a = math.ceil(p * (i * math.pow((1 + i), n)) / (math.pow((1 + i), n) - 1))
print(f"Your monthly payment = {a}!")
over = a * n - p
print(f"Overpayment = {math.ceil(over)}")
elif choose == "annuity" and p is None:
p = int(a / (i * math.pow(1 + i, n) / (math.pow(1 + i, n) - 1)))
print(f"Your loan principal = {p}!")
m = 1
over = a * n - p
print(f"Overpayment = {math.ceil(over)}")
elif choose == "annuity":
n = math.ceil(math.log(a / (a - i * p), 1 + i))
zxc = math.ceil(math.log(a / (a - i * p), 1 + i))
years = 0
while n >= 12:
n -= 12
years += 1
if years == 0:
print(f"It will take {n} months to repay this loan!")
over = a * zxc - p
print(f"Overpayment = {math.ceil(over)}")
elif n == 0:
print(f"It will take {years} years to repay this loan!")
over = a * zxc - p
print(f"Overpayment = {math.ceil(over)}")
else:
print(f"It will take {years} years and {n} months to repay this loan!")
over = a * zxc - p
print(f"Overpayment = {math.ceil(over)}")
Ебучий универ и ебучее задание на питоне. Всё было бы збс, если бы не математика.
Прога считает проценты, бабки, переплаты и чёт ещё, наверное
−1
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
import time
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--incognito')
driver = webdriver.Chrome(chrome_options=chrome_options)
#Login.
driver.get("https://m.vk.com")
email = 'не скажу!'
password = '123'
email_field = driver.find_element_by_name("email")
email_field.send_keys(email)
password_field = driver.find_element_by_name("pass")
password_field.send_keys(password, Keys.RETURN)
#Scrolling audios.
driver.get("https://m.vk.com/audio76306432")
songs_amount = 6200
batch_amount = 20
currently_loaded = 0
while currently_loaded < songs_amount:
driver.execute_script('window.scrollTo(0,document.body.scrollHeight)')
try:
WebDriverWait(driver, 0).until(EC.presence_of_element_located((By.CSS_SELECTOR, "a[class='show_more']")))
print('Click')
except:
print('More button not located!')
print(f"{currently_loaded} / {songs_amount}")
try:
scroll_defence_element = driver.find_element_by_css_selector("a[class='show_more AudioSection__showMore--my']")
scroll_defence_element.click()
print('Click!!!')
except:
print("No button to click")
currently_loaded += batch_amount
#todo: save the page
#time.sleep(10)
#driver.quit()
Я уже давно хотел себе скачать аудио из вк, хотя бы их список, мало ли что... В общем, оказалось, что апи для музыки закрыли в 2016, и я немного опоздал )))
И я решил написать на питоне штуку, чтобы она мне за ночь прокрутила весь список песен, а я бы потом распарсил страничку и достал названия. кто найдёт пасхалку -- тот молодец!
0
import datetime, random, time, os, vk_api
import sqlite3 as sl
from vk_api.exceptions import Captcha
from vk_api.longpoll import VkEventType, VkLongPoll
from functions import *
from settings import *
vk_session = vk_api.VkApi(token=token, api_version=5.126)
longpoll = VkLongPoll(vk_session)
vk = vk_session.get_api()
now = datetime.datetime.now()
for event in longpoll.listen():
try:
def send_msg(msg='', chat=False, prefix=True, attach=''):
if chat:
vk.messages.send(chat_id=event.chat_id,message=msg,attachment=attach)
else:
vk.messages.send(user_id=event.user_id,message=msg,attachment=attach)
except Captcha:
time.sleep(1)
send_msg('Ошибка. Слишком частые запросы.')
except Exception as e:
time.sleep(1)
send_msg(f'Неизвестная ошибка при отправке сообщения.\n{e}')
try:
if event.type == VkEventType.MESSAGE_NEW and event.to_me:
user_get = vk.users.get(user_ids=event.user_id)
first_name = user_get[0]['first_name']
last_name = user_get[0]['last_name']
if event.from_chat and event.chat_id and (event.message == '!meme' or event.message == '!мем'):
meme_create()
upload = vk_api.VkUpload(vk_session)
try:
a = upload.photo_messages(photos=os.path.dirname(__file__) + '/random_meme.jpg', peer_id=event.user_id)
send_msg(attach=f'photo{a[0]["owner_id"]}_{a[0]["id"]}',chat=True, prefix=False)
except:
send_msg("Ошибка. Попробуйте снова.")
elif event.from_chat and event.chat_id and (event.message == '!info' or event.message == '!инфо'):
response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
soup = BeautifulSoup(response.text, 'lxml')
created = soup.find('ya:created').get('dc:date')
created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
diff = datetime.datetime.now()-created1
modified = soup.find('ya:modified').get('dc:date')
modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''', chat=True)
elif event.from_user and event.user_id and (event.message == '!info' or event.message == '!инфо'):
response = requests.get(f'https://vk.com/foaf.php?id={event.user_id}')
soup = BeautifulSoup(response.text, 'lxml')
created = soup.find('ya:created').get('dc:date')
created1 = datetime.datetime.strptime(created, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
diff = datetime.datetime.now()-created1
modified = soup.find('ya:modified').get('dc:date')
modified1 = datetime.datetime.strptime(modified, '%Y-%m-%dT%H:%M:%S%z').replace(tzinfo=None)
send_msg(f'''https://vk.com/id{event.user_id}\nИмя пользователя: {first_name} {last_name}\nАккаунт существует {diff.days} дней.\nДата регистрации: {created1.month} {months[created1.month-1]} {created1.year} в {created1.time()}\nПоследнее обновление информации: {modified1.month} {months[modified1.month-1]} {modified1.year} в {modified1.time()}''')
elif event.from_user and event.user_id and event.message == '!coin':
coin = 'Орёл' if random.randint(0, 1) == 1 else 'Решка'
send_msg(f'{coin}')
elif event.from_user and event.user_id and (event.message == '!anek' or event.message == '!анек'):
send_msg(f'{get_anek()}', prefix=False)
elif event.from_user and event.user_id:
con = sl.connect(os.path.dirname(__file__) + '/users.db')
count = 0
with con:
con.execute("""
CREATE TABLE IF NOT EXISTS USER (
user_id INTEGER NOT NULL PRIMARY KEY,
name TEXT,
permission_lvl INTEGER
);
""")
with con:
data = con.execute("SELECT * FROM USER")
for row in data:
if event.user_id in row:
count += 1
if count == 0:
send_msg(f'''Привет, это сообщение отправлено автоматически.\nПока я добавляю информацию о тебе в базу данных, ты можешь ознакомиться с командами написав !help\nКоманд не так много, но в будущем их станет больше ;)''')
sql = 'INSERT INTO USER (user_id, name, permission_lvl) values(?, ?, ?)'
data = [(event.user_id, f'{first_name} {last_name}', 1)]
with con:
con.executemany(sql, data)
if event.attachments:
print(
f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.message}\nattach: {event.attachments}\n")
else:
print(
f"{now}\nuser_id: {event.user_id} | {first_name} {last_name}\nmessage: {event.text}\n")
except Captcha:
time.sleep(1)
send_msg('Ошибка. Слишком частые запросы.')
except Exception as e:
time.sleep(1)
send_msg(f'Упс. Произошла неизвестная ошибка.\n{e}')
Каким образом можно улучшить этот ссаный говнокод?
0
def filter_goods(items, date_registered_from=0, date_registered_to=99999999999, from_finished_entries=0, to_finished_entries=99999, views_from=0, views_to=999999, activeGoodsFrom=0, activeGoodsTo=999999, delete_no_delivery=False, delete_comapnies=False, delete_duplicates=False, published_later_then=0):
ids = []
q = Queue()
for i in items:
if i[0]['date_created'] >= published_later_then:
if i[1]['date_registered'] >= date_registered_from:
if i[1]['date_registered'] <= date_registered_to:
if i[1]['prods_sold_cnt'] >= from_finished_entries:
if i[1]['prods_sold_cnt'] <= to_finished_entries:
if i[0]['views'] >= views_from:
if i[0]['views'] <= views_to:
if i[1]['prods_active_cnt'] >= activeGoodsFrom:
if i[1]['prods_active_cnt'] <= activeGoodsTo:
if delete_no_delivery:
if i[0]['delivery_enabled'] or delete_no_delivery == False:
if not (delete_comapnies and i[1]['type'] == 'person'):
if delete_comapnies == False:
if delete_duplicates:
if i[0]['owner']['id'] not in ids:
ids.append(i[0]['owner']['id'])
q.put(i[0]['id'])
else:
q.put(i[0]['id'])
return q
Стояла задача написать самый длинный if? Человек не знает про and? Этого мы никогда не узнаем.
0
import fnmatch,os,datetime,time,re,shutil,sys
def find(pattern, startdir=os.curdir):
for (thisDir, subsHere, filesHere) in os.walk(startdir): #
for name in subsHere + filesHere:
if fnmatch.fnmatch(name,pattern):
fullpath = os.path.join(thisDir,name)
yield fullpath
def timeconvert(x):
convert = time.strftime("%Y-%m-%d",time.localtime(os.path.getctime(x)))
return convert
print("select action: delete: delete files: copy: copy files: view: view files")
action = input(" ")
if action == "copy":
print("inter path")
dest = input(" ")
else:
print ("inter date")
cursive = input("")
optime = re.search('20[0-12]\d{1,2}.\d{1,2}',cursive)
if optime == None:
print ('error')
else:
if __name__== '__main__':
import sys
namepattern,startdir, = sys.argv[1],sys.argv[2]
for name in find(namepattern,startdir):
if not str(cursive) <= timeconvert(name):
if action == 'copy':
shutil.copy(name, dest)
elif action == 'delete':
os.remove(name)
elif action == "view":
print(name + timeconvert(name))
else:
print ('error')
Я по сусекам метён,
По коробам скребён,
На сыром масле мешен,
На окошке стужен;
Я от дедушки ушёл,
Я от бабушки ушёл,
И от тебя убегу.
+1
board = [" ", " ", " "], \
[" ", " ", " "], \
[" ", " ", " "]
i = 1
win = True
place_chek = True
def show():
print("---------")
print("|" + board[0][0] + " " + board[0][1] + " " + board[0][2] + "|")
print("|" + board[1][0] + " " + board[1][1] + " " + board[1][2] + "|")
print("|" + board[2][0] + " " + board[2][1] + " " + board[2][2] + "|")
print("---------")
def move(i):
if i % 2 == 0:
return "X"
else:
return "0"
def choise(x, y):
board[x][y] = move(i)
def repeat(x, y):
global i
global place_chek
if board[x][y] == "0":
print()
print("Choose another location")
print()
place_chek = False
elif board[x][y] == "X":
print()
print("Choose another location")
print()
place_chek = False
elif board[x][y] == " ":
i = i + 1
place_chek = True
def win_check():
global win
if board[0][0] == board[0][1] == board[0][2] == "X" or \
board[1][0] == board[1][1] == board[1][2] == "X" or \
board[2][0] == board[2][1] == board[2][2] == "X" or \
board[0][0] == board[1][0] == board[2][0] == "X" or \
board[0][1] == board[1][1] == board[2][1] == "X" or \
board[0][2] == board[1][2] == board[2][2] == "X" or \
board[0][0] == board[1][1] == board[2][2] == "X" or \
board[0][2] == board[1][1] == board[2][0] == "X":
print("X won")
win = False
elif board[0][0] == board[0][1] == board[0][2] == "0" or \
board[1][0] == board[1][1] == board[1][2] == "0" or \
board[2][0] == board[2][1] == board[2][2] == "0" or \
board[0][0] == board[1][0] == board[2][0] == "0" or \
board[0][1] == board[1][1] == board[2][1] == "0" or \
board[0][2] == board[1][2] == board[2][2] == "0" or \
board[0][0] == board[1][1] == board[2][2] == "0" or \
board[0][2] == board[1][1] == board[2][0] == "0":
print("0 won")
win = False
show() # first time show
while win:
x, y = input("Enter the coordinates: ").split()
repeat(int(x) - 1, int(y) - 1)
if place_chek:
choise(int(x) - 1, int(y) - 1)
show()
win_check()
Крестики нолики на питоне. Самый большой позор это способ определение победы, не смог ничего придумать и сделал такой позор
+3
class Metapetuh(type):
def __subclasscheck__(cls, C):
return True
def __instancecheck__(self, other):
return True
class Petuh(metaclass=Metapetuh):
pass
issubclass(object, Petuh) # True
isinstance(42, Petuh) # True
Мы зашкварили весь «Питон», и теперь все классы в нём — петухи.
По просьбам трудящихся: https://govnokod.ru/27166#comment602776.
+1
from playsound import *
import tkinter
from tkinter import *
import tkinter as tk
from tkinter import ttk
import getpass
import sys
import os
import os.path
import pyautogui
from time import sleep
https://habr.com/post/532684/
> Написание WinLocker'а на Python
> И всем привет братва, с вами я, Геймер Дисклеймер. Как вы думаете, чем я занимался 2 дня подряд? Нет, я не в доту рубился (и вам не советую, раз уж вы себя программистами называете). Я подготавливал материал для Хабра. А точнее, создавал винлокер. И нет, я его не скоммуниздил украл у кого-то, а сам создавал его с нуля. И сегодня я научу вас его создавать. И да, если вы дисклеймер так и не прочитали, то ни в коем случае не используйте этот код во вред другим! Ну ладно, без лишних слов, погнали!