Курсы по программированию

Формула программиста

основатель — Волосатов Евгений Витольдович
Поздравляю с 1 сентября! Система начисления Байтов работает.

 13417

-- Chip

Python3: математика / Любое число прописью - всё строится на цикле

  • На этом уроке мы доделаем функцию check(), чтобы она превращала любое число
    в список значений каждого его элемента прописью
  • Дата отправки отчёта: 9 февраля 2019 г.
  • Задание выполнено: за 1 час. 18 мин.
  • Чему научился: Повторил работу со списками, циклом for, оператором возведения в степень ** и целочисленным делением //. Научился находить длину списка с помощью функции len.
  • Оценка видео-уроку:
Отчёт от 13417 за Python3: математика / Любое число прописью - всё строится на цикле


Отчёт от 13417 за Python3: математика / Любое число прописью - всё строится на цикле




Оцени работу

 
Сохранить страницу:

791. --
Валерий Жданов
Валерий Жданов
ответить
→  Chip  # Python3: математика / Любое число прописью - всё строится на цикле / 2019-02-09 14:30

Молодец, хорошо все сделал


19475. --
Konstantin
Konstantin
ответить
→  Chip  # Python3: математика / Любое число прописью - всё строится на цикле / 2019-03-19 22:54

Как ты это сделал? (МОЗГ прямо взрывается, всего 30% осталось завершить, жалко бросать...)
Я с твоей работой сверял. Я даже, исправил все, как у тебя. Но у меня не работает =(((
Что я не увидел - подскажи пожалуйста.

def check(number):
    #if a < 100 or a > 999:
    #    return ["Это не трехзначное число"]
    #else:
    list_number=[]
    list_name=["","тыс.","млн.","млрд."]
    for i in range(len(list_name),-1,-1):
        if number//(1000**i)>0 and number//(1000**i)<1000:
            list_number.extend(get_str_num(calc(number//(1000**i)>0)))
            list_number.append(list_name[i])
            number=number%(1000**i)
    return list_number

#get_str_num(calc(a)) - with last return

def get_hundred(nm):
    dict={1:"сто",2:"двести",3:"триста",4:"четыреста",5:"пятьсот",6:"шестьсот",7:"семьсот",8:"восемьсот",9:"девятьсот",}
    return dict[nm]

def get_str_num(list):
    hundreds={0:"",1:"сто", 2:"двести", 3:"триста", 4:"четыресто", 5:"пятьсот", 6:"шестьсот", 7:"семьсот", 8:"восемьсот", 9:"девятьсот"}
    tens={0:"",2:"двадцать", 3:"тридцать", 4:"сорок", 5:"пятьдесят", 6:"шестьдесят", 7:"семьдесят", 8:"восемьдесят", 9:"девяносто"}
    ten={0:"десять", 1:"одиннадцать", 2:"двеннадцать", 3:"тринадцать", 4:"четырнадцать", 5:"пятнадцать", 6:"шестнадцать", 7:"семнадцать", 8:"весемьдадцать", 9:"девятнадцать"}
    units={0:"", 1:"один", 2:"два", 3:"три", 4:"четыре", 5:"пять", 6:"шесть", 7:"семь", 8:"восемь", 9:"девять"}
    if list[1]>=2:
        str_list=[hundreds[list[0]],tens[list[1]],units[list[2]]]
    elif list[1]==1:
        str_list=[hundreds[list[0]],"",ten[list[2]]]
    elif list[1]==0:
        str_list=[hundreds[list[0]],"",units[list[2]]]
    return str_list

def calc(number):
    d3= number%10;            # - еденицы
    d2= number//10%10;      # - десятки
    d1= number//100%10;          # - сотни
    result = [d1,d2,d3]
    return result

about=("The Python's bite","1.0.0","Konstantin")
print("Программа: ",about[0],"\nВерсия: ", about[1],"\nАвтор: ",about[2])

while True:
    result_calc=[]
    try:
        number = int(input('введи число:'))
        result_calc.extend(check(number))
        #print("/nЧисло прописью:", get_str_num(calc(a)))
    except KeyboardInterrupt:
        break
    except ValueError:
        result_calc.append("Это не число, необходимо ввсети число!")
    except Exception as exError:
        result_calc.append("Ошибка выполнения программы: "+str(exError))
    finally:
        print(result_calc) #(временно закомментровано 11 урок)
        #print()


13417. --
Chip
Chip
ответить
→  Konstantin  # Python3: математика / Любое число прописью - всё строится на цикле / 2019-03-19 23:33

Константин, я в этих уроках просто копировал код Валерия, ничего своего не добавлял. Думаю в твоем коде ошибка в функции check. Исправь свою строку на эту list_number.extend(get_str_num(calc(number//(1000**i))))


19475. --
Konstantin
Konstantin
ответить
→  Chip  # Python3: математика / Любое число прописью - всё строится на цикле / 2019-03-20 10:15

Спасибо тебе! А я уже начал "подгарать" - столько моментов не ладится + сейчас по два часа уходит на Английский (много пустых переговоров ). Внимание вообще разбросано по разным закаулкам души =) И развеяться некогда.


  • Отчёт оценивали:
    17947Dmitry Sinitsin+1   20167Айдар+1   10365Rita+1   2146Иван+1   20239Юлия+1   791Валерий Жданов+1   20528Геннадий Кравцов+1   20061Даниил Лаутеншлегер+1   20952Марина+1   20659no name+1   Посетитель+1   3922Александр+1   11353AlliZzeN+1   19475Konstantin+1  

Начинаем практику по языку C#





Если вы пришли без приглашения -
введите тысяча двадцать четыре (цифрами).
Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.


Научился: Писать любое число прописью. Мешались пустые кавычки, поэтому удалил пустые элементы списка и привёл к строке. Выглядеть стало получше )



Научился: Применять алгоритм обработки чисел с учётом разрядов, использовать встроенную функцию len() для вывода длинны списка. Применять .extend() и .append() для добавления значений в список.
Трудности: В основном сложностей не возникло. Нужно будет ещё подумать над принципом работы алгоритма ( новая функция check). Не до конца понятно, почему в одном случае используем .extend(), а в другом .append.