Meddelande

Minska
No announcement yet.

#Python Ta en titt på denna kod! Hjälp!

Minska
X
  • Filter
  • Klockan
  • Show
Clear All
new posts

  • #Python Ta en titt på denna kod! Hjälp!

    Jag har försökt fått mina variabler "u_lage" "u_skil" "u_diff" "i_till" till värden som fungerar i denna funktion.
    Om jag gör int(input()) så kan jag inte använda mig av 0.0 värden, och använder jag float(input()) så funkar inte dessa i min beräkning konstigt nog!


    Python 3.0 är det som gäller

    Kod:
    def testa():
            print(
                    '\n\n\n'
                    'Talföljder'
                    '\n'
    
                    )
    
            # utgångsvärden 
            u_lage = float(input('Ange det första utgångsvärdet: '))
            print(
                    '\n\nVälj skiljetecken\n'
                    '1) Addition\n'
                    '2) Substaration\n'
                    '3) Multiplikation\n'
                  )
            u_skil = float(input('Vad ska skiljetecket vara: '))
            u_diff = float(input('Ange värdet för differens: '))
            
            # intervall
            i_till = float(input('Vilket intervall: '))
            i_till += 1 
    
            int(u_lage)
            int(u_skil)
            int(u_diff)
            int(i_till)
            
            # confirm
            print(
                    '\n#####################\n'
                    'Du har valt följande:\n'
                    'Från talet', u_lage, 'ska det', '(', u_skil, ') med', u_diff,
                    'i intervallet', i_till - 1, '\n'
                    '\nStämmer detta? \n"j" = ja \n"n"= nej'
                    )
            con = input('Välj: ')
            if con == 'j':
                    print('Räknar...\n\n')
            elif con == 'n':
                    print('Skickas tillbaka...\n\n')
                    return 0
    
            
            # for loop
            
    
            y = u_lage
            for x in range(1, i_till):
                    if x < 10:
                            print('x=', x, ' y=', y)
                    else:
                            print('x=', x, 'y=', y)
    
                    if u_skil == '1':
                            y = y + u_diff
                    elif u_skil == '2':
                            y = y - u_diff
                    elif u_skil == '3':
                            y = y * u_diff
                    else:
                            import time
                            time.sleep(1)
                            print ('ERROR...')
                            time.sleep(1)
                            print ('Du kan bara välja angivna skiljetecken!')
                            time.sleep(1)
                            print ('Laddar nästa...\n\n\n')
                            time.sleep(3)
                            return 0

  • #2
    Jag vet inte om det kommer att lösa dina problem fullt ut, men jag ser omdelebart två problem.
    1) [kod] int(u_lage)
    int(u_skil)
    int(u_diff)
    int(i_till)[/kod]Denna kod gör "ingenting". Variabelns värde koverteras till int, och sedan kastas värdet bort, och variabeln är oförändrad. Du måste tilldela variabeln det nya värdet för att det ska vara någon mening med det.[kod] int(u_lage)
    u_skil = int(u_skil)
    u_diff = int(u_diff)
    i_till = int(i_till)[/kod]
    2)[kod] if u_skil == '1':[/kod]osv.

    Eftersom u_skil inte kommer att vara en sträng utan ett nummer kommer de jämförelserna alltid att vara falska, och koden kommer alltid hamna i "else" oavsett värde på på u_skil. Ändra till if u_skil == 1: osv.

    För övrigt, int är heltal (0, 1, 3, 42, -1337 osv) medan float även kan innehålla tal med decimaler. Du bör använda den typ som passar dina behov.

    Sen kunde koden ha varit snyggare på olika sätt, men där har du nog de problem som gör att din kod inte funkar.
    Gameboy Genius - Foto: Gatukonst och elektronikporr
    Internklippning:
    1) Snaggning av fångar.
    2) Klippning frisörer emellan.

    Kommentera

    Working...
    X