Pereiti prie turinio

Python kodas. Ne iki galo veikia


Rekomenduojami pranešimai

Mokausi iš knygos HeadFirst Programming ir esu šiek tiek užstrigęs su šiuo kodu:

 

 

import urllib.request

 

import time

 

def get_price() :

 

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 = start_of_price + 4

 

return float(text[start_of_price:end_of_price])

 

 

 

price_now = input("Would you like to see the price now (Y/N) ?")

 

if price_now == "y":

 

print(get_price())

 

else:

 

price = 99.99

 

while price>4.74:

 

time.sleep(900)

 

price = get_price()

 

print("Buy!!")

 

 

Žodžiu, kai renkuosi option 1 - t.y kad kainą spausdintų iš karto - viskas veikia. Jei renkuosi, kad parašytų "buy!", kai kaina nukrenta žemiau nurodytos - programa tiesiog veikia ir to išsvajotojo "buy" neparašo. Kitaip tariant IF veikia, ELSE nelabai.

 

Kame problema?

 

P.S naudoju 3.2.2 Python versiją. Knygoj naudojama 3.1

Nuoroda į pranešimą
Dalintis kituose puslapiuose

price = 99.99

ir tada iškart

while price>4.74:
   time.sleep(900)

 

EDIT: o gal ten buvo šitaip??

while price>4.74:
   time.sleep(900)
   price = get_price()

Jei taip, tai gali be problemų debuggint tiesiog kas kart išspausdindamas kainą.

Pasiūlymas:

...
else:
   price = get_price()
   while price > 4.74:
       time.sleep(900) #Turėk omeny, jog čia laukti reik 900 sekundžių, tai ne minutė ir ne dvi.
       price = get_price()

 

Mano kodas: https://gist.github.com/ac0bb257a75976eff2cc

Redagavo nagisa
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Ačiū labai! Man atrodo susipratau kur problema, kai tavo kodą pamačiau. Gali būt, kad sugrybavau, nes parašiau šitaip:

 

else:
   price = 99.99
   while price>7:
       time.sleep(15)
       price = get_price()
print("Buy!!")

 

o ne:

 

else:
   price = 99.99
   while price>7:
       time.sleep(15)
       price = get_price()
   print("Buy!!")

 

dėl to man programa, nors ir rasdavo tą kainą, jos tiesiog neišspausdindavo niekad.

 

O kad 900 sekundžių yra ne minutė ir ne dvi tai žinau, aš specialiai nustačiau, kad 15 būtų, nes kas 15 min ten kainos atsinaujina tai serverio bereikalo savo užklausom neužkrautų

Redagavo Justinas
Nuoroda į pranešimą
Dalintis kituose puslapiuose

Prisijunkite prie diskusijos

Jūs galite rašyti dabar, o registruotis vėliau. Jeigu turite paskyrą, prisijunkite dabar, kad rašytumėte iš savo paskyros.

Svečias
Parašykite atsakymą...

×   Įdėta kaip raiškusis tekstas.   Atkurti formatavimą

  Only 75 emoji are allowed.

×   Nuorodos turinys įdėtas automatiškai.   Rodyti kaip įprastą nuorodą

×   Jūsų anksčiau įrašytas turinys buvo atkurtas.   Išvalyti redaktorių

×   You cannot paste images directly. Upload or insert images from URL.

Įkraunama...
  • Dabar naršo   0 narių

    Nei vienas registruotas narys šiuo metu nežiūri šio puslapio.

  • Prisijunk prie bendruomenės dabar!

    Uždarbis.lt nariai domisi verslo, IT ir asmeninio tobulėjimo temomis, kartu sprendžia problemas, dalinasi žiniomis ir idėjomis, sutinka būsimus verslo partnerius ir dalyvauja gyvuose susitikimuose.

    Užsiregistruok dabar ir galėsi:

    ✔️ Dalyvauti diskusijose;

    ✔️ Kurti naujas temas;

    ✔️ Rašyti atsakymus;

    ✔️ Vertinti kitų žmonių pranešimus;

    ✔️ Susisiekti su bet kuriuo nariu asmeniškai;

    ✔️ Naudotis tamsia dizaino versija;

    ir dar daugiau.

    Registracija trunka ~30 sek. ir yra visiškai nemokama.

  • Naujausios temos

  • Karštos temos

×
×
  • Pasirinkite naujai kuriamo turinio tipą...