Avatar billede pcdl Nybegynder
14. januar 2008 - 09:40 Der er 8 kommentarer og
1 løsning

Python hjælp til mit script

Har et script som regner gennemsnittet ud af ens karakter det virker fint nok så er jeg ved at lave et script som udskriver karaktererne i søjler der er bare et lille problem der nogen der kan hjælpe den skriver "name 'karakterliste' is not defined

####SCRIPT####


import sys, pygame

def karakter():
    karakterliste=[]
    alle_karakter=[-3,0,2,4,7,10,12]
    samlet=0
    count=0
    while (True):
        karakter = raw_input("Indtast karakter %d :" % count)
        if karakter == '.':
            samlet2=samlet/ count
            print "Tak, du har indtastet", count, "karaktere og karaktergennemsnittet er", samlet2 , "."
            break
        ikarakter=int(karakter)
        if ikarakter in alle_karakter:
            count=count+1
            samlet=samlet+ikarakter
            karakter2 = ikarakter*10
            # tilfoj ikarakter til listen karakterliste, append
            karakterliste.append(ikarakter)
            print karakterliste
        else:
            print 'Fejl, denne karakter eksistere ikke.'
    return karakterliste
           
def diagram(karakterliste):
        size = width, height = 640, 480

        white = 255,255,255
        blue = 0, 0, 255
        green = 0, 255, 0
        red = 255, 0, 0
        test = 100, 100, 10, 10
       
        pygame.init()
        screen = pygame.display.set_mode(size)

        screen.fill(white)
       
        pygame.draw.rect(screen,blue,0)

        pygame.display.flip()  # vis det som er tegnet

        raw_input('Tryk enter for at stoppe programmet.')

if __name__ == '__main__':
    karakter()
    diagram(karakterliste)
    print
    print "Lavet af Jimmy Christensen - 2008"
    print
    raw_input("Tryk paa enter for at afslutte >>>")
Avatar billede arne_v Ekspert
14. januar 2008 - 13:30 #1
def karakter():
    ...
    return karakterliste
...
    karakterliste = karakter()
    diagram(karakterliste)
...
Avatar billede arne_v Ekspert
14. januar 2008 - 13:30 #2
Det er muligvis ikke den mest pythonske måde at gøre det på, men det virker.
Avatar billede bauerdata Nybegynder
14. januar 2008 - 13:44 #3
import sys, pygame

def karakter():
    karakterliste=[]
    alle_karakter=[-3,0,2,4,7,10,12]
    samlet=0
    count=0
    print "slut af med ."
    while (True):
        karakter = raw_input("Indtast karakter %d :" % count)
        if karakter == '.':
            break
        try:
            ikarakter=int(karakter)
        except:
            print 'Fejl, denne karakter eksisterer ikke. Brug ',alle_karakter
            continue
        if ikarakter in alle_karakter:
            # tilfoj ikarakter til listen karakterliste, append
            karakterliste.append(ikarakter)
            print karakterliste
        else:
            print 'Fejl, denne karakter eksisterer ikke. Brug ',alle_karakter

    if len( karakterliste ) > 0:
        Antal = len( karakterliste )
        Gns  = sum(karakterliste)/Antal+0.0
        print "Tak, du har indtastet %(Antal)s karakterer og karaktergennemsnittet er %(Gns)s." % vars()
    else:
        print "Tak, du har indtastet 0 karakterer"
    return karakterliste

def diagram(karakterliste):
    size = width, height = 640, 480

    white = 255,255,255
    blue = 0, 0, 255
    green = 0, 255, 0
    red = 255, 0, 0
    test = 100, 100, 10, 10

    pygame.init()
    screen = pygame.display.set_mode(size)

    screen.fill(white)

    pygame.draw.rect(screen,blue,0)

    pygame.display.flip()  # vis det som er tegnet

    raw_input('Tryk enter for at stoppe programmet.')

if __name__ == '__main__':
    karakterliste = karakter()
    print
    print "Lavet af Jimmy Christensen - 2008"
    print
    diagram(karakterliste)
    raw_input("Tryk paa enter for at afslutte >>>")
Avatar billede bauerdata Nybegynder
14. januar 2008 - 13:50 #4
Du kan fjerne linerne med
    samlet=0
    count=0
Avatar billede arne_v Ekspert
14. januar 2008 - 14:58 #5
og et svar fra mig
Avatar billede bauerdata Nybegynder
14. januar 2008 - 18:49 #6
c/Gns  = sum(karakterliste)/Antal+0.0/Gns  = sum(karakterliste)/float(Antal)/
Avatar billede pcdl Nybegynder
28. februar 2008 - 14:46 #7
lukker
Avatar billede pcdl Nybegynder
28. februar 2008 - 14:46 #8
lukker
Avatar billede arne_v Ekspert
28. februar 2008 - 15:17 #9
og hvorfor er det lige at du selv tager point her ?
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview
Kategori
Kurser inden for grundlæggende programmering

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester