Arama butonu
Bu konudaki kullanıcılar: 2 misafir
236
Cevap
14487
Tıklama
0
Öne Çıkarma
Cevap: Python Soru & Cevap (5. sayfa)
B
12 yıl
Onbaşı

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 ?



< Bu ileti mobil sürüm kullanılarak atıldı >
Bu mesaja 1 cevap geldi.
L
12 yıl
Yarbay

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



L
12 yıl
Yarbay

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 :)


Bu mesaja 1 cevap geldi.
D
12 yıl
Yüzbaşı

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @GhilleintheMist
L
12 yıl
Yarbay

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:(


Bu mesaja 1 cevap geldi.
D
12 yıl
Yüzbaşı

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 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @GhilleintheMist
L
12 yıl
Yarbay

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?


Bu mesaja 1 cevap geldi.
D
12 yıl
Yüzbaşı

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)


Bu mesaja 2 cevap geldi.
L
12 yıl
Yarbay

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 :/



D
12 yıl
Yüzbaşı

ş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 >
Bu mesaja 1 cevap geldi.
L
12 yıl
Yarbay

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.



B
12 yıl
Onbaşı

çok teşekkürler



< Bu ileti mobil sürüm kullanılarak atıldı >


Bu mesajda bahsedilenler: @GhilleintheMist
B
12 yıl
Onbaşı

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ı >
Bu mesaja 1 cevap geldi.
L
12 yıl
Yarbay

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


Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @DocZ
D
12 yıl
Yüzbaşı

denedim bende de çalıştı, bilgilendirme için teşekkürler




Bu mesajda bahsedilenler: @GhilleintheMist
K
12 yıl
Er

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.

< Resime gitmek için tıklayın >

#-*- 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()


Bu mesaja 1 cevap geldi.
C
12 yıl
Teğmen

Selamlar acilen Twisted frameworkünü öğrenmem gerekiyor. Tavsiye edebileceğiniz video ya da yazılı kaynak var mı? İngilizce Türkçe hiç farketmez


Bu mesaja 1 cevap geldi.
D
12 yıl
Yüzbaşı

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 mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @Children_oF_BodoM
X
12 yıl
Yüzbaşı

Bu baslik asagilara dusmesin :)


Bu mesaja 1 cevap geldi.
X
12 yıl
Yüzbaşı

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 >
Bu mesaja 1 cevap geldi.