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

Pierwszy kod Python3, konwerter, uwagi

Object Storage Arubacloud
0 głosów
1,611 wizyt
pytanie zadane 16 lipca 2019 w Python przez hello6 Nowicjusz (120 p.)

Hej. Ucze sie Pythona 3 od 3 dni, w kursie, ktory robie autor zadal napisac konwerter. Do tej pory poznalem zaledwie funkcje, zmienne i if/else/elif statements wiec to nic wielkiego, z kolejnymi dniami bede to rozbudowywal, chce zapytac o uwagi, uzyte nazwy zmiennych, funkcji, czy jest tutaj cos do zmiany, jakies porady?

 

# Convert miles to km's
# mile * 1.6 = km

def mile_to_km():
    print("Write miles: ")
    a = int(input())
    km = a * 1.6
    print(a, "miles is equal to: ", km, "kilometers")

def km_to_mile():
    print("Write kilometers: ")
    b = int(input())
    mile = b / 1.6
    print(b, "km's is equal to: ", mile, "miles")
    
mile_to_km()    
km_to_mile()

 

2 odpowiedzi

0 głosów
odpowiedź 16 lipca 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)
  1. Starałbym się nie używać zmiennych jednoliterowych - i ogólnie takich, których nazwy nic nie mówią (a, b…)
  2. Dobrze by było rozdzielić warstwę komunikacji z użytkownikiem oraz warstwę obliczeń. W tej chwili uniemożliwiasz sobie ponowne skorzystanie z tych funkcji konwertujących, ale w innej sytuacji (aby gdzieś w dalszych obliczeniach wykorzystać wynik konwersji). Warto więc zapisywać te funkcje w taki sposób:
    def miles_to_km(miles):
        return miles / 1.6

    I do dzisiaj wydawało mi się, że mila to około 1,6 kilometra, a nie odwrotnie. cheeky

komentarz 16 lipca 2019 przez reaktywny Nałogowiec (40,990 p.)
Dobre uwagi Eryk!

Szczególnie nie podoba się, że hello6 wczytuje dane w funkcji przetwarzającej te dane.

Przydałoby się też jakieś GUI, może w Tkinterze.

Są różne mile:

https://pl.wikipedia.org/wiki/Mila_(jednostka_d%C5%82ugo%C5%9Bci)
komentarz 16 lipca 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)

A to, że są różne mile i przelicznik jest trochę bardziej dokładny, to już swoją drogą. wink

komentarz 16 lipca 2019 przez hello6 Nowicjusz (120 p.)

@Eryk Andrzejewski,

1)Chodzi o przejrzystosc kodu dla innych osob?
2)Rozumiem o co chodzi, ale jeszcze nie wiem jak to zrobic, pocwicze, mam 3 pomysly na proste projekty. Popisze jutro troszke, bo akurat mam wolne i pewnie cos wrzuce.
Masz racje z ta mila, bylem tak zaabsorbowany tymi funkcjami, ze bezmyslnie wpisalem wzor w komentarzu. W funkcji jest ok.

@reaktywny,

Tak wlasciwie to ja sie ucze Pythona raczej pod pisanie skryptow/automatyzacje, programy terminalowe - interesuja mnie pentesty. Nie chce byc programista, ale wiem, ze programowanie to bardzo przydatna umiejetnosc. Podoba mi sie prostota skladniowa Pythona. Moze kiedys wezme sie za GUI, ale na te chwile skupiam sie na terminalu.

Bardzo Wam dziekuje za podpowiedzi!

komentarz 16 lipca 2019 przez Eryk Andrzejewski Mędrzec (164,260 p.)
  1. Dla innych osób też, ale i dla Ciebie, jak zajrzysz w kod za kilka miesięcy. Oczywiście w tak prostym programie nie ma to prawie żadnego znaczenia, ale pisząc proste programy, masz przygotowywać się do tworzenia tych bardziej złożonych. Więc warto już teraz chłonąć takie dobre praktyki - niby niuanse, ale jednak dość istotne.
  2. W porządku. wink

Co do mili - jeżeli dobrze widzę, to w funkcjach też masz to źle.

komentarz 16 lipca 2019 przez hello6 Nowicjusz (120 p.)
No tak, kod jest bardzo prosty, ale od samego poczatku chce wyrabiac dobre nawyki, by pozniej nie musiec walczyc z samym soba wiec dzieki i postaram sie jutro wykorzystac te porady.

No tak.. te wzory.. :D Szczesliwie mam w planach tez troche edukacji matematycznej
0 głosów
odpowiedź 16 lipca 2019 przez DeBos123 Nałogowiec (44,950 p.)
  1. Nie musisz zapisywać wyniku do zmiennej w tym przypadku. Możesz spokojnie zapisać to w ten sposób:
    print(a, "miles is equal to: ", a * 1.6, "kilometers")
  2. Zmienna a mogłaby się nazywać miles lub km zależnie od funkcji.
  3. Mógłbyś dodać kontrolę błędów przy wczytywaniu zmiennej od użytkownika. Program rzuci wyjątek jeżeli ktoś nie wpisze liczby.
komentarz 16 lipca 2019 przez hello6 Nowicjusz (120 p.)
Dzieki za podpowiedz. Rzeczywiscie moglem zapisac to prosciej, nastepnym razem jeszcze chwile przeanalizuje kod nim go wrzuce.

Porady dot.zmiennych postaram sie jak najszybciej zastosowac.

Tutaj nie wiem za bardzo jeszcze jak to zrobic, ale chyba widzialem cos w dokumentacji. Rozumiem o czym mowisz, pewnie bede mial okazje to wkrotce poznac.

Podobne pytania

0 głosów
1 odpowiedź 1,164 wizyt
pytanie zadane 24 sierpnia 2019 w Python przez eryk1204 Nowicjusz (120 p.)
0 głosów
1 odpowiedź 386 wizyt
+1 głos
1 odpowiedź 196 wizyt

92,555 zapytań

141,403 odpowiedzi

319,559 komentarzy

61,940 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.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...