6.3.4 Calls . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 72 6.4 Await expression . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.5 The power operator . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.6 Unary arithmetic and bitwise operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 74 6.7 Binary arithmetic operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 75 6.8 Shifting operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.9 Binary bitwise operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.10 Comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 76 6.10.1 Value comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 77 6.10.2 Membership test operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.10.3 Identity comparisons . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.11 Boolean operations . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 79 6.12 Assignment expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.13 Conditional expressions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.14 Lambdas . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 80 6.15 Expression lists . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.16 Evaluation order . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 6.17 Operator precedence . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 81 7 Simple statements 83 7.1 Expression statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 83 7.2 Assignment statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 84 7.2.1 Augmented assignment statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.2.2 Annotated assignment statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 86 7.3 The$_{assert}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.4 The$_{pass}$statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.5 The$_{del}$statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 87 7.6 The$_{return}$statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.7 The$_{yield}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 88 7.8 The$_{raise}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 89 7.9 The$_{break}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.10 The$_{continue}$statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.11 The$_{import}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 90 7.11.1 Future statements . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 92 7.12 The$_{global}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 7.13 The$_{nonlocal}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 93 8 Compound statements 95 8.1 The$_{if}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8.2 The$_{while}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8.3 The$_{for}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 96 8.4 The$_{try}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 97 8.5 The$_{with}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 99 8.6 Function definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 100 8.7 Class definitions . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 102 8.8 Coroutines . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.8.1 Coroutine function definition . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.8.2 The$_{async for}$statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 103 8.8.3 The$_{async with}$ statement . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 104 9 Top-level components 105 9.1 Complete Python programs . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.2 File input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 105 9.3 Interactive input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 9.4 Expression input . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 106 10 Full Grammar specification 107 A Glossary 117 iii