Witam,
W zadaniach z algorytmiki na maturze z informatyki jest dodawana taka uwaga:
"Zabronione jest używanie funkcji wbudowanych dostępnych w językach programowania"
Jak to ma się do funkcji typu str(), int(), len(), update(), append() w Pythonie?
Zwykle ich używam kiedy rozwiązuje arkusze i się zastanawiam czy na maturze mi za to utną punkty
Raczej tutaj chodzi o bardziej skomplikowane operacje.
Czyli np. jak masz za zadanie napisać algorytm sortowania, to nie możesz użyć sorted()
.
Albo jak masz zsumować elementy listy, to nie możesz użyć sum()
, tylko lecisz w pętli.
Konwersje typów raczej są bezpieczne...
Poza tym zapoznaj się z kluczem i wzorcowymi rozwiązaniami zadań, to zobaczysz jakie odpowiedzi są akceptowalne.
Przerąbane. Do matury musisz ogarnąć Asemblera. Żarcik. @Spine ma rację chyba
Tak dla formalności, str()
i int()
to nie są funkcje wbudowane tylko wywołania klas wbudowanych. Porównaj:
>>> type(sum)
<class 'builtin_function_or_method'>
>>> type(int)
<class 'type'>
Natomiast append
czy update
to metody:
>>> type(list.append)
<class 'method_descriptor'>
>>> type(dict.update)
<class 'method_descriptor'>
len
jest funkcją wbudowaną ale jakby się uprzeć i być pedantycznym, to można to obejść odczytując __len__
bezpośrednio:
>>> type(len)
<class 'builtin_function_or_method'>
>>> type(list.__len__)
<class 'wrapper_descriptor'>
Albo po prostu przeiterować i policzyć wystąpienia samemu.
Podobnież zamiast open
można by użyć codecs.open
. Aczkolwiek nie sądzę aby ktokolwiek komukolwiek odjął kiedykolwiek punkty za użycie open
w zadaniu, w którym musisz wczytać jakieś dane wejściowe z pliku.