Wie ktoś jak stworzyć program do przydzielania imion do podanych kryterium?


(Adm Osytek) #1

Witam! !!

 

Wie ktoś jak w prosty sposób stworzyć program w Pythonie ? 

Polegał by on na tym że podajemy dowolne Imie,litery itp.

A on nam przydziela do odpowiedniego kryterium ... Miało by to wyglądać mniej-wiecej tak:

 

komunikat Prosze podać imię pierwsze:

komunikat Prosze podać imię drugę:

komunikat Prosze podać imię trzecie:  

 

Po podaniu tych imion:

 

Trzy literowe:

Cztero literowe:

Pięcio literowe: 

 

 

Wykonałem ten program sam ale w min. 20 linijkach - a na pewno jest jakiś prostszy sposób . 

 

Pozdrawiam ! 

Addm


(Semtex) #2

Witaj, popraw proszę tytuł tematu tak aby wstępnie informował o problemie, użyj przycisku EDYTUJ , który znajdziesz w prawym dolnym rogu Swojego posta-> następnie skorzystaj z opcji Użyj pełnego edytora. Dziękuję za uwagę.

Tip: Unikaj słów: “problem”, “help”, “pomocy” i.t.p. Tego typu słowa nie spowodują szybszej reakcji a mogą odnieść odwrotny skutek od oczekiwanego, tytuł tematu ma być skróconym opisem Twojego posta- powodzenia.


(Frankfurterium) #3

 

Zwięzłość kodu nie jest ani jedynym, ani najważniejszym wyznacznikiem dobrze napisanego programu. Kod “przegięty” pod tym względem nadaje się na konkursy i ćwiczenia, ale nie jest mile widziany, kiedy chodzi o realny użytek.

 

Ale zawsze możesz zamieścić tutaj swój kod i być może ktoś naprowadzi cię na inną, może lepszą drogę.


(Adm Osytek) #4

Przepraszam że tak późno ale nie mogłem .  :2gunfire:

 

imie=raw_input("Podaj pierwsze imie: ")

imiea=raw_input("Podaj drugie imie: ")

imieb=raw_input("Podaj trzecie imie: ")

listaa=[]

listab=[]

listac=[]

if len(imie)==3:

       listaa.append(imie)

elif len(imie)==4:

       listab.append(imie)

elif len(imie)==5:

       listac.append(imie)

if len(imiea)==3:

       listaa.append(imiea)

elif len(imiea)==4:

       listab.append(imiea)

elif len(imiea)==5:

       listac.append(imiea)

if len(imieb)==3:

       listaa.append(imieb)

elif len(imieb)==4:

       listab.append(imieb)

elif len(imieb)==5:

       listac.append(imieb)

       

print "Imiona 3 literowe: ",listaa

print "Imiona 4 literowe: ",listab

print "Imiona 5 literowe: ",listac

 

Mogło by to lepiej wyglądać jaki ma ktoś jakiś pomysł to pisać !  :glupek2:


(Frankfurterium) #5

Wiele bliźniaczych obiektów dobrze jest trzymać w kolekcji.

Wiele bliźniaczych instrukcji występujących po sobie prawie zawsze da się zastąpić pętlą.

(bonusowo) Wiele bliźniaczych kawałków kodu zazwyczaj należy wydzielić do metody.

 

Jedno z rozwiązań:

names = ["Ala", "Hugo", "Piotr", "Aleksander"]

for length in range(3,6):
    for name in names:
        if len(name) == length:
            print name + " - length: " + str(length)
            names.remove(name)

(Adm Osytek) #6

Bardzo dobre rozwiązanie a dało by się żeby w rozwiązaniu pisało po polsku “długość” .

Ala - length: 3 - tak jest .

Ala - długość: 3 - dało by się tak ? (nie chodzi mi o sam język tylko wyświetlanie)


(jacko1998) #7

zmień to " - length: " na " - długość: ". To co masz pomiędzy " to zwykły tekst, a nie żadna funkcja :stuck_out_tongue:


(Adm Osytek) #8

Jaki ze mnie dekel  :glupek2: , wiem ale nie zauważyłem - nie zwróciłem na to uwagi … 

 

Dziękuje , ma ktoś jeszcze jakieś sposoby ? 


(Frankfurterium) #9

Jasne (w linii 6. zmień “length” na “długość”), tylko po co?

 

Kiedy ludzie wpadają tutaj i pytają “Od jakiego języka zacząć naukę”, najlepszą odpowiedzią zawsze jest “Od angielskiego”. Angielski to absolutna podstawa. Zaczątki Pythona po polsku znajdziesz w książkach i kursach, ale już dokumentacja, jeżeli dobrze szukam, nie jest przetłumaczona (przynajmniej nie aktualna wersja), a bez niej od pewnego poziomu trudno coś napisać. Jeszcze więcej informacji i ciekawostek o języku znajdziesz na blogach i (przede wszystkim) przegenialnym portalu StackOverflow, gdzie na skomplikowane problemy często odpowiadają autorzy książek albo sami twórcy języków programowania. Oczywiście po angielsku.


(Adm Osytek) #10

Wezmę sobie te rady . 

Dziękuje za rozwiązany problem .