Python – Data Types

A data type defines the type of a variable. Since everything is an object in Python, data types are actually classes; and the variables are instances of the classes.

In any programming language, different operations can be performed over different types of data types some of which are common with other datatypes while some can be very specific to that particular datatype.

1. Built-in Data Types in Python

Python has the following data types built-in by default.

CategoryData types / Class names
Numericint, float, complex
Listlist, tuple, range
Setset, frozenset
Binarybytes, bytearray, memoryview

2. Data Types in Detail

2.1. str

The string can be defined as the sequence of characters enclosed in single, double, or triple quotes. The triple quotes (“””) can be used for writing multi-line strings.

x = 'A'
y = "B"
z = """

print(x)	# prints A
print(y)	# prints B
print(z)	# prints C

print(x + y)	# prints AB	- concatenation

print(x*2)		# prints AA - repeatition operator

name = str('john')	# Constructor

sumOfItems = str(100)	# type conversion from int to string

2.2. int, float, complex

These are number types. They are created when a number is assigned to a variable.

  • int holds signed integers of non-limited length.
  • float holds floating precision numbers and they are accurate upto 15 decimal places.
  • complex – A complex number contains the real and imaginary part.
x = 2					# int
x = int(2)				# int	

x = 2.5					# float
x = float(2.5)			# float	

x = 100+3j				# complex
x = complex(100+3j) 	# complex

2.3. list, tuple, range

In Python, list is an ordered sequence of some data written using square brackets([ ]) and commas(,). A list can contain data of different types.

Slice [:] operator can be used to access the data in the list.

The concatenation operator (+) and repetition operator (*) works similar the str data type.

A range can be considered as sublist, taken out of a list using slicing operator.

A tuple is similar to the list – except tuple is a read-only data structure and we can’t modify the size and value of the items of a tuple. Also, items are enclosed in parentheses (, ).

randomList = [1, "one", 2, "two"]
print (randomList);  				# prints [1, 'one', 2, 'two']
print (randomList + randomList);  	# prints [1, 'one', 2, 'two', 1, 'one', 2, 'two']
print (randomList * 2);  			# prints [1, 'one', 2, 'two', 1, 'one', 2, 'two']

alphabets  = ["a", "b", "c", "d", "e", "f", "g", "h"]  

print (alphabets[3:]);  			# range - prints ['d', 'e', 'f', 'g', 'h']
print (alphabets[0:2]);  			# range - prints ['a', 'b']

randomTuple = (1, "one", 2, "two")
print (randomTuple[0:2]);  			# range - prints (1, 'one')

randomTuple[0] = 0		# TypeError: 'tuple' object does not support item assignment

2.4. dict

dict or dictionary is an ordered set of a key-value pair of items. A key can hold any primitive data type whereas value is an arbitrary Python object.

The entries in the dictionary are separated with the comma and enclosed in the curly braces {, }.

charsMap = {1:'a', 2:'b', 3:'c', 4:'d'};   

print (charsMap); 		# prints {1: 'a', 2: 'b', 3: 'c', 4: 'd'}
print("1st entry is " + charsMap[1]);  # prints 1st entry is a
print (charsMap.keys());  		# prints dict_keys([1, 2, 3, 4])
print (charsMap.values());   	# prints dict_values(['a', 'b', 'c', 'd'])

2.5. set, frozenset

The set in python can be defined as the unordered collection of various items enclosed within the curly braces{, }.

The elements of the set can not be duplicate. The elements of the python set must be immutable.

Unlike list, there is no index for set elements. It means we can only loop through the elements of the set.

The frozen sets are the immutable form of the normal sets. It means we cannot remove or add any item into the frozen set.

digits = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}   

print(digits)  			# prints {0, 1, 2, 3, 4, 5, 6, 7, 8, 9}

print(type(digits))  	# prints <class 'set'>

print("looping through the set elements ... ")  
for i in digits:  
    print(i)  			# prints 0 1 2 3 4 5 6 7 8 9 in new lines

digits.remove(0)	# allowed in normal set

print(digits)		# {1, 2, 3, 4, 5, 6, 7, 8, 9}

frozenSetOfDigits = frozenset({0, 1, 2, 3, 4, 5, 6, 7, 8, 9})   

frozenSetOfDigits.remove(0)	# AttributeError: 'frozenset' object has no attribute 'remove'

2.6. bool

bool values are the two constant objects False and True. They are used to represent truth values. In numeric contexts, they behave like the integers 0 and 1, respectively.

x = True
y = False

print(x)	#True
print(y)	#False

print(bool(1))	#True
print(bool(0))	#False

2.7. bytes, bytearray, memoryview

bytes and bytearray are used for manipulating binary data. The memoryview uses the buffer protocol to access the memory of other binary objects without needing to make a copy.

Bytes objects are immutable sequences of single bytes. We should use them only when working with ASCII compatible data.

The syntax for bytes literals is same as string literals, except that a 'b' prefix is added.

bytearray objects are always created by calling the constructor bytearray(). These are mutable objects.

x = b'char_data'
x = b"char_data"

y = bytearray(5)

z = memoryview(bytes(5))

print(x)	# b'char_data'
print(y)	# bytearray(b'\x00\x00\x00\x00\x00')
print(z)	# <memory at 0x014CE328>

3. type() function

The type() function can be used to get the data type of any object.

x = 5
print(type(x))			# <class 'int'>

y = ''
print(type(y))			# <class 'str'>

Drop me your questions in comments.

Happy Learning !!

Ref : Python docs

Was this post helpful?

Join 7000+ Fellow Programmers

Subscribe to get new post notifications, industry updates, best practices, and much more. Directly into your inbox, for free.

Leave a Comment


A blog about Java and its related technologies, the best practices, algorithms, interview questions, scripting languages, and Python.