Arama butonu
Bu konudaki kullanıcılar: 1 misafir, 1 mobil kullanıcı
236
Cevap
14473
Tıklama
0
Öne Çıkarma
Cevap: Python Soru & Cevap (2. sayfa)
D
12 yıl
Yüzbaşı

numpy testleri olduğuna göre onda da olması lazım. PIL uzun süredir yeni sürümü çıkmadığı için Pillow devraldı. çoğu şey ortak zaten.

https://github.com/python-imaging/Pillow/blob/master/Tests/test_numpy.py





< Bu mesaj bu kişi tarafından değiştirildi DocZ -- 26 Temmuz 2013; 0:13:23 >
Bu mesaja 1 cevap geldi.

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

quote:

Orijinalden alıntı: DocZ

numpy testleri olduğuna göre onda da olması lazım. PIL uzun süredir yeni sürümü çıkmadığı için Pillow devraldı. çoğu şey ortak zaten.

https://github.com/python-imaging/Pillow/blob/master/Tests/test_numpy.py

hocam mesajınızı yeni gördüm sanırım numpy'e gerek kalmadan hallettim gibi.


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

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





< Bu mesaj bu kişi tarafından değiştirildi DocZ -- 27 Temmuz 2013; 23:29:52 >
Bu mesaja 2 cevap geldi.

Bu mesajda bahsedilenler: @GhilleintheMist
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 :/



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şı

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şı

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.
K
12 yıl
Er

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


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

quote:

Orijinalden alıntı: Kangiten

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

Teşekkür ederim. Burada olayı tetikleyen şey python ama değil mi? çift ve tek bölü işareti her dilde yok mesela :)


Bu mesaja 2 cevap geldi.
K
12 yıl
Er

quote:

Orijinalden alıntı: X-1

quote:

Orijinalden alıntı: Kangiten

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

Teşekkür ederim. Burada olayı tetikleyen şey python ama değil mi? çift ve tek bölü işareti her dilde yok mesela :)

Aynen öyle. Benzer bir olay VB/VB.NET üzerinde \ ile var. Örneğin; 1 \ 2 işlemini geçtiğimizde, bize gene 0 geliyor.


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

quote:

Orijinalden alıntı: X-1

quote:

Orijinalden alıntı: Kangiten

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

Teşekkür ederim. Burada olayı tetikleyen şey python ama değil mi? çift ve tek bölü işareti her dilde yok mesela :)

bu dilin bir özelliği. tek bölü işareti klasik ondalıklı bölme işlemi yapıyorken (operator.div) çift bölü işareti ondalık kısmı hesaba katmıyor (operator.floordiv). Python 2.x de ise tek bölü işareti Python 3.x deki çift bölümü işareti gibi davranıyor. bölen float'a çevrilebilir ya da şöyle yapılabilir:

from __future__ import division # 2.x de bu satırı devre dışı bırakırsanız sonuç 0 olur.
print 4/6

>>> 0.666666666667


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

quote:

Orijinalden alıntı: BlackPython

quote:

Orijinalden alıntı: özgür beyin

Merhaba,

Bende C# alanında geliştirme yapan biriyim fakat bu aralar biraz python'a ilgi duymaya başladım python ile şöyle bi'şey yapabilirmiyiz: her hangi bir tarayıcıda izlenen videoları otomatik olarak bilgisayara indiren bir program yapabiliriyiz python ile? yapabilirsek nasıl yapabilirisiz, gerekli kütüphaneler nelerdir?

Yardımcı olursanız sevinirim.

Tabiki de yapilabilir. Nasil yapacagin sorusuna ise soruyla cevap vermek zorundayim;
-YouTube ile ilgili mi olacak?
-Kafanda belirli bir video sitesi varmi?
-Yoksa genel bir downloader mi olacak? (Genel olursa cok kapsamli olmali ki butun video sitelerini ve yapilarini bilecek veya detect edebilecek bir program yapisina sahip olmali... Bu imkansiz degli ama zaman alir.)

Kullanilabilecek kutuphanelere ornek verecek olursak;

-urllib
-urllib2
-Beatiful Soup

ve daha nice parserlar...

Umarim yardimci olmustur...

Not: imlaya biraz onem verdigim icin durmadan degistiririm... bazen eksik yaziyorum k.bakmayin :)

zamanmı alır

ilk python programımhttp://www.inndir.com/YVI-Sociisoft-50138p.html#.UhZwX6x_X-B
3 saat sürdü. kütüphane araştırtırıp, youtube url'lerini decode yapmak zaman aldı


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

X
12 yıl
Yüzbaşı

Cok fazla nedeni var aslinda C ve C++'a gore :) Bu demek degildir ki C ve C++ berbat kotu vs. :) Ama D dilini gelistirilenler, C ve C++ dilinin un salmis kisileri :) Ayrica bu dilde C kutuphaneleri de kullaniliyor :) Ve yine ayrica C ya da C++ ile bazi kutuphaneler Windows ve Linux ortaminda ayriliyorlar.. D dilinde birazdan atacagim gorseldeki programin kodlarini ister Linux, ister windows, ister OsX ile kullanayim derlemede sorun yaratmiyor. C'de hello world ve kullanicidan veri almak icin bile linux ayri windows ayri kutuphaneler kullaniriz. Neredeyse her kutuphane ortak :) Tabii ki windows, linux ve osx, unix, bsd icin de kutuphaneleri var. Ornegin kalkip windows ise windowsta linux'u kullanmayi bekleyemeyiz :) Ayrica bellek yonetimi olayi bunda da var. Makina ile iletisim var, inline assembler olayi da var

http://dlang.org/iasm.html

buradaki kod ornegi D dilinden verilmis mesela

http://en.wikipedia.org/wiki/Inline_assembler

C ve C++ ile yapabildiginiz her seyi bu dille yapabilirsiniz. Embbedded Linux projem var benim VYS bittikten sonra. :) Yani isletim sistemi yazilabilecek bir dil. Bunu sadece ben soylemedim. Pardus'ta 5 yilini geciren bir tanidik da soyledi :) Isim vermek sorun olur mu bilmiyorum ama kendisi VLC Player'in programci takiminda

Ama yine de bir kaynak vereyim:https://github.com/xomboverlord/xomb => Kernel yazilmis D ile :)

Dilin kaynak kodlarina buradan bakabilirsiniz:https://github.com/D-Programming-Language

Asagidaki ornek programda mesela D dili ile sifreleme sistemi gelistirdim, gelistirmeye devam ediyorum :) Tek tipli bi sistem geri donusu olmayan. Veri iletisiminde kullanilabilir. Bu gorselde 64 karakter cikti veren sistem var ama ben 64, 128, 256, 512, 1024, 2048 olarak dusunuyorum da 512'den sonrasinda matematik konusunda bilgim de yetmiyor artik. Dusunun her girdi degeri icin benzersiz bir deger uretilecek. Normalde hafizadan silinebilir bu degerler. Ama isin matematigi burada devreye giriyor.

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

Ben kendime ait bi ilişkisel veritabani yonetim sistemi yaziyorum ayriyetten ornegin MySQL de bi İlişkisel VYS'dir. akliniza gelebilir bu manada dedim ki zaten biliyorsunuzdur. Verileri goruntuleyici masaustu arayuzlu bi program da yaziyordum. Ama en hosuma giden dil Python oldu PyQt ile :) Linux altinda onu kullanacagim. Python sqlite ile cok iyi de benim kendi sistemimden verileri cekerken ben 2,5 milyonluk kayıt denedim çok zorlanıyor. VYS'nin kendi interpreter'ı ile 2,5 milyonluk string veriyi, python'a gore daha hizli cekiyor yaklasik 4.6 dakika kadar hiz farki var :) ben de işte performansı isteyen bölümleri kendi dll'imden çağırmak istiyorum. bir nevi PyPy biliyorsunuzdur kimi yerlerde C++'ı vs. gecebiliyor hiz konusunda.

Neden D dilini kullaniyorum, Neden C ya da C++ degil sorusuna gelecek olursak soz dizimi cok rahat digerlerine gore.. Oyle header file dosyalariyla saatlerce ugrasmak yok. Yok onu oraya kopyala, yok onu sisteme kaydet vs. istedigimi bir module ekleyerek hemen isimi hallediyorum :)

Peki masaustu goruntuleyicisi olarak neden Python? Herseyin basinda programlamayi ilk bu dille sevmistim onsuz olmaz diye dusundum :p Ayrica bu isler icin de en uygun olani o degil mi? Yabana atilacak, kotumsenecek bir dil degil bence.

Neyse kafanizi sisirmeyeyim tesekkur ederim :)

O zaman

import DModulumDLLimBenim

DModulumDLLimBenim.verileriGoster()





< Bu mesaj bu kişi tarafından değiştirildi X-1 -- 29 Ağustos 2013; 4:37:27 >
Bu mesaja 1 cevap geldi.

Bu mesajda bahsedilenler: @DocZ