Python has several basic data types including strings, lists, tuples and dictionaries. Strings can be accessed and manipulated using indexes and methods like split() and join(). Lists allow indexing, slicing, sorting and other controls. Tuples are ordered and immutable while dictionaries use keys to store values. Conditionals like if/else and loops like for and while control program flow. Functions and classes define reusable blocks of code. Files can be opened and their contents read line by line.