Search
a='b\'c#d' #e i="j\"k'l#m" #n
def preskoc_komentare(line): # vytiskne obsah souboru 'f' s vynechanymi komentari stav=0 # počáteční stav automatu for c in line: # přečti jeden znak if stav==0: # počáteční stav if c=="#": # začátek komentáře stav=1 continue elif c=='\"': stav=2 # začátek řetězce elif stav==1: # 1="komentar" continue elif stav==2: if c=='\"': stav=0 print(c,end="") # vytiskni znak i=input() preskoc_komentare(i) # nacti radku a preskakuj
floatnumber ::= pointfloat | exponentfloat pointfloat ::= [intpart] fraction | intpart "." exponentfloat ::= (intpart | pointfloat) exponent intpart ::= digit+ fraction ::= "." digit+ exponent ::= ("e" | "E") ["+" | "-"] digit+ digit ::= "0"..."9"
aa[bb(cc)dd(ee)fff[gggg]]hhh
()cc ()ee []gggg []bbddfff
Proveďte lexikální analýzu jedné řádky vstupu, který může obsahovat pouze následující lexikální termy: * Dec: decimální číslo
decimalinteger ::= nonzerodigit digit* | "0"+ nonzerodigit ::= "1"..."9" digit ::= "0"..."9"
octinteger ::= "0" ("o" | "O") octdigit+ octdigit ::= "0"..."7"
bininteger ::= "0" ("b" | "B") bindigit+ bindigit ::= "0" | "1"
digit ::= "0"..."9" hexinteger ::= "0" ("x" | "X") hexdigit+ hexdigit ::= digit | "a"..."f" | "A"..."F"
1245
Dec
0x12FF
Hex
0o123
Oct
0B0101
Bin
1e-25
Rea
0o999
Str
Proveďte lexikální analýzu Pythonovského programu, který může obsahovat pouze následující lexikální termy:
',",''',"""
integer ::= decimalinteger | octinteger | hexinteger | bininteger decimalinteger ::= nonzerodigit digit* | "0"+ nonzerodigit ::= "1"..."9" digit ::= "0"..."9" octinteger ::= "0" ("o" | "O") octdigit+ hexinteger ::= "0" ("x" | "X") hexdigit+ bininteger ::= "0" ("b" | "B") bindigit+ octdigit ::= "0"..."7" hexdigit ::= digit | "a"..."f" | "A"..."F" bindigit ::= "0" | "1"
+ - * ** / // % << >> & | ^ ~ < > <= >= == !=
( ) [ ] { } , : . ; @ = -> += -= *= /= //= %= @= &= |= ^= >>= <<= **=
Zadání úlohy
def funkce(a,b): c='' a**=b if a<b: print('ahoj\'ky',a) else: print(0xff,0b11101,0o777,.90e-10,123E+5,c) print('''To je dlouhy retezec pres mnoho radku''') funkce(-256+356,.85**.33)
Key: def Var: funkce Sep: ( Var: a Sep: , Var: b Sep: ) Sep: : Var: c Sep: = Str: Var: a Sep: **= Var: b Key: if Var: a Ope: < Var: b Sep: : Var: print Sep: ( Str: ahoj'ky Sep: , Var: a Sep: ) Key: else Sep: : Var: print Sep: ( Int: 0xff Sep: , Int: 0b11101 Sep: , Int: 0o777 Sep: , Rea: .90e-10 Sep: , Rea: 123E+5 Sep: , Var: c Sep: ) Var: print Sep: ( Str: To je dlouhy retezec pres mnoho radku Sep: ) Var: funkce Sep: ( Ope: - Int: 256 Ope: + Int: 356 Sep: , Rea: .85 Ope: ** Rea: .33 Sep: )