Instruções compostas

As instruções compostas do Python podem ser as instruções seguintes, definidas usando a sintaxe BNF:

  • if
    if_stmt ::=  "if" expression ":" suite
                 ( "elif" expression ":" suite )*
                 ["else" ":" suite]
    
  • while
    while_stmt ::=  "while" expression ":" suite
                    ["else" ":" suite]
    
  • for
    for_stmt ::=  "for" target_list "in" expression_list ":" suite
                  ["else" ":" suite]
    
  • try
    try_stmt  ::=  try1_stmt | try2_stmt
    try1_stmt ::=  "try" ":" suite
                   ("except" [expression [("as" | ",") identifier]] ":" suite)+
                   ["else" ":" suite]
                   ["finally" ":" suite]
    try2_stmt ::=  "try" ":" suite
                   "finally" ":" suite
    
  • with
    with_stmt ::=  "with" with_item ("," with_item)* ":" suite
    with_item ::=  expression ["as" target]
    
  • definição de funções
    decorated      ::=  decorators (classdef | funcdef)
    decorators     ::=  decorator+
    decorator      ::=  "@" dotted_name ["(" [argument_list [","]] ")"] NEWLINE
    funcdef        ::=  "def" funcname "(" [parameter_list] ")" ":" suite
    dotted_name    ::=  identifier ("." identifier)*
    parameter_list ::=  (defparameter ",")*
                        (  "*" identifier ["," "**" identifier]
                        | "**" identifier
                        | defparameter [","] )
    defparameter   ::=  parameter ["=" expression]
    sublist        ::=  parameter ("," parameter)* [","]
    parameter      ::=  identifier | "(" sublist ")"
    funcname       ::=  identifier
    
  • definição declasses
    classdef    ::=  "class" classname [inheritance] ":" suite
    inheritance ::=  "(" [expression_list] ")"
    classname   ::=  identifier
    

Exemplo do try – finally

>>> def f():
...     a = "Not a number"
...     try:
...         a = 1/0
...     finally:
...         return a
...
>>> f()
'Not a number'
>>>
>>> def g():
...     a = "Not a number"
...     try:
...         a = 10/3
...     finally:
...         return a
...
>>> g()
3

Exemplo de aplicação da instrução for

>>> a=range(10)
>>> a
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> for x in a[:]:
...     if x > 3: a.remove(x)
...
>>> a
[0, 1, 2, 3]

Deixe um comentário

O seu endereço de email não será publicado. Campos obrigatórios marcados com *