Välkommen till linuxportalen.se!

Linuxportalen.se är Sveriges största och aktivaste webbplats för användare av öppen- och fri programvara.

Du besöker Linuxportalen.se som gäst vilket begränsar din möjlighet att använda webbplatsens alla funktioner. Genom att registera dig som medlem får du inte bara möjlighet att söka bland webbplatsens innehåll, skapa nya och delta i befintliga diskussioner, skapa din egen blogg, kommunicera med andra medlemmar genom privata meddelanden och delta i omröstningar. Du får också tillgång till Veckans Kadavro - en seriestrip unikt skapad för Linuxportalen.se!

Registeringen sker snabbt och är helt kostnadsfri - tveka inte, bli medlem idag!

while python

import urllib.request

import time

def get_price():

        time.sleep(10)

        page = urllib.request.urlopen("http://www.beans-r-us.biz/prices.html")

        text = page.read() .decode("utf8")

        where = text.find(">$")

        start_of_price = where + 2

        end_of_price = where + 6

        return float(text[start_of_price:end_of_price])

price_now = input("Price now?[Y/N]")

if price_now == "Y":

print(get_price())

else:

price = 99.99

while price > 4.74:

time.sleep(10)

price = get_price()

print ("Buy now for", price)

Jag har läst å läst, om å om igen, flera böcker, den jag köpte nu är riktigt bra (HEAD FIRST PROGRAMMING) men det hjälper inte hur bra en bok är när det kommer till just while. Det här med while-loop går ta mig fan ALDRIG in i min trånga skalle. Efter else:? Varför slutar aldrig loopen? (den ska inte sluta heller iof). Loopen börjar väl vid while? eller börjar den efter else:, är det price = 99.99 som drar igång loopen hela tiden? Jag skulle behöva en enkel utförd svensk förklaring steg för steg....DET GÅR BARA INTE IN!

Tack!

 

Alternativ för kommentarvisning

Välj ditt önskade sätt att visa kommentarerna och klicka på "Spara" för att verkställa dina ändringar.

leochingkwakes bild

Här har du en bra svensk bok som inte är så gammal: http://www.adlibris.com/se/product.aspx?isbn=9144045204

while är jag inte så haj på men if och else används väl när man vill ha respons för nåt

om (if) svar ja
 utför följande
 bryt: (break)
annars (else)
 utför följande

Sen kan man ju sätta in en "break" för att bryta loopen som startar när programmet/scriptet startar...  Var ett tag sen jag grejade med python nu

 

krippas bild

 Jag köpte just den OCH head first programming från adlibris:)

Den förstnänmda boken behandlar ju 2.6 och den andra python 3, så jag har valt p3...

Behöver du en erfaren snickare? Kontakta mig på 0735462046 eller maila larssons.byggtjanst@gmail.com

leochingkwakes bild

ok, där ser man Smile

leochingkwakes bild

forslunds bild

Hur är det med identeringen? Har den bara försvunnit i inlägget eller har du missat den?

while hell.temp > 0:
  date_you(FALSE)
  time.sleep(10)
  hell.update_temp()

date_you(TRUE)

I exemplet ovan kommer jag inte dejta dig så länge helvetet inte frusit till is (temperaturen är över 0 grader). Annars är det bara att sätta igång och debugga (kontrollera att priset verkligen understiger 4.47 i någon gång).

/Åke

 

I am not a number, I am a free man!

krippas bild

 Hehe...fint exempel!

indenteringen är rätt(4 space). Men om man skriver så här:

price_now = input ("Do you want a price now?[Y/N]")

 

if price_now == "Y":

print(get_price)

else:

price = 99.99 #Så som jag ser det så börjar while om här varje gång

while price > 4.74: # Men Python läser ju rad för rad, Python borde ju hoppa till denna raden efter print?

time.sleep(15)

price = get_price()

                print("Buy for $", price)

 

 

 

Behöver du en erfaren snickare? Kontakta mig på 0735462046 eller maila larssons.byggtjanst@gmail.com

Kristians bild

 

Det ska nog vara

if price_now == "Y":

    print(get_price())

else:

    price = 99.99

    while price > 4.74:

        time.sleep(10)

        price = get_price()

Trycker du "Y" får du aktuellt pris, annars pollar den priset var tionde sekund och avslutar inte förrän priset är under 4.74.  Så nej, loopen avbryts inte förrän priset är lågt nog. Förmodligen vill ha lägga in en annan spärr, typ

    MAX_RETRIES = 10

    num_retries = 0

    while price > 4.74 and num_retries < MAX_RETRIES:

        time.sleep(10)

        price = get_price()

        num_retries = num_retries + 1

---------------------------------------

 

krippas bild

 Varför ska man vilja att den slutar om priset är billigare än 4.74, tycker ju att den ska loopa tills priset är under 4.74 för att sedan printa det aktuella priset...Jag har inte blivit så mycket klokare. Varför loopar den om hela tiden?

 

 

Behöver du en erfaren snickare? Kontakta mig på 0735462046 eller maila larssons.byggtjanst@gmail.com

Kristians bild

 

 

 

price = 99.99

    while price > 4.74:

        time.sleep(10)

        price = get_price()

    print price

 

---------------------------------------

 

abergmans bild

För att priset inte undersriger 4.74?

 

 

Kristians bild

Just det.

---------------------------------------