This article is the second part of a series on Python's type annotation system, focusing on practical examples to help newcomers enhance code quality and readability through type hints. It builds on the introductory concepts of static and dynamic typing and demonstrates the advantages of using type hints, such as improved auto-completion and clearer return types in code editors like Visual Studio Code with the Pylance language server. The article explains the use of basic and complex data types from the typing module, such as typing.List and typing.Iterable, and emphasizes the importance of specifying element types within collections to avoid defaulting to Any or Unknown. It highlights the flexibility of Python 3.9 in allowing the use of built-in data types directly as type hints, contrasting it with earlier versions that require imports from the typing module. The article concludes with a brief mention of resources and future articles on more advanced type hint applications.