четверг, 13 декабря 2012 г.

Преобразование типов в Python

В Python имеются такие типы данных:
  • Числа
  • Строки
  • Кортежи
  • Списки
  • Словари
  • Множества
    Для преобразования из числа в строку  используют функцию str(). 
>>> x=23
>>>x=str(x)
>>>print(x)
>>>23
    Если мы не использовали бы функцию str(), то при обьединении строки с числом, получили ошибку
>>>v=x+'hello'
>>>print(v)
>>>23hello
Не используя str():
>>> m=45
>>>a=m+'hello' TypeError: Can't convert 'int' object to str implicitly
Что означает невозможно число вставить в строку. 
    Кортежиэто упорядоченная, неизменяемая коллекция объектов произвольных типов, поддерживающая произвольное число уровней вложенности.Форма записи выглядит следующим образом:
>>>t=(23,'retro','mir')
     Для доступа к каждому обьекту кортежа используются [] в которых указывается номер обьекта в кортеже.
>>>t[1]
>>>retro
     Изменить обьект в кортеже не возможно! То есть кортеж это список констант, он быстрее чем обычные списки. Также в нем не возможно удалять обьекты. Таким образом кортеж идеально подходит для хранения данных, к ним легко добраться и в тоже время не возможно изменить либо удалить)
 Списки представляют из себя коллекцию элементов, которые можно удалять, изменять, создавать какую угодно вложенность, одни плюсы) Все элементы в списке упорядочены в отличии от словарей , доступ к элементам которой предоставляется не с помощью смещения, а с помощью ключа.
Здесь я лишь внесу некоторые дополнения и замечания по использованию словарей:
  • операции над последовательностями неприменимы к словарям т.к. словари — это не последовательность, а отображение.
  • Ключи не обязательно должны быть строками. В роли ключей могут выступать любые неизменяемые объекты. Т.е. если рассматривать встроенные типы данных, то — это числа, строки и кортежи. Ясно, что при использования чисел, словарь превращается в подобие списка, однако, остаётся при этом неупорядоченным. Используя в качестве ключа кортежи, появляется возможность использовать составные ключи. Экземпляры пользовательских классов так же могут выступать в качестве ключей при условии, что они реализуют определённые методы указывающие интерпретатору на то, что объект является неизменяемым.
  

понедельник, 3 декабря 2012 г.

Преобразование строк в Python

     Для преобразования числа в строку в  Python используем функцию str(), а для преобразования  строки в число функцию int() (рис.1).

 Рисунок 1 Преобразование данных
    С начало создадим строку '234' (рис 1) к ней добавим цифру 2, но добавления не происходит из-за разности типов данных, преобразовав '234' в цифры 234 теперь можно прибавить 2, по такому же принципу  происходит слияние двух строк (конкатенация).
Зная эти две функции можно решить задачку. Пользователь вводит число например 78,23, если сумма до запятой равна сумме чисел после запятой, программа выводит значение TRUE, а если не равны тогда  FALSE.

Рисунок 2 Решение задачи примитивным способом)
    Для решения задачи создадим переменную с числовым значением (например 23.32), затем переведем данные из цифрового в строковое представление и присвоив новое значение переменной st, далее зная что до точки два символа можно преобразовать первые два символа в числа и сложить использовав функцию  int(), также поступим и с символами после точки, а последним действие проверим являются ли равными две переменные в которых содержатся сумма цифр до точки и после точки. 
    На рисунке 3 показан рабочий программный код(Функция first)  которой нужно передать всего лишь цифровое значение и получить результат.

Рисунок 3 Функция first
Данная функция цифры перевод в строку, затем подсчитывает количество символов в строке с помощью функции len(), затем при помощи цикла for и функции range() сравнивает  каждый символ и если символ не является '.' он переводит символ в цифру и присваивает  значение переменной t, так происходит до тех пор пока в строке цикл не встретит точку,  после точки сумма чисел до точки присваивается новой переменной first=t, а сумма чисел после точки присваивается все той же переменной t но с начало присвоив ей значение 0 для обнуления переменной. Как только цикл дойдет до конца слова sd, сравниваются полученные переменные а результат сравнения выводится на экранах. В следующих статьях будет описано использования цикла for.