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
Funkcje wbudowane na maturze z informatyki
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1
- Rejestracja: dni
- Ostatnio: dni
- Postów: 6968
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.
- Rejestracja: dni
- Ostatnio: dni
- Postów: 1007
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.