rapid introduction to procedural programming once we know how many rows and columns the user requires and the minimum and maximum values of the random numbers they wantwe are ready to do the processing row while row rowsline "column while column columnsi random randint(minimummaximums str(iwhile len( line + column + print(linerow + to generate the grid we use three while loopsthe outer one working by rowsthe middle one by columnsand the inner one by characters in the middle loop we obtain random number in the specified range and then convert it to string the inner while loop is used to pad the string with leading spaces so that each number is represented by string characters wide we use the line string to accumulate the numbers for each rowand print the line after each column' numbers have been added this completes our second example python provides very sophisticated string formatting functionalityas well as excellent support for for in loopsso more realistic versions of both bigdigits py and generate_grid py would have used for in loopsand generate_grid py would have used python' string formatting capabilities rather than crudely padding with spaces but we have limited ourselves to the eight pieces of python introduced in this and they are quite sufficient for writing complete and useful programs in each subsequent we will learn new python featuresso as we progress through the book the programs we will see and be capable of writing will grow in sophistication summary ||in this we learned how to edit and run python programs and reviewed few small but complete programs but most of the pages were devoted to the eight pieces of python' "beautiful heart"--enough of python to write real programs we began with two of python' most basic data typesint and str integer literals are written just as they are in most other programming languages string str format(