1 | ||
Editor: geon
Time: 2006/03/19 18:03:14 GMT+0 |
||
Note: |
changed: - cannot concatenate "str" and "int" objects Tato častá chyba se stane, pokud se snažíte sčítat "hrušky a jablka". V tomto případě se snažíte sčítat řetězec ("str") a číslo ("int"). To prostě Python nedokáže. Python dokáže sečíst dvě čísla, dokáže také sečíst (spojit) dva řetězce nebo dokonce i dva seznamy pomocí znaménka + (plus). Ale sečíst ' "a" + 1 ' to neumí. Příklad:: >>> 1+2 3 >>> "a"+"b" 'ab' >>> [4]+[5] [4, 5] >>> "a"+1 Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects Řešením je převést číslo na řetězec pomocí funkce str(), nebo řetězec na číslo (pokud je v něm číslo) pomocí funkce int(), případně float().:: >>> int("5") + 4 9 >>> "a" + str(1) 'a1' nazevFunkce() takes exactly 1 argument (0 given) Tato chyba se vyskytne, když funkci předáte málo nebo moc argumentů - v tomto případě funkce očekávala jeden (takes exactly 1 argument) a nedostala žádný (0 given). Řešením je upravit volání funkce tak, aby počet parametrů sohlasil nebo opravit funkci, aby přijímala jiný počet argumentů, případně některé argumenty udělat volitelné/dobrovolné.
Tato častá chyba se stane, pokud se snažíte sčítat "hrušky a jablka". V tomto případě se snažíte sčítat řetězec ("str") a číslo ("int"). To prostě Python nedokáže. Python dokáže sečíst dvě čísla, dokáže také sečíst (spojit) dva řetězce nebo dokonce i dva seznamy pomocí znaménka + (plus). Ale sečíst "a" + 1
to neumí. Příklad:
>>> 1+2 3 >>> "a"+"b" 'ab' >>> [4]+[5] [4, 5] >>> "a"+1 Traceback (most recent call last): File "<stdin>", line 1, in ? TypeError: cannot concatenate 'str' and 'int' objects
Řešením je převést číslo na řetězec pomocí funkce str(), nebo řetězec na číslo (pokud je v něm číslo) pomocí funkce int(), případně float().:
>>> int("5") + 4 9 >>> "a" + str(1) 'a1'
Tato chyba se vyskytne, když funkci předáte málo nebo moc argumentů - v tomto případě funkce očekávala jeden (takes exactly 1 argument) a nedostala žádný (0 given).
Řešením je upravit volání funkce tak, aby počet parametrů sohlasil nebo opravit funkci, aby přijímala jiný počet argumentů, případně některé argumenty udělat volitelné/dobrovolné.