6 svar
142 visningar
destiny99 är nöjd med hjälpen
destiny99 Online 7080
Postad: 6 aug 2023 11:33 Redigerad: 6 aug 2023 11:42

Def funktion övning

Hej!

Jag skapade en kod vars syfte är att den ska göra utskriften Hello Mahiya Mohammed men det går ej riktigt bra då den istället skriver paramaterna istället. Den skriver alltså ut Hello first_name last_name

Laguna Online 28704
Postad: 6 aug 2023 11:51

Ja, strängen "first_name last_name" innehåller precis det. Inga variabelvärden slås upp.

Det finns många sätt att stoppa in variabelvärden i en sträng. Det här är kanske det enklaste:

x1 = first_name + " " + last_name

destiny99 Online 7080
Postad: 6 aug 2023 12:08 Redigerad: 6 aug 2023 12:17
Laguna skrev:

Ja, strängen "first_name last_name" innehåller precis det. Inga variabelvärden slås upp.

Det finns många sätt att stoppa in variabelvärden i en sträng. Det här är kanske det enklaste:

x1 = first_name + " " + last_name

Men jag hänger ej med. Kommer det här sättet som du skrev ge mig rätt utskrift jag är ute efter? Vad innebär det när du skriver first_name +" " +last_name?  Mer specifikt "+"?

Fermatrix 7841 – Fd. Medlem
Postad: 6 aug 2023 17:05 Redigerad: 6 aug 2023 17:29

Du returnerar ju en sträng "first_name last_name", du använder inte dina argument. 

En annan kommentar är att det är ett krånligt sätt att göra det på, men om du verkligen vill göra det på de sättet så kan man göra följande:

def greeting_user(first_name, last_name):
    return f'{first_name} {last_name}'


print(f'Hello {greeting_user("Mahiya", "Mohammed")}')

Vi har pratat om formatering av strängar förr, så det ska inte vara något konstigt. Jag stressar det igen dock, problemet ligger i att du har skapat en sträng med innehållet first_name och last_name, du kan likaväl ta bort argumenten så ser du att precis samma sak kommer skrivas ut.

Annars kan du också göra:

def greeting_user(first_name, last_name):
    return f'Hello {first_name} {last_name}'


print(greeting_user("Mahiya", "Mohammed"))

Lagunas metod kallas för string concatenation, du kan se det som att "addera" strängar. Det fungerar också! 

Exempelvis:

def greeting_user(first_name, last_name):
    return " ".join([first_name, last_name])


print(f'Hello {greeting_user("Mahiya", "Mohammed")}')

Och återigen, man kan slänga in "hello" i greeting_user.

destiny99 Online 7080
Postad: 6 aug 2023 20:33 Redigerad: 6 aug 2023 20:36
Dracaena skrev:

Du returnerar ju en sträng "first_name last_name", du använder inte dina argument. 

En annan kommentar är att det är ett krånligt sätt att göra det på, men om du verkligen vill göra det på de sättet så kan man göra följande:

def greeting_user(first_name, last_name):
    return f'{first_name} {last_name}'


print(f'Hello {greeting_user("Mahiya", "Mohammed")}')

Vi har pratat om formatering av strängar förr, så det ska inte vara något konstigt. Jag stressar det igen dock, problemet ligger i att du har skapat en sträng med innehållet first_name och last_name, du kan likaväl ta bort argumenten så ser du att precis samma sak kommer skrivas ut.

Annars kan du också göra:

def greeting_user(first_name, last_name):
    return f'Hello {first_name} {last_name}'


print(greeting_user("Mahiya", "Mohammed"))

Lagunas metod kallas för string concatenation, du kan se det som att "addera" strängar. Det fungerar också! 

Exempelvis:

def greeting_user(first_name, last_name):
    return " ".join([first_name, last_name])


print(f'Hello {greeting_user("Mahiya", "Mohammed")}')

Och återigen, man kan slänga in "hello" i greeting_user.

Problemet är att jag kommer ej på att man ska göra de här sätten som du föreslår då jag kollat en genomgång om funktioner och skapar något utifrån ett exempel youtubern tagit upp och leker runt bara. Sen glömmer jag gamla genomgångar som varit och då fastnar med koden för att jag tänkte ej på att man kunde använda grejerna från föreläsningarna för att tex skriva format string. Format string har jag bara sett inom print tex vilket är nytt för mig när du säger att den står bredvid return. Angående att mitt sätt jag började på verkar krånglig tänkte jag ej mycket på utan jag bara testade att skapa något för att göra en utskrift. Håller med om att ditt sätt verkar enklare med format strings

Fermatrix 7841 – Fd. Medlem
Postad: 7 aug 2023 00:24

Det finns något som kallas "tutorial hell", sök upp det!

Mitt tips är att du behöver öva mycket mer. Det är bra att kolla på Youtube etc, men det är vanligt att man hamnar i en situation att han kollar på en video och tycker lösningen är super enkel. Sedan när man själv ska skriva kod så låser det sig direkt. Man måste öva öva öva. Detta är likt matematik, även trots jag tycker programmering kräver mer övning då du inre bara kan hoppas på att formler gör jobbet åt dig. Om du tycker det är svårt, försöker jobba lite varje dag. Sedan kan du alltid fråga här så försöker vi hjälpa dig förstå så mycket som möjligt. 

destiny99 Online 7080
Postad: 9 aug 2023 12:00
Dracaena skrev:

Det finns något som kallas "tutorial hell", sök upp det!

Mitt tips är att du behöver öva mycket mer. Det är bra att kolla på Youtube etc, men det är vanligt att man hamnar i en situation att han kollar på en video och tycker lösningen är super enkel. Sedan när man själv ska skriva kod så låser det sig direkt. Man måste öva öva öva. Detta är likt matematik, även trots jag tycker programmering kräver mer övning då du inre bara kan hoppas på att formler gör jobbet åt dig. Om du tycker det är svårt, försöker jobba lite varje dag. Sedan kan du alltid fråga här så försöker vi hjälpa dig förstå så mycket som möjligt. 

Ja absolut det ska jag göra. Jag övar på lite varje dag :) 

Svara Avbryt
Close