[python] Amiga Python, Rekurze a non ASCII poznamka

Jan Jakubuv cbboy na matfyz.cz
Pátek Červen 26 13:55:07 CEST 2009


Zdravim,

Ad 1:

On Fri, Jun 26, 2009 at 01:08:26AM +0200, Martin wrote:
> Zdravim, mam 2 problemy.
> 
> Prvy problem je s rekurziou v programe pod pocitacom Amiga.
> Pokial dam v Amiga Pythonu prikaz: print sys.getrecursionlimit(), vyhodi mi to vysledok 1000 tak ako u PC. Zistil som ale, ze skutocny limit zanorenia u Amigy neni 1000 ale nejako okolo 139, preto mi to asi v polovine mojej hry vyhodi chybu:
> MemoryError: Stack Overflow. Prikazom: sys.setrecursionlimit() mozem teda dosiahnut mensi limit zanorenia ako 139, kedy mi program skonci hlaskou: RuntimeError: maximum recursion depth exceeded.
> 
> nerekurzivni reseni:
> def Hledej(start):
>     while not podminka:
>         #neco delej
>         start+=1
>     return vysledek
> 

Jednoduse prepiste funkci tak, ze nebude pouzivat rekurzivni volani. V tomto
pripade, kdy vysledek rekurzivniho volani `pesinka` neni nikde pouzit a
pouze se propaguje pri navratu, by to nemel by problem.  Obecne, pokud
prekrocite recursion limit (byt i jen onu hodnotu 139), je na miste
prehodnotit navrh aplikace. Navic se domnivam, ze limit prekrocite i na PC
pokud dostatecne krat (cca 1000x ?) stisknete enter.

Ad 2:

> Druhy problem mam s vypisovanim nasledovnej hlasky:
>  __main__:1: DeprecationWarning: NON-ASCII charakter '\xf8' in file mojProgram.py on line 74, but no encoding declared; see http://www.python.org/peps/pep-0263.html for details.
> 
> 
> # -*- coding: latin2 -*-
> print 'Amiga 1200 je počítač z roku 1992'
> 

Nemam zkusenosti s Pythonem na Amize. Nicmene, pokud vidite varovani, ze
jste neuvedl kodovani souboru,  prestoze jste ho uvedl pomoci radku  " -*-
coding: latin2 -*- ", tak budto mate chybu v onon radku nastavujicim
kodovani nebo se to v Amiga Pythonu dela jinak (nebo neco co nevim co ;-)).

S pozdravem,

    honza.



-- 
Heriot-Watt University is a Scottish charity
registered under charity number SC000278.



Další informace o konferenci Python