Şimdi Ara

Python Soru & Cevap (5. sayfa)

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
237
Cevap
12
Favori
14.804
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: önceki 34567
Sayfaya Git
Git
sonraki
Giriş
Mesaj
  • quote:

    Orijinalden alıntı: berk327tr


    quote:

    Orijinalden alıntı: GhilleintheMist

    quote:

    Orijinalden alıntı: berk327tr

    Benim de bir sorum var ben istihza sitesinin yazarı Fırat beyin kitabini okudum tamamen şimdi python konusunda uzman olmak iyi projeler geliştirmek istiyorum bunu nasıl yapabilirim ?

    Not :Lütfen basit cevaplar verip sorumu kestirip atmayınız sizden ayrıntılı cevap bekliyorum

    ProjectEuler tarzı bi sitede algoritma yeteneğini geliştir. "tamam" olduğun zaman github'tan python projesi bul. onu incele öğren, bugları incele fixlemeye çalış falan

    öncelikle teşekkürler project euler deki soruları çözdükçe algoritma yeteneğim kendiliğinden gelişir mi ?

    tabiki de yani en kötü ihtimalle çözemezsin araştırıp yöntemler öğrenirsin. mesela ben recursive, dynamic prograaming gibi şeyleri projecteuler'deki sorularla öğrendim




  • quote:

    Orijinalden alıntı: DocZ

    bu windows api'siyle alakalı. GetAsyncKeyState Short türünde veri döndürüyor (16 bit). 2^15 = 32768 tuşa bastığınızda MSB (most significant bit) ayarlanınca da dönen sayı negatif olmuş oluyor.

    şurada açıklanmış:
    http://msdn.microsoft.com/en-us/library/windows/desktop/ms646293(v=vs.85).aspx

    hocam çok sağol oturdu gibi şimdi. ama benim sorularım bitmiyor :P
    şimdi ben örneğin bir oyunda bi tuşa basılmış gibi yapmayı istiyorum. mesela ben J'ye basınca actif olan pencerede enter+s+s+enter yapıcak. böylece mesela lolde chate ss yazmış olucak. keybd_event la denedim fakat olmadı. ama şöyle birşey var. mesela oyunda kendim enter'a basıp ss yazması için kod yazarsam bu sefer ss yazıyor. ama enter'a basma olayı olmuyor. neden olabilir? directxle bir alakası var mıdır?
    bu arada sizi de yorduysam affola :)




  • ben de öğreniyorum bazı şeyler :) şöyle bir şey denedin mi?

     
    import win32com.client, win32api
    shell = win32com.client.Dispatch("WScript.Shell")

    while True:
    if win32api.GetAsyncKeyState(ord('H')) & 0x7fff :
    shell.SendKeys("~ss~")


    yukarıdaki kod pek verimli değil, cpuyu boşa kullanıyor. pyhook modülünü incele derim.
    http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page



    < Bu mesaj bu kişi tarafından değiştirildi DocZ -- 29 Temmuz 2013; 1:33:54 >
  • quote:

    Orijinalden alıntı: DocZ

    ben de öğreniyorum bazı şeyler :) şöyle bir şey denedin mi?

     
    import win32com.client, win32api
    shell = win32com.client.Dispatch("WScript.Shell")

    while True:
    if win32api.GetAsyncKeyState(ord('H')) & 0x7fff :
    shell.SendKeys("~ss~")


    yukarıdaki kod pek verimli değil, cpuyu boşa kullanıyor. pyhook modülünü incele derim.
    http://sourceforge.net/apps/mediawiki/pyhook/index.php?title=Main_Page


    Dediğiniz kod çalıştı. Peki örneğin G'ye basılmasını nasıl gönderebilirim? direk "g" yazdım düz mantık olmadı :( pyhook'u tam kuruyodum, py3 versiyonu yokmuş maalesef:(




  • Büyük harf olması lazım. klavyedeki diğer tuşların kodu için:
    http://delphi.about.com/od/objectpascalide/l/blvkc.htm

    pyhook python 3.x için şurada var:
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook



    < Bu mesaj bu kişi tarafından değiştirildi DocZ -- 29 Temmuz 2013; 2:47:12 >
  • quote:

    Orijinalden alıntı: DocZ

    Büyük harf olması lazım. klavyedeki diğer tuşların kodu için:
    http://delphi.about.com/od/objectpascalide/l/blvkc.htm

    pyhook python 3.x için şurada var:
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

    peki sizce şöyle bişey yapsam performans kaybı çok olur mu?
    Programın büyük çoğunluğunu pythonda yaptım. Sadece bu tuşa basma kısmı kaldı. Bu kısmı c++'ta kodlayıp python'da gerektiği yerde çağırsam?




  • quote:

    Orijinalden alıntı: GhilleintheMist

    quote:

    Orijinalden alıntı: DocZ

    Büyük harf olması lazım. klavyedeki diğer tuşların kodu için:
    http://delphi.about.com/od/objectpascalide/l/blvkc.htm

    pyhook python 3.x için şurada var:
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

    peki sizce şöyle bişey yapsam performans kaybı çok olur mu?
    Programın büyük çoğunluğunu pythonda yaptım. Sadece bu tuşa basma kısmı kaldı. Bu kısmı c++'ta kodlayıp python'da gerektiği yerde çağırsam?

    daha pratik bir çözüm olarak time.sleep çok düşük bir değerle kullanabilirsin while True döngüsü içinde. kontrol ettiğimde işlemciyi fazla yormadığını farkettim.

     
    import win32com.client, win32api, time
    shell = win32com.client.Dispatch("WScript.Shell")

    while True:
    if win32api.GetAsyncKeyState(ord('H')) & 0x7fff :
    shell.SendKeys("~ss~")
    time.sleep(.001)




  • quote:

    Orijinalden alıntı: DocZ

    quote:

    Orijinalden alıntı: GhilleintheMist

    quote:

    Orijinalden alıntı: DocZ

    Büyük harf olması lazım. klavyedeki diğer tuşların kodu için:
    http://delphi.about.com/od/objectpascalide/l/blvkc.htm

    pyhook python 3.x için şurada var:
    http://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook

    peki sizce şöyle bişey yapsam performans kaybı çok olur mu?
    Programın büyük çoğunluğunu pythonda yaptım. Sadece bu tuşa basma kısmı kaldı. Bu kısmı c++'ta kodlayıp python'da gerektiği yerde çağırsam?

    daha pratik bir çözüm olarak time.sleep çok düşük bir değerle kullanabilirsin while True döngüsü içinde. kontrol ettiğimde işlemciyi fazla yormadığını farkettim.

     
    import win32com.client, win32api, time
    shell = win32com.client.Dispatch("WScript.Shell")

    while True:
    if win32api.GetAsyncKeyState(ord('H')) & 0x7fff :
    shell.SendKeys("~ss~")
    time.sleep(.001)



    hocam ilginiz için teşkkürler :) fakat sanırım oyuna "komut" verme olayıyla ilgili daha farklı bir yol izlemem lazım. Ne yaptıysam komut veremedim. Yani Örneğin shell.SendKeys("W") yazıyorum. Normalde text alanında denediğimde W karakteri yazılıyor alana fakat oyunda denediğimde hiç bir etkisi olmuyor :/ Ama örneğin enter için "~" yada alt+f4 için %{F4} yaptığımda işliyor anlamadım neden :/




  • şimdi ben de bir oyunda denedim çalışmadı. SendKeys ona müdahale edemiyor galiba. keyboard eventlerini kontrol eden api ayrı demek. directx içindedir diye tahmin ediyorum.

    bu arada "büyük harf olması lazım.." dediğim mesajda bir hata var. SendKeys'te farketmiyor GetAsyncKeyState'te büyük harf olması lazım. yanlış olmasın :)



    < Bu mesaj bu kişi tarafından değiştirildi DocZ -- 29 Temmuz 2013; 4:11:27 >
  • quote:

    Orijinalden alıntı: DocZ

    şimdi ben de bir oyunda denedim çalışmadı. SendKeys ona müdahale edemiyor galiba. keyboard eventlerini kontrol eden api ayrı demek. directx içindedir diye tahmin ediyorum.

    bu arada "büyük harf olması lazım.." dediğim mesajda bir hata var. SendKeys'te farketmiyor GetAsyncKeyState'te büyük harf olması lazım. yanlış olmasın :)

    directpython diye bi module buldum ama bu saatte pek kafam bascak gibi değil yarın ona bakacağım. olmadı, önceden dediğim gibi o keypress olayını c++'ta yapıp python'dan çağırırım. yani sanırım öyle olabilir.
  • çok teşekkürler

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • Son bir sorum daha var acaba pythonda ustalaşmak yerine c öğrenmeye mi başlasam tarafsız düşüncelerinizi alabilir miyim ?

    < Bu ileti mobil sürüm kullanılarak atıldı >
  • hocam oyunlara göndermeyi buldum :) Scan Code diye bi olayla çalışıyormuş snaırım directx'de.
    http://www.gamespp.com/directx/directInputKeyboardScanCodes.html şurdan scan codelara bakıp

    win32api.keybd_event(ord('G'), 0x22) (0x22 G'nin scan codeu) bu tarz yazınca oyunda da işliyor.

    @DocZ
  • denedim bende de çalıştı, bilgilendirme için teşekkürler
  • quote:

    Orijinalden alıntı: GhilleintheMist

    Selam hocam ufak bi proje yapmam lazım da bunun için ekranın belirli bi koordinatındaki pixel'in rengini almam lazım. RGB yada başka bi formatta olabilir. Hatta Belirli bi bölgenin renk yoğunluğunu alabilen bişey daha iyi olur ama tek pixelde işimi görür:P

    Sizden sonra biraz araştırdım ve şu kodları yazdım, umarım işinizi görür. (gtk, win32api, win32gui) modüllerini kullandım. Program mouse'un olduğu yerin rengini arayüzün arka plan rengi yapıyor ve HTML renk kodunu arayüze yazıyor.

     Python Soru & Cevap


    #-*- coding: utf-8 -*- 
    # Author: K.Emre OTO
    import pygtk, gtk, gobject
    pygtk.require20()

    import win32api, win32gui

    class Pixel(object):
    def __init__(self):
    self.win = gtk.Window(gtk.WINDOW_TOPLEVEL)
    self.win.connect("delete_event", gtk.main_quit)
    self.win.set_title("Get Pixel")
    self.win.set_size_request(100, 100)
    self.win.set_position(gtk.WIN_POS_CENTER)
    self.win.set_resizable(False)

    self.label = gtk.Label()
    timer = gobject.timeout_add(100, self.signals)

    self.win.add(self.label)
    self.win.show_all()

    def GetColor(self):
    x, y = win32api.GetCursorPos()
    color = int(win32gui.GetPixel(win32gui.GetDC(win32gui.GetDesktopWindow()), x, y))
    color = (color & 0xff), ((color >> 8) & 0xff), ((color >> 16) & 0xff)
    color = '#%02x%02x%02x'%color

    return color

    def signals(self):
    color = self.GetColor()

    self.win.modify_bg(gtk.STATE_NORMAL, gtk.gdk.Color(color))
    self.label.set_text(color)

    return True

    def main(self):
    gtk.main()

    if __name__ == '__main__':
    app = Pixel()
    app.main()




  • Selamlar acilen Twisted frameworkünü öğrenmem gerekiyor. Tavsiye edebileceğiniz video ya da yazılı kaynak var mı? İngilizce Türkçe hiç farketmez
  • Children_oF_BodoM kullanıcısına yanıt
    http://twistedmatrix.com/trac/wiki/Documentation



    < Bu mesaj bu kişi tarafından değiştirildi DocZ -- 2 Ağustos 2013; 19:29:16 >
  • Bu baslik asagilara dusmesin :)
  • Selam ben sorayim

    def kokAl(sayi, derece=2): 
    '''kok aliyoruz burada, kok aliyom ben yeaa'''
    kok=sayi**(1/derece)
    print('Cikan sonuc', kok, sep=': ')


    kokAl islevindeki,

    kok degiskeninde tanimli olan

    sayi**(1/derece)

    isleminde tek bolu isareti ile cikan sonuc: 5.477225575051661

    peki cift bolu isaretinde 1 cikiyor. Bunun sebebi nedir?

    kokAl islevinin programdaki kullanimi

    kokAl(30)

    programin geneli:

    https://gist.github.com/agoren/6243145

    ozel bi sey degil deneme yaparken sasirdim sadece.



    < Bu mesaj bu kişi tarafından değiştirildi X-1 -- 15 Ağustos 2013; 21:12:44 >




  • Çift bölü işareti kullanıldığında size Python sadece bölüm kısmının tam sayı kısmını döndürür, buradaki referanstan da bakabilirsiniz.http://www.tutorialspoint.com/python/python_basic_operators.htm

    Programınızda bunun etkilediği nokta ise şu; derece geçmediğinizi varsayarsak, fonksiyon karekök alma işlemini uygulasın. 1//2 işlemi bize 1/2 işleminin sonucu 0,5 olduğu için, 0 döndürecektir. Herhangi bir sayının 0ncı üssü de 1'e eşit olduğundan, fonksiyon sonucu 1 olacaktır. :)
  • 
Sayfa: önceki 34567
Sayfaya Git
Git
sonraki
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.