• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Zapisywanie wyniku funkcji w pliku

0 głosów
1,335 wizyt
pytanie zadane 3 września 2020 w Python przez osobliwy nick Użytkownik (900 p.)

Jak zapisać wynik działania funkcji w Pythonie? Mam funkcję:

e(p, r, k)

która zwraca jakąś liczbę. Tę liczbę chcę zapisać w pliku. Intuicyjne:

plik.write(e)

Nie działa. Nie działa też:

plik.write("e")

W Internecie podstawowe poradniki nic o tym nie mówią. Docelowo chcę sobie wywołać tę funkcję w pętli dla jakiegoś zakresu p i wszystko po kolei zapisać do pliku.

2 odpowiedzi

0 głosów
odpowiedź 3 września 2020 przez Michałełe Nałogowiec (25,600 p.)
plik.write(e)

To tak jakbyś próbował wpisać tę funkcję do pliku - spróbuj w jakiejś zmiennej trzymać liczbę, i ją wpisz do pliku.

Oczywiście zakładam, że otwarłeś prawidłowo plik :)

 

Nazwa funkcji z nawiasami oznacza jej wywołanie, a sama nazwa oznacza miejsce w pamięci tejże funkcji

komentarz 3 września 2020 przez osobliwy nick Użytkownik (900 p.)

Próbowałem trzymać liczbę w zmiennej i też nie działa. Np.

z=e(p, r, k)
plik.write(z)

Plik jest otwarty prawidło, bo mogę zapisać do niego tekst.

komentarz 3 września 2020 przez Michałełe Nałogowiec (25,600 p.)
Pokaż cały kod
komentarz 3 września 2020 przez osobliwy nick Użytkownik (900 p.)

Już działa. Trzeba było zamienić z na string:

e=str(z)

i wtedy dopiero:

plik.write(e)

 

0 głosów
odpowiedź 4 września 2020 przez mokrowski Mędrzec (159,000 p.)

Przekombinowałeś. W print(...) jest dostępne file. Ot jakiś przykład...

def e(p, r, k):
    return p * r * k

with open("result.txt", 'w') as f:
    for p in range(1, 10):
        print(e(p, 2, 3), file=f)

 

komentarz 5 września 2020 przez osobliwy nick Użytkownik (900 p.)
Dzięki, spróbuję. Liczy się oczywiście przede wszystkim szybkość. Potrzebuję 2,5 mln liczb 128-bitowych. Komputer pracował mi 8 godzin... Ale mam to.
komentarz 6 września 2020 przez mokrowski Mędrzec (159,000 p.)
Hmm... to to "tanio Ci nie wyszło":-) Kwalifikuje się na stosowanie innego języka lub modułu w języku Python (spekuluję bo nie znam problemu).
komentarz 26 września 2020 przez osobliwy nick Użytkownik (900 p.)
Python to jedyny język, w którym dopiero nieśmiało stawiam drżące kroki. Oczywiście lepszy byłby C++, ale na razie jawi mi się jako senny koszmar, ale wiem, że mnie to czeka prędzej, czy później.

O co chodzi z tym modułem w Pythonie? Są jakieś szybsze i wolniejsze moduły? Niestety 2,5 mln liczb okazało się być zdecydowanie niewystarczające. Potrzebuję ich aż 22 miliardy (82 GB), w tej sytuacji robią się z tego lata pracy komputera... Jakby ktoś był ciekawy o co chodzi - takie dane są potrzebne do testów Dieharda, jest to bateria testów statycznych dla generatorów liczb losowych (wymyśliłem taki generator i trzeba go przetestować).

Podobne pytania

0 głosów
1 odpowiedź 651 wizyt
pytanie zadane 8 czerwca 2021 w Java przez Paluch22 Nowicjusz (230 p.)
0 głosów
1 odpowiedź 2,338 wizyt
pytanie zadane 5 lutego 2019 w Python przez HelloWorld (: Początkujący (470 p.)
0 głosów
1 odpowiedź 2,279 wizyt
pytanie zadane 10 grudnia 2017 w Python przez Oskar Filippoto Początkujący (470 p.)

93,787 zapytań

142,750 odpowiedzi

323,421 komentarzy

63,392 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...