Python koodiin apua nopeasti?

Surkeakoodari

Miten teen tälläisen tehtävän?
Luo ohjelma, joka kysyy käyttäjältä numeroita välilyönneillä erotettuna,
ja laskee niiden summan.Jos ohjelmalle annetaan virheellinen syöte, sen pitää kaatumisen sijaan kehottaa käyttäjää antamaan kelvollinen syöte, ja kysyä numeroita uudelleen.

Ohjelman tulostus pitäisi olla tälläista:
mallitulosteita:
käyttäjän syöte
ohjelman tuloste
1:
anna lukuja välilyönneillä erotettuna:
1 3 5 4 2 5
summa: 20

2:
anna lukuja välilyönneillä erotettuna:
en anna!
vähintään yksi luvuista ei ollut kelvollinen
anna lukuja välilyönneilläa erotettuna:
en!
vähintään yksi luvuista ei ollut kelvollinen
anna lukuja välilyönneillä erotettuna:
-1 1
summa: 0

Tarkka koodi olisi kiva tietää!

12

417

    Vastaukset

    Anonyymi (Kirjaudu / Rekisteröidy)
    5000
    • vieläenemmänhukassa

      Mites tämä tehdään?

      Piirrä turtlella kuviota 4096 askelta siten, että turtle vuorotellen kulkee
      5 yksikköä eteenpäin, ja kääntyy 90 astetta joko oikealle tai vasemmalle.
      n:nnen käännöksen suunta määräyytyy seuraavan kaavan mukaan: Puolita
      lukua n kunnes vastaus on pariton luku. Mikäli vastauksen jakojäännös luvun neljä kanssa on 1, käänny oikealle. Muussa tapauksessa
      käänny vasemmalle.

      • 6666

        On kyllä helvetin sekava tehtävänanto. Esim. "turtle vuorotellen kulkee 5 yksikköä eteenpäin, ja kääntyy 90 astetta joko oikealle tai vasemmalle." ja "n:nnen käännöksen suunta määräyytyy seuraavan kaavan mukaan" on ristiriitaisia.

        Kulkeeko se nyt ensimmäisellä askeleella ensin suoraan ja vasta sen jälkeen suunnanvaihto vai toisinpäin?

        Tässä jotain viritystä. Tuskin on ihan oikein mutta voi voi

        for n in range(1, 4096 1): # aloitetaan 1:stä koska tässä seurataan sitä monesko askel menossa
        #n:nnen käännöksen suunta määräyytyy seuraavan kaavan mukaan:
        # Puolita lukua n kunnes vastaus on pariton luku
        x = n / 2 # HUOM: ilmeisesti tehtävässä on tarkoitus käyttää tässä desimaalilukuja. Korjaa jakolaskua sopivasti jos käytät python 2.x
        while x % 2 == 0: # luku on pariton jos sen jako kahteen ei mene tasan
        x = x / 2

        #Mikäli vastauksen jakojäännös luvun neljä kanssa on 1, käänny oikealle.
        #Muussa tapauksessa käänny vasemmalle.
        if x % 4 == 1:
        print("right: 90")
        else:
        print("left: 90")

        print("forward: 5")


      • 6666
        6666 kirjoitti:

        On kyllä helvetin sekava tehtävänanto. Esim. "turtle vuorotellen kulkee 5 yksikköä eteenpäin, ja kääntyy 90 astetta joko oikealle tai vasemmalle." ja "n:nnen käännöksen suunta määräyytyy seuraavan kaavan mukaan" on ristiriitaisia.

        Kulkeeko se nyt ensimmäisellä askeleella ensin suoraan ja vasta sen jälkeen suunnanvaihto vai toisinpäin?

        Tässä jotain viritystä. Tuskin on ihan oikein mutta voi voi

        for n in range(1, 4096 1): # aloitetaan 1:stä koska tässä seurataan sitä monesko askel menossa
        #n:nnen käännöksen suunta määräyytyy seuraavan kaavan mukaan:
        # Puolita lukua n kunnes vastaus on pariton luku
        x = n / 2 # HUOM: ilmeisesti tehtävässä on tarkoitus käyttää tässä desimaalilukuja. Korjaa jakolaskua sopivasti jos käytät python 2.x
        while x % 2 == 0: # luku on pariton jos sen jako kahteen ei mene tasan
        x = x / 2

        #Mikäli vastauksen jakojäännös luvun neljä kanssa on 1, käänny oikealle.
        #Muussa tapauksessa käänny vasemmalle.
        if x % 4 == 1:
        print("right: 90")
        else:
        print("left: 90")

        print("forward: 5")

        Eikun ei mitään, luin silmät ristissä enkä tajunnut vaikka yritin. Tuossahan puhuttiinkin n:stä KÄÄNNÖKSESTÄ. Eli ehkä tuo eteenpäinsiirto pitäisi tapahtuo tuossa silmukan alussa.


    • Helppo ja nopea

      Tuon voi ratkaista nopeasti Pascal:lla esim Lazarus tai Delphi.
      esim näin (helppo homma):

      ...
      procedure TForm1.Button1Click(Sender: TObject);
      var
      luvut: TStringList;
      jatka, virhe : boolean;
      i :integer;
      begin
      luvut := TStringList.Create;
      luvut.Delimiter:= ' ';
      luvut.DelimitedText:= Edit1.text;
      i := 0;
      virhe := false;
      jatka := luvut.Count > 0;
      while jatka do
      begin
      try
      i := i StrToInt( luvut[0]);
      luvut.Delete(0);
      jatka := luvut.Count > 0
      except
      on E : Exception do
      begin
      jatka := false;
      virhe := true;
      end;
      end;
      end;
      if virhe
      then Memo1.Lines.Add( 'vähintään yksi luvuista ei ollut kelvollinen')
      else Memo1.Lines.Add( 'summa :' IntToStr( i ));
      end;
      ...

      Huom! tuosta koodista puuttuumuutamia kaikille tuttuja perusosia. Mutta
      ne ovat itsestään selviöitä kaikille muille paitsi aivan aloittekijoille!

      • Kooderi

        Sä olit lähtenyt menemään perse edellä ATK-puuhun. Kato mitä tapahtu, kun mä yritin kääntää sun pölkkypäistä koodii!

        procedure TForm1.Button1Click(Sender: TObject);
        ;(( ᴉ )ɹʇSo┴ʇuI ,: ɐɯɯns, )pp∀˙sǝuᴉ˥˙ƖoɯǝW ǝslǝ
        (,uǝuᴉlloʌlǝʞ ʇnllo ᴉǝ ɐʇsᴉnʌnl ᴉsʞʎ uääʇuᴉɥäʌ, )pp∀˙sǝuᴉ˥˙ƖoɯǝW uǝɥʇ
        ǝɥɹᴉʌ ɟᴉ
        ;puǝ
        ;puǝ
        ;puǝ
        ;ǝnɹʇ =: ǝɥɹᴉʌ
        ;ǝslɐɟ =: ɐʞʇɐɾ
        uᴉƃǝq
        op uoᴉʇdǝɔxƎ : Ǝ uo
        ʇdǝɔxǝ
        0 < ʇunoƆ˙ʇnʌnl =: ɐʞʇɐɾ
        ;(0)ǝʇǝlǝp˙ʇnʌnl
        ;([0]ʇnʌnl )ʇuIo┴ɹʇS ᴉ =: ᴉ
        ʎɹʇ
        uᴉƃǝq
        op ɐʞʇɐɾ ǝlᴉɥʍ
        ;0 < ʇunoƆ˙ʇnʌnl =: ɐʞʇɐɾ
        ;ǝslɐɟ =: ǝɥɹᴉʌ
        ;0 =: ᴉ
        ;ʇxǝʇ˙ƖʇᴉpƎ =:ʇxǝ┴pǝʇᴉɯᴉlǝp˙ʇnʌnl
        ;, , =:ɹǝʇᴉɯᴉlǝp˙ʇnʌnl
        ;ǝʇɐǝɹƆ˙ʇsᴉ˥ƃuᴉɹʇS┴ =: ʇnʌnl
        uᴉƃǝq
        ;ɹǝƃǝʇuᴉ: ᴉ
        ;uɐǝlooq : ǝɥɹᴉʌ 'ɐʞʇɐɾ
        ;ʇsᴉ˥ƃuᴉɹʇS┴ :ʇnʌnl
        ɹɐʌ
        end;


      • koodinkääntäjä
        Kooderi kirjoitti:

        Sä olit lähtenyt menemään perse edellä ATK-puuhun. Kato mitä tapahtu, kun mä yritin kääntää sun pölkkypäistä koodii!

        procedure TForm1.Button1Click(Sender: TObject);
        ;(( ᴉ )ɹʇSo┴ʇuI ,: ɐɯɯns, )pp∀˙sǝuᴉ˥˙ƖoɯǝW ǝslǝ
        (,uǝuᴉlloʌlǝʞ ʇnllo ᴉǝ ɐʇsᴉnʌnl ᴉsʞʎ uääʇuᴉɥäʌ, )pp∀˙sǝuᴉ˥˙ƖoɯǝW uǝɥʇ
        ǝɥɹᴉʌ ɟᴉ
        ;puǝ
        ;puǝ
        ;puǝ
        ;ǝnɹʇ =: ǝɥɹᴉʌ
        ;ǝslɐɟ =: ɐʞʇɐɾ
        uᴉƃǝq
        op uoᴉʇdǝɔxƎ : Ǝ uo
        ʇdǝɔxǝ
        0 < ʇunoƆ˙ʇnʌnl =: ɐʞʇɐɾ
        ;(0)ǝʇǝlǝp˙ʇnʌnl
        ;([0]ʇnʌnl )ʇuIo┴ɹʇS ᴉ =: ᴉ
        ʎɹʇ
        uᴉƃǝq
        op ɐʞʇɐɾ ǝlᴉɥʍ
        ;0 < ʇunoƆ˙ʇnʌnl =: ɐʞʇɐɾ
        ;ǝslɐɟ =: ǝɥɹᴉʌ
        ;0 =: ᴉ
        ;ʇxǝʇ˙ƖʇᴉpƎ =:ʇxǝ┴pǝʇᴉɯᴉlǝp˙ʇnʌnl
        ;, , =:ɹǝʇᴉɯᴉlǝp˙ʇnʌnl
        ;ǝʇɐǝɹƆ˙ʇsᴉ˥ƃuᴉɹʇS┴ =: ʇnʌnl
        uᴉƃǝq
        ;ɹǝƃǝʇuᴉ: ᴉ
        ;uɐǝlooq : ǝɥɹᴉʌ 'ɐʞʇɐɾ
        ;ʇsᴉ˥ƃuᴉɹʇS┴ :ʇnʌnl
        ɹɐʌ
        end;

        Hienosti käännetty, hermanni.


    • asdadddd

      Tämä on tehty python3.3:lla. Jos käytät python 2.x niin käytä funktion input sijaan funktiota raw_input.

      Ohjelma ei ole kokonainen mutta eiköhän tuo auta sen vaikeimman osuuden kanssa ;)

      Sisennykset menevät päin vittua suomi24:ssä. En jaksa korvata välilyöntejä html-entiteeteillä. Jääköön sisennyksen korjaaminen osaksi kotitehtävää.

      def get_input():
      values = None
      while values is None:
      line = input("Anna lukuja välilyönneillä erotettuna")
      try:
      values = [int(x) for x in line.split(' ')]
      except ValueError:
      print("Vähintään yksi luvuista ei ollut kelvollinen")
      return values

    • karkkipäivä

      Apua!
      pitäis saada tämmönen tehtävä tehtyä:
      Kirjoita ohjelma, joka muuttaa lauseita kontinkielelle. Kontinkieli on suomen kielen sanaleikki, jossa jokaisen sanan jälkeen lisätään sana ’kontti’, ja suoritetaan samanlainen kirjainten tai tavujen vaihdos kuin sananmuunnoksessa. Tee ohjelma seuraavasti
      a. Ohjelmassa on sanakirja, johon ohjelma tallentaa jokaisen muuntamansa sanan (= avain) ja sen kontinkielisen vastineen
      b. Käyttäjä voi syöttää ohjelmalla niin monta lausetta kuin haluaa.
      c. Ohjelma kysyy käyttäjältä lauseen ja näyttää käyttäjälle sen kontinkielisen käännöksen.
      d. Kun ohjelma kääntää lausetta, niin se tallentaa jokaisen muuntamansa sanan ja sen vastineen sanakirjaan
      e. Kun käyttäjä ei enää halua antaa ohjelmalle muunnettavia lauseita, niin ohjelma lopuksi tulostaa näkyville siistissä muodossa kaikki sanakirjan sisältämät sanat ja niiden kontinkielisen vastineet
      f. Sana muunnetaan kontinkieliseksi seuraavasti: sanan perään lisätään sana kontti ja sitten sanan kaksi ensimmäistä kirjainta vaihdetaan sanan kontti kahden ensimmäisen kirjaimen kanssa. Esim. rakas -> rakaskontti -> kokasrantti; laulaa -> laulaakontti -> koulaalantti.
      g. Muunnettaessa lausetta sen jokainen sana muunnetaan erikseen. Sanan muuntaminen tehdään omassa metodissa jonka nimi on kontiksi.
      h. Ohjelma muuntaa vain sanat joiden pituus on vähintään 4 merkkiä ja jotka sisältävät vain kirjainmerkkejä.

      • 32323333

        Selvä. Mitä olet saanut tehtyä tähän asti ja mikä kohta tuottaa ongelmia?


      • motivaattorispede
        32323333 kirjoitti:

        Selvä. Mitä olet saanut tehtyä tähän asti ja mikä kohta tuottaa ongelmia?

        def sananmuunnos(sana1, sana2):
        return sana2[:2] sana1[2:] sana1[:2] sana2[2:]

        >>> sananmuunnos("peli", "kortti")
        'kolipertti'
        >>> sananmuunnos("rakas", "kontti")
        'kokasrantti'

        Nyt on jo melkeen kokonaan tehty! Siitä kun pinnistät loppuun vielä!111 Kyllä sinä pystyt siihen!!!111111


    • ei hyvä

      Miten opit mitään jos muut tekee työn puolestasi?

      • 11112

        Manageri tason ainesta


    Ketjusta on poistettu 0 sääntöjenvastaista viestiä.

    Luetuimmat keskustelut

    1. Katso: Ohhoh! Miina Äkkijyrkkä sai käskyn lähteä pois Farmi-kuvauksista -Kommentoi asiaa: "En ole.."

      Tämä oli shokkiyllätys. Oliko tässä kyse tosiaan siitä, että Äkkijyrkkä sanoi asioita suoraan vai mistä.... Tsemppiä, Mi
      Tv-sarjat
      203
      8248
    2. Voi kun mies rapsuttaisit mua sieltä

      Saisit myös sormiisi ihanan tuoksukasta rakkauden mahlaa.👄
      Ikävä
      42
      4668
    3. Poliisiauto Omasp:n edessä parkissa

      Poliisiauto oli parkissa monta tuntia Seinäjoen konttorin edessä tänään. Haettiinko joku tai jotain pankista tutkittavak
      Seinäjoki
      28
      2240
    4. Haluan jutella kanssasi Nainen

      Olisiko jo aika tavata ja avata tunteemme...On niin paljon asioita joihin molemmat ehkä haluaisimme saada vastaukset...O
      Ikävä
      19
      2148
    5. Onko mies niin,

      että sinulle ei riitä yksi nainen? Minulle suhde tarkoittaa sitoutumista, tosin eihän se vankila saa olla kummallekaan.
      Tunteet
      28
      1945
    6. Armi Aavikko Malmin hautausmaa

      Haudattiinko Armi arkussa Malmin hautausmaalle vai tuhkattiinko hänet? Kuka tietää asiasta oikein?
      Kotimaiset julkkisjuorut
      40
      1825
    7. Voitasko leikkiä jotain tunnisteleikkiä?

      Tietäisi ketä täällä käy kaipaamassa.. kerro jotain mikä liittyy sinuun ja häneen eikä muut tiedä. Vastaan itsekin kohta
      Ikävä
      77
      1746
    8. Haluisin suudella ja huokailla

      ja purra kaulaasi ja rakastella sinua. Haluisin puristella rintojasi ja pakaroitasi. Ei sinulla taida olla kuitenkaan ni
      Ikävä
      23
      1736
    9. Tietysti jokainen ansaitsee

      Hän varmasti ansaitsee vain parasta ja sopivinta tietenkin, suon sen onnen hänelle enemmän kuin mielelläni. Aika on nyt
      Ikävä
      17
      1653
    10. Miksi näin?

      Miksi vihervassut haluaa maahan porukkaa jonka pyhä kirja kieltää sopeutumisen vääräuskoisten keskuuteen? Näin kotoutumi
      Maailman menoa
      39
      1458
    Aihe