Arkadaşlar başlık pek açıklayıcı olmamış olabilir, yapmak istediğim ancak yapamadığım bir işlem var. Bir siteden canlı veri akışı çekiyorum ve bunu döngü içerisinde bir değişkene atıyorum. Mesela hava sıcaklığı verisi, eğer hava sıcaklığı 30 derece altında ise ekrana sürekli hava serin yazdır, ne zaman hava sıcaklığı 30 üstüne çıkarsa çıktığı anda ekrana hava ısınıyor yazdır, ancak bunu koşula bağlı olarak yapmak istiyorum, yani koşulun başlangıç şartı havanın 30 derecenin altında olması olacak, bunu pratik olarak nasıl yapabilirim, belki basit ama yeni olduğum için beceremedim.
Hocam bu kod çalışır, ama canlı veri çektiğim için bana gelen ilk veri diyelimki 32 derece olursa ekrana direk klimayi aç yazacak, benim istediğim hava 30 derecenin altında ise kod çalışsın ne zaman 30 derecenin üzerine çıkarsa ekrana klimayı aç yazsın. Hava zaten 30 derecenin üzerinde ise işlem yapmasın, 30'un altına inerse çalışmaya başlasın 30'un üstüne çıkınca ekrana klimayı aç yazsın.
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
while True:
hava_isisi = (veriyi bir siteden canlı çekiyorum)
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
break
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Çalışacağını düşünüyorum. 5 saniyede bir kontrol ediyor, 30'un altına düşerse "Hava serin." diyor, bu sefer 30'un üstüne çıkmasını bekliyor, 30'un üstüne çıkarsa "Klimayı aç." diyor, bu sefer yine 30'un altına düşmesini bekliyor, böyle gidiyor.
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Hocam 2. if cümlesini ilk if cümlesinin içine yazmışsınız, bu yüzden çalışmaz. Düzeltilmiş kod:
Python:
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
elif site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
time.sleep(5)
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Hocam 2. if cümlesini ilk if cümlesinin içine yazmışsınız, bu yüzden çalışmaz. Düzeltilmiş kod:
Python:
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
elif site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
time.sleep(5)
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Hocam bu kod çalışır, ama canlı veri çektiğim için bana gelen ilk gelen veri diyelimki 32 derece olursa ekrana direk klimayi aç yazacak, benim istediğim hava 30 derecenin altında ise kod çalışsın ne zaman 30 derecenin üzerine çıkarsa ekrana klimayı aç yazsın. Hava zaten 30 derecenin üzerinde ise işlem yapmasın, 30'un altına inerse çalışmaya başlasın 30'un üstüne çıkınca ekrana klimayı aç yazsın.
Hocam bu kod çalışır, ama canlı veri çektiğim için bana gelen ilk veri diyelimki 32 derece olursa ekrana direk klimayi aç yazacak, benim istediğim hava 30 derecenin altında ise kod çalışsın ne zaman 30 derecenin üzerine çıkarsa ekrana klimayı aç yazsın. Hava zaten 30 derecenin üzerinde ise işlem yapmasın, 30'un altına inerse çalışmaya başlasın 30'un üstüne çıkınca ekrana klimayı aç yazsın.
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
while True:
hava_isisi = (veriyi bir siteden canlı çekiyorum)
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
break
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Çalışacağını düşünüyorum. 5 saniyede bir kontrol ediyor, 30'un altına düşerse "Hava serin." diyor, bu sefer 30'un üstüne çıkmasını bekliyor, 30'un üstüne çıkarsa "Klimayı aç." diyor, bu sefer yine 30'un altına düşmesini bekliyor, böyle gidiyor.
Genel algoritma bu şekilde, hayal gücünüze göre kendi yorumunuzu katabilirsiniz.
Python:
import requests
from bs4 import BeautifulSoup
headers = {"User-Agent": "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/88.0.4324.111 YaBrowser/21.2.1.108 Yowser/2.5 Safari/537.36"}
while True:
#veri google dan çekilecek.
url="https://www.google.com.tr/search?q=hava+durumu"
#requests ile istek gönderilen kısım
r_get=requests.get(url,headers=headers)
#BeautifulSoup ile veriyi parçaladığımız kısım
soup=BeautifulSoup(r_get.content,"html.parser")
soup1=int(soup.find("span",{"id":"wob_tm"}).get_text())
print(f"Hava bugün {soup1} derece!")
if soup1<30:
print("Hava serin")
elif soup1 > 30:
print("Klimayi ac")
else:
pass
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
while True:
hava_isisi = (veriyi bir siteden canlı çekiyorum)
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
break
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Çalışacağını düşünüyorum. 5 saniyede bir kontrol ediyor, 30'un altına düşerse "Hava serin." diyor, bu sefer 30'un üstüne çıkmasını bekliyor, 30'un üstüne çıkarsa "Klimayı aç." diyor, bu sefer yine 30'un altına düşmesini bekliyor, böyle gidiyor.
while True:
try:
## uzun olduğu için sadece yapamadığım kısmın kodlarını yazıyorum
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
while True:
hava_isisi = (veriyi bir siteden canlı çekiyorum)
time.sleep(5)
if site_durumu == 1 and hava_isisi > 30
print("klimayi ac")
break
## Burada kodun başlama şartı havanin 30 derecenin altında olması olacak, hava 30 derece altından 30 derece üstüne çıktığı anda ekrana klimayi aç yazacak
Çalışacağını düşünüyorum. 5 saniyede bir kontrol ediyor, 30'un altına düşerse "Hava serin." diyor, bu sefer 30'un üstüne çıkmasını bekliyor, 30'un üstüne çıkarsa "Klimayı aç." diyor, bu sefer yine 30'un altına düşmesini bekliyor, böyle gidiyor.
Hocam bir süre izledim ancak döngü tek sefer çalışıp duruyor sebebini anlamadım, yani tek kontrol yapıyor klimayı aç dedikten sonra değer tekrar 30'un altına indiği halde işlem yapmıyor ve hava serin yazmıyor.
Hocam bir süre izledim ancak döngü tek sefer çalışıp duruyor sebebini anlamadım, yani tek kontrol yapıyor klimayı aç dedikten sonra değer tekrar 30'un altına indiği halde işlem yapmıyor ve hava serin yazmıyor.
Sanırım break komutu direkt tüm while döngülerini bitiriyor. Şunu dener misin?
Python:
while True:
try:
site_durumu = (sitenin online olup olmadığını kontrol ediyorum)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi < 30:
print("hava serin")
time.sleep(5)
while hava_isisi < 30:
hava_isisi = (veriyi bir siteden canlı çekiyorum)
time.sleep(5)
hava_isisi = (veriyi bir siteden canlı çekiyorum)
if site_durumu == 1 and hava_isisi > 30:
print("klimayi ac")