Печать
Просмотров: 168

Сделать файл python, который можно подключать как библиотеку:

if __name__ == "__main__":
    my_main_function()


Сделать плоский список из 'ветвистого':

def flat_list(iterable):
    out = []
    for el in iterable:
        if type(el) == list:
            out.extend(flat_list(el))
        else:
            out.append(el)
    return out

li = [1, 2, [3, 4, [5, 6] ], 7, 8, [9, [10] ] ]
print(flat_list(li))


Преобразование числа в словесное описание:

def number_to_words(n):
    f = {1: 'один', 2: 'два', 3: 'три', 4: 'четыре', 5: 'пять',
         6: 'шесть', 7: 'семь', 8: 'восемь', 9: 'девять'}
    o = {10: 'десять', 20: 'двадцать', 30: 'тридцать', 40: 'сорок',
         50: 'пятьдесят', 60: 'шестьдесят', 70: 'семьдесят',
         80: 'восемьдесят', 90: 'девяносто'}
    s = {11: 'одиннадцать', 12: 'двенадцать', 13: 'тринадцать',
         14: 'четырнадцать', 15: 'пятнадцать', 16: 'шестнадцать',
         17: 'семнадцать', 18: 'восемнадцать', 19: 'девятнадцать'}
    n1 = n % 10
    n2 = n - n1
    if n < 10:
        return f.get(n)
    elif 10 < n < 20:
        return s.get(n)
    elif n >= 10 and n in o:
        return o.get(n)
    else:
        return o.get(n2) + ' ' + f.get(n1)


print(number_to_words(31))


a1 = ('', 'один', 'два', 'три', 'четыре', 'пять', 'шесть', 'семь', 'восемь',
      'девять', 'десять', 'одиннадцать', 'двенадцать', 'тринадцать',
      'четырнадцать', 'пятнадцать', 'шестнадцать', 'семнадцать',
      'восемнадцать', 'девятнадцать')
a2 = ('', 'десять', 'двадцать', 'тридцать', 'сорок', 'пятьдесят',
      'шестьдесят', 'семьдесят', 'восемьдесят', 'девяносто')
n = int(input())
if n == 0:
    print('ноль')
elif n > 0 and n < 20:
    print(a1[n])
else:
    print(a2[n // 10], a1[n % 10])


Правильное окончание года/лет:

n = input()
s = 'лет'
if 10 < int(n[-2:]) < 20:
    pass
else:
    if n[-1:] == '1':
        s = 'год'
    else:
        if 1 < int(n[-1:]) < 5:
            s = 'года'
print(n + ' ' + s)


def Age(n):
    r = ''
    if n // 10 % 10 != 1:
        if n % 10 == 1:
            r = 'год'
        elif n % 10 == 2 or n % 10 == 3 or n % 10 == 4:
            r = 'года'

    if r == '':
        r = 'лет'
    print(n, r)

Age(11)


Строчки разбить по точкам и звёздочкам:

def str_to_list_points(s):
    li = []
    a = 0
    for b in range(len(s)):
        if s[b] == '.':
            if a != b:
                li.append(s[a:b])
            li.append('.')
            a = b + 1
    if a < b + 1:
        li.append(s[a:b + 1])
    return li    

def list_split_inside(li):
    i = 0
    while i < len(li):
        if li[i] != '*' and '*' in li[i]:
            t = [x for x in li[i].split('*') if len(x) > 0]
            li[i] = t[0]
            for k in range(1, len(t)):
                li.insert(i + k, t[k])
            i += 1
        i += 1    

s = '.adito.*lema*ret.*'
li1 = s.split('*')
print(li1)
li2 = str_to_list_points(s)
print(li2)
list_split_inside(li2)
print(li2)