kmom03 marvin2

  • Författare
  • Meddelande

Daniel17

*nix-hackare

  • Inlägg: 114
  • Blev medlem: 03 sep 2017, 13:05

kmom03 marvin2

Inlägg08 okt 2018, 00:26

Hej
Jag får inte menyval 11 rätt när man ska omvandla funktionaliteten till en funktion. Jag verkar få problem med definitioner av variabler där det blir moment 22. variabeln strg förblir tom eftersom jag måste definiera variabeln letter innan jag sätter ett värde på den i funktionen choiceThree. Vad gör jag för tankefel?

koden:
Kod: Markera allt
def copy():
    strg = ""
    letters = 0
    for i in range(letters):
        strg += add
    print(strg)

def choiceThree():
    """
    Word magic
    """
    string = input("Tell me a word and a number: (word,number) ")
    words = string.split(",")
    a = ""
    a = words[1]
    letters = 0
    letters = int(a)
    add = words[0]
    strg = ""

    copy()
Användarvisningsbild

Zeldah

dbwebb

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

Re: kmom03 marvin2

Inlägg08 okt 2018, 07:48

Jag förstår inte riktigt ditt problem, var förblir strg tom?
Du skapar strg i funktionen "choiceThree" men du använder den aldrig i den funktionen. Sen anropar du "copy" där du igen skapar en strg variabel.
Du bör inte skapa strg i "coiceThree" bara för att det ska finnas en variabel med det namnet i "copy". Funktioner har egna scope och då behöver du bara skapa det som ska finnas i funktionen i funktionen. strg flyttas inte in i "copy" bara för att du skapar den i "choiceThree".

Din for-loop i "copy" gör inget, om du testar lägger in en extra print i loopen, så borden den aldrig skriva ut.

För tips på hur man kan lösa uppgiften kan du kolla i en gammal tråd om samma uppgift, viewtopic.php?f=44&t=7677&p=61975&hilit=11#p61516.

Vilka är online

Användare som besöker denna kategori: Bing [Bot] och 11 gäster