Забавный способ распаковки |
Дневник |
Оказывается, в пайтон есть способ беспонтовой распаковки сложных, но закономерных итерабельных объектов.
l = [(1, 2, 3), (4, 5, 6), (7, 8, 9), (4, 0, 1)]
for (a, b ,c) in l:
print(f"{a}, {b}, {c}")
1, 2, 3
4, 5, 6
7, 8, 9
4, 0, 1
|
module 'collections' has no attribute 'MutableMapping' |
Дневник |
Кстате, третья джанга не работает с питоном 3.10. Сегодня пробовал установить, получил AttributeError: module 'collections' has no attribute 'MutableMapping'.
Выход: или юзать питон 3.9 + джанга 3.2 или 3.10 + 4.0.
Метки: Django Python AttributeError |
Программа |
Дневник |
Вот такое понаписал. Добавить нечего, кроме Qt-морды. Но это потом, когда комп будет.
#-*-coding:utf8;-*-
# ver. 2.31
# Программа рассчитывает скорость или время свободного падения из пользовательского ввода. Автоматически корректирует введенные данные. Например убирает лишние точки, заменяет запятые точками. Если ввод содержит некорректные символы (буквы и пунктуацию), выдаёт ошибку и предлагает повторить ввод.
# Как и все мои программы работает ТОЛЬКО в оффлайне, потому что содержит символы кириллицей.
import math
def finput ():
g = 9.8
a = input("Введите высоту падения в метрах \nили Enter, если хотите вычислить \nскорость по времени: \n> ")
a = zap2point(a)
if len(a) > 0:
h = number_test(a)
if h == "error":
finput ()
else:
h = float (h)
u = math.sqrt(2*g*h)
t = u / g
u2 = u * 3.6
print ("Конечная скорость падения: \n{} м/с \n{} км/ч \n{} м за {} сек.".format (fr(u), fr(u2), fr(h), fr(t)))
else:
a = input("Введите время падения в секундах: \n> ")
a = zap2point(a)
t = number_test(a)
if t == "error":
finput ()
else:
t = float (t)
u = g * t
h = (u * t) / 2
u2 = u * 3.6
print ("Конечная скорость падения: \n{} м/с \n{} км/ч \n{} м за {} сек.".format (fr(u), fr(u2), fr(h), fr(t)))
def number_test (a):
b = ""
# Если число точек в строке больше 1
# запоминаем индекс первой точки.
if a.count (".") > 1:
pindex = a.index(".")
else:
pindex = len (a) + 2
if len(a) == 0:
b = "error"
return b
else:
# Перебираем все символы строки
# Если символ число или точка, продолжаем
# Если символ точка и его индекс больше
# индекса первой точки, пропускаем его
# Если символ не число и не точка -
# обрываем цикл
for char in a:
if char in ("1234567890."):
if char == "." and len (b) > pindex:
continue
b += char
else:
print ("***********************\nОшибка! Введите целое или \nвещественное число, \nнапример 34 или 45.6\n***********************")
b = "error"
break
if b == ".":
print ("***********************\nОшибка! Введите целое или \nвещественное число, \nнапример 34 или 45.6\n***********************")
b = "error"
return b
# Так как питон иногда отображает
# натуральные числа некрасиво, например
# 3.2999999999 вместо 3.3, я написал
# функцию,которая более и менее корректно
# окугляет число перед выводом на экран.
def fr (x):
if x >= 10000:
x = int(math.modf(x)[1])
elif x >= 999:
x = "{:.5}".format(x)
elif x <= 0.0001:
x = "{:.10}".format(x)
elif x >= 99.9:
x = "{:.4}".format(x)
else:
x = "{:.3}".format(x)
return x
# Так как часто при вводе числа хочется
# вместо точки поставить запятую, эта
# функция заменяет все запятые точками
# и удаляет пробелы
# чтобы избежать ошибок при вычислении
def zap2point (h):
y = ""
for char in h:
if char == ",":
char = "."
elif char == " ":
continue
y += char
return y
# собственно, запускаем программу
finput()
|
Без заголовка |
Дневник |
Я тут решил встряхнуть стариной и занялся питоноводством. Вроде бы никогда серьезно прямо не занимался программированием. Но вроде и база есть. HTML, CSS, чуток JavaScript, а ещё в училище Basic 2.0, а ещё азы Pascal, PHP и конечно же почти 10 лет bash на уровне юзера.
Написал даже одну консольную программу. Не ахти полезную, но умную. Точнее программ несколько, но одну самую мудрую. Считает скорость и время свободного падения тела, если задана высота, или высоту и скорость, если задано время падения. Умеет анализировать пользовательский ввод, удалять лишние точки, если юзерь поставил их по запаре или от нефиг делать. Умеет удалять пробелы и заменять запятые точками.
Правда с графическим интерфейсом пока что не работал. И программить могу только на телефоне. Компа нет. Всё равно забавно.
Метки: Питон программирование |
Мой скрипт для подсчёта контрольных сумм md5 (v0.20) |
Дневник |
#!/bin/bash # Скрипт для посчёта контрольных сумм 0.20 (Воскресенье, 21 Март 2010) # © Линник Сергей wahnbild@yandex.ru # Лицензия GNU GPL v2 # http://www.gnu.org/licenses/gpl-2.0.txt if [ $# -eq 0 ] then echo "Не передано ни одного аргумента" >> md5sum.md5.error exit 0; fi if [ $# -eq 1 ] then if [ -d "$1" ] then md5sum "$1"/* >> "$1".md5 else md5sum "$1" >> "$1".md5 fi else until [ -z "$1" ] do if [ -d "$1" ] then md5sum "$1"/* >> md5sum.md5 else md5sum "$1" >> md5sum.md5 fi shift done fi exit 0;
|
Мой скрипт для жёстких ссылок версия 0.21 |
Дневник |
Метки: скрипты наутилус жёсткие ссылки scriptus-idiotus |
Жёсткие ссылки, продолжение |
Дневник |
Метки: скрипты наутилус nautilus жёсткие ссылки |
Страницы: | [1] |