Reklama
Pokazuje wyniki od 1 do 5 z 5

Temat: [Python] Problem

  1. #1
    Avatar Mikol_92
    Data rejestracji
    2006
    Wiek
    31
    Posty
    125
    Siła reputacji
    18

    Domyślny [Python] Problem

    Hej, uczę się Pythona od podstaw i mam mały problem. Napisałem coś na kształt sprawdzania czy podana liczba jest liczbą pierwszą i coś mi nie działa. Może ktoś sprawdzić co jest nie tak?

    Kod:
    def get_number():
        return input('Enter number: ')
    
    
    def is_prime():
        x = get_number()
        lst = []
        div = range(1, x)
        if x == 0:
            return 'Error!'
        elif x == 1:
            return 'Not prime.'
        elif x == 2:
            return 'Prime.'
        else:
            for i in div:
                if x % i == 0:
                    lst.append(i)
                return lst
        if len(lst) > 2:
            return 'Not prime.'
        else:
            return 'Prime'
    
    
    print is_prime()

  2. #2
    Avatar mercury
    Data rejestracji
    2007
    Położenie
    Warszawa
    Posty
    266
    Siła reputacji
    17

    Domyślny

    trochę zagmatwany kod, będę miał chwile to popatrzę, masz tu moje rozwiązanie:
    Kod:
    def is_prime(n):
        if(n<2):
            return False
        for i in range(2,int((n/2))+1):
            if n%i == 0:
                return False
        return True
    Twoj poprawiony kod
    Kod:
    def get_number():
        return int(input('Enter number: '))
    
    
    def is_prime():
        x = get_number()
        lst = []
        div = range(2, x)
        if x <2:
            return 'Not prime.'
        else:
            for i in div:
                if x % i == 0:
                    lst.append(i)
            return lst
        if len(lst) > 2:
            return 'Not prime.'
        else:
            return 'Prime'
    
    
    print(is_prime())
    Ostatnio zmieniony przez mercury : 26-03-2017, 22:36

  3. Reklama
  4. #3
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,034
    Siła reputacji
    16

    Domyślny

    nie znam składni pythona w ogóle ale w innych jezykach return zwraca wartosc i wychodzi z funkcji, w pythonie jest inaczej? Więc jak sie nie myle to else zawsze zwróci tablice lst a nie żaden wynik? Jak rozumiem w pythonie to wciecia decyduja gdzie sie konczy scope funkcji a u ciebie return jest wcięty tak że nigdy for nie obróci dwa razy

    Kod:
    def get_number():
        return input('Enter number: ')
    
    
    def is_prime():
        x = get_number()
        lst = []
        div = range(1, x)
        if x == 0:
            return 'Error!'
        elif x == 1:
            return 'Not prime.'
        elif x == 2:
            return 'Prime.'
        else:
            for i in div:
                if x % i == 0:
                    lst.append(i)
                return lst
        if len(lst) > 2:
            return 'Not prime.'
        else:
            return 'Prime'
    
    
    print is_prime()
    Ostatnio zmieniony przez Pumpkin : 26-03-2017, 22:39
    Cytuj wampiirr napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Leki które aktualnie mają wartość 200zł, po refundacji płacimy 50 zł, a za Korwina będą kosztowały 10zł. Bardziej tak

    Cytuj wampiirr napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    (...)bo był honorowym rycerzem w porównaniu do tego gościa, który oddał bez walki zamek.

  5. #4
    Avatar Mikol_92
    Data rejestracji
    2006
    Wiek
    31
    Posty
    125
    Siła reputacji
    18

    Domyślny

    Pomogły mi wskazówki i program działa, chociaż i tak zrobiłem to trochę naokoło. No ale dopiero się uczę ;d Dzięki! do zamknięcia

  6. #5
    Avatar Pumpkin
    Data rejestracji
    2010
    Posty
    3,034
    Siła reputacji
    16

    Domyślny

    troche naokolo to malo powiedziane xD

    Dla kazdej duzej parzystej liczby bedziesz zapelnial tablice wszystkimi jej dzielnikami i sprawdzal czy jest wieksza od 2? Przeciez wystarczy juz jakikolwiek dzielnik znaleziony po drodze i dla kazdej liczby parzystej bedzie to 2.

    Jak to jakies zadanie do szkoly to sito euklidesa zrob przynajmniej dla tych wlasciwosci podzielnosci liczb znanych z podstawowki (suma cyfr podzielna przez 3 itp)
    Cytuj wampiirr napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Leki które aktualnie mają wartość 200zł, po refundacji płacimy 50 zł, a za Korwina będą kosztowały 10zł. Bardziej tak

    Cytuj wampiirr napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    (...)bo był honorowym rycerzem w porównaniu do tego gościa, który oddał bez walki zamek.

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. [Python] Problem z plikiem txt
    Przez Advantan w dziale Programowanie
    Odpowiedzi: 6
    Ostatni post: 06-09-2016, 23:01
  2. Python szybka pomoc
    Przez Criss26 w dziale Programowanie
    Odpowiedzi: 4
    Ostatni post: 31-01-2014, 15:40
  3. [Python][XML]Wyciągnięcie attrybutu od wybranego roota
    Przez Rysiek w dziale Programowanie
    Odpowiedzi: 5
    Ostatni post: 29-11-2013, 19:16
  4. [Python] tibiaproxy v3.2
    Przez deathplanter w dziale Programowanie
    Odpowiedzi: 15
    Ostatni post: 24-11-2013, 16:02
  5. [TA] tibia auto python script
    Przez Mandor Silo w dziale Tibia
    Odpowiedzi: 1
    Ostatni post: 13-09-2013, 11:25

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •