Стало интересно, что такое типизация и как она связана с программированием и Python в частности?
<aside> 💡 Типизация — это способ распознавания типов данных переменных в языке программирования.
</aside>
Существует три классификации языков программирования по используемой типизации:
Статическая типизация предполагает, что тип переменной задаётся один раз, при написании кода, и больше не меняется. Динамическая типизация позволяет менять тип переменной в ходе выполнения программы, конкретный тип определяется во время выполнения программы.
C++ — язык со статической типизацией:
#include <iostream>
using namespace std;
int main()
{
int number;
cout << "Enter an integer: ";
cin >> number;
cout << "You entered " << number;
return 0;
}
Python — язык с динамической типизацией:
a = input("Enter an integer: ")
a = int(a)
print("You entered", a)
При явной типизации тип переменной указывается явно, при неявной он может не указываться, и он будет определён во время выполнения программы.
В части языков программирования с явной типизацией имеются элементы неявной типизации, когда можно не указывать тип переменной, но при этом указать её значение, и транслятор сама выведет нужный тип.
Java — язык с явной типизацией:
import java.util.Scanner;
public class HelloWorld {
public static void main(String[] args) {
Scanner reader = new Scanner(System.in);
System.out.print("Enter a number: ");
// В number может храниться только число
int number = reader.nextInt();
System.out.println("You entered: " + number);
}
}
Python — язык с неявной типизацией (можно указать тип переменной явно, но это ни на что не влияет и предназначено всего лишь для удобства программиста):
a = int(input()) # Здесь тип неявный
b: int = int(input()) # А здесь он явный, но ни на что не влияет
print(a + b)