Если вы владеете Java и хотите быстро вникнуть в то, как пользоваться Python на начальных этапах, то данная статья – для вас. Здесь предоставлен краткий сравнительный обзор типов данных.
Сравнив типы данных Java и Python, вы поймете, в чем между ними разница и быстро начать пользоваться Python. Сравнение также может помочь разработчикам понять базовые понятия, которые присутствуют в различных языках программирования.
Очевидно, Java располагает большим количеством типов данных и структур, чем Python, так что я предоставлю только похожие друг на друга типы данных.
Строки
Java
1 2 3 4 5 |
String city = "New York"; String state = "California";//has to be " not ' String lines = "multi-line " + "string"; |
Python
1 2 3 4 5 6 7 8 9 10 |
# Строки city = "New York" state = 'California' # Мульти-строки lines = """multi-line string""" moreLines = '''multi-line string''' |
В Python, строка может быть как внутри одинарных, так и двойных кавычках. Кроме того, Python поддерживает умножение: «x» * 3 равняется «xxx».
Числа
Java
1 2 3 4 5 6 7 |
// Целые числа int num = 100; // Числа с плавающей запятой. float f = 1.01f; double d = 1.01; |
Python
1 2 3 4 5 6 7 8 9 10 |
# Целые числа num = 100 num = int("100") # числа с плавающей запятой f = 1.01 f = float("1.01") # null spcial = None |
В Java, когда вы вводите что-то на подобие 1.01, это число интерпретируется как double. Double – это 64-битная точность IEEE 754 с плавающей запятой, float – это 32-битная точность IEEE 754 с плавающей запятой. Так как float является менее точной, чем double, конверсия не может быть выполнена.
Есть вопросы по Python?
На нашем форуме вы можете задать любой вопрос и получить ответ от всего нашего сообщества!
Паблик VK
Одно из самых больших сообществ по Python в социальной сети ВК. Видео уроки и книги для вас!
Null
Java
1 2 |
// null Object special = null; |
Python
1 2 |
# null spcial = None |
Списки
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 |
// ArrayList очень похож на список в Python ArrayList aList = new ArrayList(); // добавить aList.add(1); aList.add(3); aList.add(2); aList.add(4); // индекс int n = aList.get(0); // получить подсписок List subList = aList.subList(0, 2); // 1, 3 |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 |
aList = [] aList = [1, 'mike', 'john'] # добавить aList.append(2) # расширить aList.extend(["new","list"]) print(aList) #[1, 'mike', 'john', 2, 'new', 'list'] aList = [0,1,2,3,4,5,6] # размер print(len(aList)) # 7 print(aList[2]) # 2 print(aList[0:3]) # [0, 1, 2] print(aList[2:]) # [2, 3, 4, 5, 6] print(aList[-2]) # 5 # списки переменчивые aList[0] = 10 print(aList) # [10, 1, 2, 3, 4, 5, 6] |
Кортежи
Java
Кортежи не поддерживаются
Python
1 2 3 4 5 6 |
aTuple = () aTuple = (5) # вызывает ошибку aTuple = (5,) print aTuple print aTuple[0] # 5 |
В Python, кортежи очень похожи на списки, с той лишь разницей, что кортеж является неизменным. Это значит, что методы, которые меняют значение списка, не могут использоваться в кортеже. Чтобы назначить кортеж с одним элементом, он должен быть: aTuple = (5,) Без запятой возникнет ошибка.
Сеты
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 |
// hashset HashSet aSet = new HashSet(); aSet.add("aaaa"); aSet.add("bbbb"); aSet.add("cccc"); aSet.add("dddd"); // повторение над сетом Iterator iterator = aSet.iterator(); while (iterator.hasNext()) { System.out.print(iterator.next() + " "); } HashSet bSet = new HashSet(); bSet.add("eeee"); bSet.add("ffff"); bSet.add("gggg"); bSet.add("dddd"); // проверяем, является ли bSet наследуемым сетом aSet boolean b = aSet.containsAll(bSet); // объединение – меняем aSet // переходим в объединённые aSet и bSet aSet.addAll(bSet); // пересечение меняет aSet // переходим в пересечение aSet и bSet aSet.retainAll(bSet); // разница – меняет aSet // переходим в (ассиметричную) разницу сета // от aSet и bSet. aSet.removeAll(bSet); |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 |
aSet = set() aSet = set("one") # сет содержит три буквы print(aSet) #set(['e', 'o', 'n']) aSet = set(['one', 'two', 'three']) print(aSet) #set(['three', 'two', 'one']) # сет содержит три слова # итерация по сету for v in aSet: print(v) bSet = set(['three','four', 'five']) # объединение cSet = aSet | bSet print(cSet) # set(['four', 'one', 'five', 'three', 'two']) # разделение dSet = aSet & bSet # поиск элементов в aSet не в bSet eSet = aSet.difference(bSet) # добавить элемент bSet.add("six") print(bSet) # set(['four', 'six', 'five', 'three']) |
Словари
Словари в Python – это как Maps в Java
Java
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
HashMap<String, String> phoneBook = new HashMap<String, String>(); phoneBook.put("Mike", "555-1111"); phoneBook.put("Lucy", "555-2222"); phoneBook.put("Jack", "555-3333"); // итерация над HashMap Map<String, String> map = new HashMap<String, String>(); for (Map.Entry<String, String> entry : map.entrySet()) { System.out.println("Key = " + entry.getKey() + ", Value = " + entry.getValue()); } // получаем значение ключа phoneBook.get("Mike"); // получаем весь ключ Set keys = phoneBook.keySet(); // получаем количество элементов phoneBook.size(); // удаляем все элементы phoneBook.clear(); // удаляем определенный элемент phoneBook.remove("Lucy"); |
Python
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 |
# создаем пустой словарь phoneBook = {} phoneBook = {"Mike":"555-1111", "Lucy":"555-2222", "Jack":"555-3333"} # итерация над словарем for key in phoneBook: print(key, phoneBook[key]) # добавляем элемент phoneBook["Mary"] = "555-6666" # удаляем элемент del phoneBook["Mike"] # получаем количества элементов count = len(phoneBook) # можем получить разные типы phoneBook["Susan"] = (1,2,3,4) # возвращаем все ключи print(phoneBook.keys()) # удаляем все элементы phoneBook.clear() |
Являюсь администратором нескольких порталов по обучению языков программирования Python, Golang и Kotlin. В составе небольшой команды единомышленников, мы занимаемся популяризацией языков программирования на русскоязычную аудиторию. Большая часть статей была адаптирована нами на русский язык и распространяется бесплатно.
E-mail: vasile.buldumac@ati.utm.md
Образование
Universitatea Tehnică a Moldovei (utm.md)
- 2014 — 2018 Технический Университет Молдовы, ИТ-Инженер. Тема дипломной работы «Автоматизация покупки и продажи криптовалюты используя технический анализ»
- 2018 — 2020 Технический Университет Молдовы, Магистр, Магистерская диссертация «Идентификация человека в киберпространстве по фотографии лица»