Menyval 11 Kmom03

  • Författare
  • Meddelande

ludwigher

css-hackare

  • Inlägg: 22
  • Blev medlem: 04 sep 2018, 10:37

Menyval 11 Kmom03

Inlägg19 sep 2018, 11:55

Hej,

Hur ska jag gå tillväga? Ser inte riktigt hur menyval 3 skall kunna hjälpa med detta?
Hur "bryter" jag ut?
//Ludwig
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: Menyval 11 Kmom03

Inlägg19 sep 2018, 13:24

I menyval 3 har du skapat en funktion som multiplicerar en sträng/karaktärer X antal gånger för att bygga upp en ny sträng där första strängen är repeterad X antal gånger.
I menyval 11 ska du skapa en funktione där du ersätter X antal siffror/karaktärer i en sträng till "#". Tanken med uppgiften är att du ska bygga en funktion som kan multiplicera en sträng för att skapa en ny och den funktionen ska användas både för menyval 3 och 11. Alltså behöver du b.la. kunna skicka in argument till den och returnera värdet.
Hoppas det förtydligade.

ludwigher

css-hackare

  • Inlägg: 22
  • Blev medlem: 04 sep 2018, 10:37

Re: Menyval 11 Kmom03

Inlägg19 sep 2018, 13:48

Den biten tror jag att jag har fått fungera, (bryta ut koden till en egen funktion)

Kod: Markera allt
def wordxTimes(x, y):
    sumTimes = x * y
    return sumTimes


Men kan inte förstår hur jag ska gå tillväga för att implementera denna på menyval 11 för att dölja alla karaktärer utom de sista fyra..
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: Menyval 11 Kmom03

Inlägg19 sep 2018, 14:04

Vi vet att de fyra sista siffrorna i strängen ska vara som kvar som innan och alla i början ska göras om. Du behöver dela på strängen och skicka in första halvan till den nya funktionen. Strängen du får tillbaka från funktionen ska du konkatenera med andra halvan av orginal strängen.

ludwigher

css-hackare

  • Inlägg: 22
  • Blev medlem: 04 sep 2018, 10:37

Re: Menyval 11 Kmom03

Inlägg19 sep 2018, 15:01

Önskade att det hjälpte.. Jag förstår vad som ska lösas, men inte hur jag ska göra det. Jag förstår specifikt inte var "multiplikationen" från den nya funktionen som bröts ut ska vara till hjälp i hur jag ersätter alla förutom de sista orden med ett #, har lättare att se hur det löses utan den, det är väl mest där problem kommer in!

EDIT:

Jag lyckades lösa till slut.. tack för hjälpen!

Nicklas Forsell

html-kodare

  • Inlägg: 17
  • Blev medlem: 27 aug 2018, 14:32

Re: Menyval 11 Kmom03

Inlägg19 sep 2018, 21:58

Jag håller med. Uppgiften är väldigt förvirrande. Jag förstår fortfarande inte vad som menas. Kan ni skriva om den eller visa med exempel vad som skall hända.
MVH
Nicklas
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: Menyval 11 Kmom03

Inlägg20 sep 2018, 10:17

Nedanför kan ni se en lösning på menyval 11 och hur man ska dela upp koden på ett bra sätt.
pass är bara utfyllnads ord för att jag inte ska behöva skriva kod för de menyvalen.

Kod: Markera allt
def multiply_string(symbol, times):
    return symbol * times

def multiply_word():
    word = input("Enter word: ")
    times = input("Enter times to multiply: ")
    print(multiply_string(word, int(times)))

def mask_string():
    numbers = input("Enter numbers: ")
    first = numbers[:-4]
    last = numbers[-4:]
    masked_numbers = multiply_string("#", len(first))
    print(masked_numbers + last)

def main():
    while True:
        print("ASCII image")
        choice = input("what to do: ")

        if choice == "q":
            pass
        elif choice == "1":
            pass
        elif choice == "2":
            pass
        elif choice == "3":
            multiply_word()
        elif choice == "4":
            pass
        elif choice == "5":
            pass
        elif choice == "6":
            pass
        elif choice == "7":
            pass
        elif choice == "8":
            pass
        elif choice == "9":
            pass
        elif choice == "10":
            pass
        elif choice == "11":
            mask_string()
main()

       

Nicklas Forsell

html-kodare

  • Inlägg: 17
  • Blev medlem: 27 aug 2018, 14:32

Re: Menyval 11 Kmom03

Inlägg20 sep 2018, 14:32

Ok. Då är jag med. Tack för hjälpen!
MVH
Nicklas Forsell

kryman

css-guru

  • Inlägg: 75
  • Blev medlem: 06 sep 2018, 14:28

Re: Menyval 11 Kmom03

Inlägg21 sep 2018, 13:36

Frågan från meny 3 tolkade jag annorlunda. Jag skrev bara ut antalet gånger i en "print()" i en upprepande loop tills längden på ordet tog slut. Tex.
Kod: Markera allt
for i in range(number):
  print(word)


Om inte titeln fanns i frågan "Ordmultiplicering." hade man inte alls kunnat tolka att det skulle nödvändigtvis multipliceras med input från användaren.

Jag gjorde inte det, tolkade alltså fel, fast titeln nu fanns med, för det står inte i frågan "Marvin ska fråga efter ett ord och en siffra och sedan skriva ut det ordet så många gånger." att man nödvändigtvis ska multiplicera ordet till en lång sträng.

Så efter jag klurade ett tag på meny 11, kom jag fram till en helt annan lösning. Den uppgiften blev klar, fast inte med blandade funktioner, och även där hittar jag inte orden i frågan att en tredje funktion skulle vara med, som din lösning visade: "def multiply_string(symbol, times):". Allt jag tolkade var att meny 3 och 11 ska bestå av samma funktion (att koden kopieras till respektive meny och får det på något sätt och vis att fungera med någon mindre ändring, till exempel en extra input eller något). Detta givetvis, gjorde mig mer förvirrad till hur jag i hela världen ska lyckas lösa båda uppgifterna med samma slags kod. Jag tog user input i meny 11, kastade in det i en lista, för att sen kunna ge varje karaktär i listan det värde jag vill. För en vanlig string (karaktär i en string) går inte att tilldela ett värde, tex. " user_input[2] = "#" ". Mina tester att försöka göra som du gjorde med att ta ut karaktärerna ur ett ord, fick jag inte att fungera. Jag försökte tex. att " user_input.replace(user_input[:-4], "#") utanför och innanför en loop (tex. samma syntax nästan fast " ...(user_input[i]...) ". Det gick bara inte. Snurrig som jag blev av allt detta, kom jag till insikt att en sträng inte går att dela upp på det sätt jag beskrev ovan, så då började jag ge mig på i manualen hur listor (förmodar array) fungerar.

Om du vill kan jag skicka lösningen på denna föregående.

Med allt detta skrivande från en förvirrad och simpel man, så ber jag till er ödmjukhet, ni som skriver uppgifterna, att förtydliga mycket mera och kanske kasta in fler exempel. För om en missuppfattat er intention i en uppgift, och lyckats lösa den på ett annat sätt, blir det svårare att tillämpa detta ifall det skall återanvändas på någon senare uppgift.

P.S. Jag tackar för lösningen.
Användarvisningsbild

Zeldah

dbwebb

  • Inlägg: 500
  • Blev medlem: 02 mar 2016, 10:17

Re: Menyval 11 Kmom03

Inlägg21 sep 2018, 13:55

Vi skriver upp det på att-göra listan inför nästa år.

chja18

html-kodare

  • Inlägg: 11
  • Blev medlem: 05 sep 2018, 18:25

Re: Menyval 11 Kmom03

Inlägg28 sep 2018, 21:18

Tolkade precis som kryman och kunde inte förstå hur jag skulle kunna använda något från menyval 3

Men nu när jag läser att menyval 3 går ut på att skapa en ny sträng (istället för print x ggr) med ursprungsordet multiplicerat x ggr så klarnar det genast.

Nu skriver jag om meny 3 så det fungerar som det är tänkt och kan använda samma funktion i val 3 och 11 (har trots detta redan fått godkänt för menyval 3)

Som tur var klurade jag inte på detta länge då jag utgick från att jag missuppfattat något då jag inte tyckte menyval 3 och 11 hörde ihop på något sätt, och hittade denna tråden...

För övrigt är uppgifterna mycket kreativa och får mig till den ena insikten efter den andra :) (Är ny inom detta) Mycket bra

Vilka är online

Användare som besöker denna kategori: Inga registrerade användare och 12 gäster