Schlange
Как запретить округление до 3.1416, и почему по умолчанию округляет?
Оно округляет во всех языках, потому что 3.14159 ближе к 3.1416, чем к 3.1415. Спецификатор f старается приблизить число к его реальному значению, а не просто отбросить цифры.
Если надо точно, можно просто убрать девятку.
>>> int(math.pi * 10000) / 10000
3.1415
>>>
Но обычно это всё не надо, потому что даже неокруглённое число хранится неточно, из-за того что хранение числа определяется ограниченным количеством бит в памяти. Поэтому на дробные числа не очень полагаются, когда нужна высокая точность (деньги, например, в реальных программах переводят в целые числа и всё считают на них, чтобы неточность вычислений не повлияла на результат).
Schlange
Сейчас я решил добить 7ю главу Лутца
Лутц только про питон рассказывает, а чтобы делать программу, нужно ещё и в программировании ориентироваться. То есть после Лутца ты будешь знать только питон, но, зная питон, программу на нём не напишешь, так как программу сначала нужно придумать и построить её конкретный алгоритм, независимый от языка, а это делается с помощью теории программирования. Там, вообще, много всякой теории, которая общая для всех языков программирования, поэтому существует псевдокод, на котором можно записать реализацию алгоритма, а потом уже его можно переводить на любой реальный язык программирования.
Вот пример псевдокода:
подчключиться к серверу
прочитать записи
для каждой записи
выбрать слова из записи
отключиться от сервера
Питон для этого знать не надо, но программу всё равно не составишь.
Сначала составляешь словесное описание алгоритма.
Потом по словесному описанию составляешь блок-схему.
Потом по блок-схеме пишешь псевдокод.
Потом по псевдокоду пишешь реальный код.
На каждом этапе устраняешь ошибки и неточности, оптимизируешь, выбрасываешь лишнее и даже переделываешь что-то. Сначала всё делаешь на бумаге (в компе), потом со временем всё это делаешь в воображении и сразу код записываешь, беря его из воображения. Если на бумаге не делаешь, то и в голове не умеешь делать, а в голове не умеешь делать - код не умеешь сразу записывать. Короче, если не будешь учиться, то будет получаться быдлокод и говнокод - это похожие понятия, но разные. Быдлокод - это код с нарушением общепринятых правил, которое происходит из-за незнания этих правил. А говнокод - это код с нарушением общепринятых правил, которое происходит при знании этих правил, но их непринятии. Быдлокод можно увидеть у новичков, как правило, а говнокод у любых уровней (это от личности человека зависит). Так что учись и делай всё, как принято.
Отредактировано py.user.next (Янв. 7, 2017 03:58:20)