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

question-closed Importowanie własnego modułu - Python

0 głosów
642 wizyt
pytanie zadane 26 czerwca 2019 w Python przez Ventre90 Obywatel (1,170 p.)
zamknięte 26 czerwca 2019 przez Ventre90

Cześć drodzy pasjonaci. Mam pytanie odnoście importowania własnego modułu do innego pliku .py

Napisałem 2 programy. Pierwszy to quiz zaciągający się z pliku txt, który zapisuje do innego pliku (bestscore.txt) nickname i wynik punktowy gracza.

Drugi program zaciąga dane z pliku bestscore.txt i formuje tabele z 3-ma najlepszymi wynikami. 

I teraz ja bym chciał te dwa programy ze sobą połączyć nie kopiując i przyklejając kodu. W sensie po zakończeniu quizu dla gracza - wyświetlić tabele najlepszych wyników.

Pytanie:

Czy da się to zrobić jeżeli program dwa - nie jest napisany w formie funkcji tylko po prostu tak:

if __name__ == "__main__":
    import operator
    topscore = []
    with open("best_score.txt","r") as the_file:
        for line in the_file:
            words = line.split()
            topscore.append(words)
        topscore.sort(key=operator.itemgetter(1))

    place1 = topscore[-1]
    place2 = topscore[-2]
    place3 = topscore[-3]
    print("\n\tTABELA NALEPSZYCH WYNIKOW")
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place1[0], place1[1]))
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place2[0], place2[1]))
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place3[0], place3[1]))
    print("\t" + "-"*28)

Jeszcze format fliku bestscore.txt:

Marysia 5
Seba 5
Zbych 4
Spirytus 7
Roman 2

PS. Wiem, że gdyby ten program był funkcją to mógłbym użyć : import file i potem file.funkcja(). Czy powyższy program może się wykonać w głównym programie nie będąc napisanym w formie funkcji?

komentarz zamknięcia: Temat rozwiązany

1 odpowiedź

+1 głos
odpowiedź 26 czerwca 2019 przez mokrowski Mędrzec (158,940 p.)
wybrane 26 czerwca 2019 przez Ventre90
 
Najlepsza

Wystarczy że zdefiniujesz funkcję np. main() i ją wywołasz w sekcji if.... dodatkowo będziesz ją mógł wywołać z modułu:

def main():
    import operator
    topscore = []
    with open("best_score.txt","r") as the_file:
        for line in the_file:
            words = line.split()
            topscore.append(words)
        topscore.sort(key=operator.itemgetter(1))
 
    place1 = topscore[-1]
    place2 = topscore[-2]
    place3 = topscore[-3]
    print("\n\tTABELA NALEPSZYCH WYNIKOW")
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place1[0], place1[1]))
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place2[0], place2[1]))
    print("\t" + "-"*28)
    print("\t| nick: {:10s}| {:3s}pkt.|".format(place3[0], place3[1]))
    print("\t" + "-"*28)

if __name__ == "__main__":
    main()

 

komentarz 26 czerwca 2019 przez Ventre90 Obywatel (1,170 p.)

@mokrowski - Jak zawsze niezawodny ;)

Wszystko działa jak powinno. Wielkie dzięki i pozdrawiam.

Podobne pytania

0 głosów
1 odpowiedź 2,459 wizyt
pytanie zadane 1 lutego 2016 w Python przez Devero Początkujący (300 p.)
0 głosów
1 odpowiedź 574 wizyt
pytanie zadane 11 maja 2020 w Python przez Kisielewsky Użytkownik (830 p.)
0 głosów
0 odpowiedzi 530 wizyt
pytanie zadane 1 lipca 2019 w Python przez Ventre90 Obywatel (1,170 p.)

93,600 zapytań

142,524 odpowiedzi

322,993 komentarzy

63,085 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

Kursy INF.02 i INF.03
...