Python Öğreniyoruz [ SORULAR-SORUNLAR ]

Başlatan muhittin_kaplan, 03 Haziran 2017, 01:51:26

muhittin_kaplan

#15
Kabaca geçen yıl ufak ufak kodlamaya başladım hocam. İlk başlarda "yahu bu ne böyle saçmalık mı olur" dediğim çok nokta oldu. Örnek vereyim global değişken
a=0
def fonksiyon():
      global a
      a+=15
fonksiyonun içerisinde global tanımlaması saçma geldi.

Ama kullandıkça ve hakimiyet arttıkça gerçekten hızlı kodlandığı (çalışması yavaştır zira yorumlanıyor) kolaylığı, neredeyse her şey için bir modül olması, crossplatform olması, fonksiyonel programlamaya uygun olması (lambda, map, reduce vb) OOP olması, multiprocess, multiThreading yapılabilmesi,problem karşısında çözüm seçeneklerinin çokluğu,(örneğin GUI tasarımı yapmak istediğinizde PyQt, Tkinter, Gtk, vxPython gibi modüllerle) özellikle Açık kaynak ve Bedava olması ile benim için bir adım öne çıkmış vaziyette.


vitruvius

Python öğrenmek isteyen varsa kesinlikle kaçırılmaması gereken MIT'nin efsane bir online kursu var şu an. Python'un en ince detaylarına kadar değinen, giriş seviyesinde, gerçekten de mükemmel bir kurs.
https://courses.edx.org/courses/course-v1:MITx+6.00.1x+2T2017/info

trgtylcnky

Hocam konu dışı ama bir şey soracağım. C++'da program yazarken class tanımını .h dosyasına, fonksiyonların içeriğini ayrı bir .cpp dosyasına yazıyorduk void class1::func1() gibi. Şimdi python ile bir program yazıyorum. Aynı class'a ait bir sürü fonksiyon oldu aynı dosyada çok kalabalık oluyor. Bunları nasıl ayırabiliriz?

muhittin_kaplan

#19
[soruyu ve cavabi tasiyacagim sorular bolumune]


Farkli class yaparak asiyorum ben o sorunu. Bol yonet. Zaten cok karmasik sa artik birseyler ters gidiyordur.
Surada sanki benzer bir soru var
http://python.6.x6.nabble.com/Distributing-methods-of-a-class-across-multiple-files-td4337155.html

yesilu

#20
Ben yeni öğreniyorum, sorum basit gelebilir şimdiden zahmetiniz için teşekkür ederim:
p1 = Pin(12, Pin.OUT)
p2 = Pin(13, Pin.OUT)
p3 = Pin(15, Pin.OUT)
bu işi kısa yoldan yapmak için p(1, 2, 3) = Pin((12, 13, 15), Pin.OUT) benzeri bir yöntem olması gerektiğini hissediyorum ama bulamadım, köşeli parantez, güzel parantez de denedim olmadı. How it's made?

EK:
from machine import Pin, ADC
import time
p1 = Pin(12, Pin.OUT)
p2 = Pin(13, Pin.OUT)
p3 = Pin(15, Pin.OUT)
adc = ADC(0)
while True:
    t = adc.read()
    p3.off()
    p1.on()
    if t < 30:
        break
    time.sleep_ms(t)
    t = adc.read()
    p1.off()
    p2.on()
    if t < 30:
        break
    time.sleep_ms(t)
    t = adc.read()
    p2.off()
    p3.on()
    if t < 30:
        break
    time.sleep_ms(t)

Bu kodlarda yapılanı daha kısa veya şık yoldan yapma yolu var mı? time.sleep dışında bekletme fonksiyonu var mı (delay gibi). (mikropiton yüklü mininodemcu ile oynuyorum a0 da ldr, 12, 13, 15 de rgb led var kendinden) Kodların beklediğim gibi çalışmadığını farkettim, elimle ldr nin ışığını kesiyorum yaklaştıkça rgb geçişi hızlanıyor, ama nedense 10 denemeden 9 unda kırmızıda duruyor, neden kırmızıya kıyak geçtiğini şuan bu satırları yazarken anladım, enteresan...Tahmini olan???

fide

@muhittin_kaplan konuyu açtığın için teşekkür ederim.
Lisede bilişim öğretmeniyim. Python bu seneden itibaren okullarda programlamaya giriş dersi olarak verilmeye başlanıyor. 2018 şubat tatilinden sonra ders olarak işlenecek.
Python'un Telit GSM modüllerde, onion omega, raspberry pi, linkit duo, Mac, Linux ve windows ortamında çalışması çok güzel. Ben de hem öğrenip hem de ders videoları çekmeye çalışıyorum.
Karaman   Bilişim Formatorleri olarak kurduğumuz YouTube sayfasında Python ve arduino ile ilgili videolar hazırlıyoruz.
https://www.youtube.com/channel/UCrxn84B2xz0Gq-qQsDPVx9g/featured


Pythona   ilginin artması yönündeki çabalarınız için teşekkür ediyorum.



Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

fide

Bu arada Python ile ilgili Türkçe kaynak arayan herkes Fırat Özgül ismiyle enkaz bir defa karşılaşmıştır. Elimde 906 sayfa basımını, parça olarak kopyalanmasını serbest bıraktığı Python 3 kitabı var. Anlatım ve örnekler çok güzel. Değindiği noktalar ve üslup süper. Programlama bilgisi olanlar için hızlı okunabilecek, olmayanlar için ise başucu kitabı niteliğinde.
Allah ondan razı olsun. Tavsiye ederim. Ben bitirmek üzereyim.
Her birimiz, geride bıraktığımız eserler kadar ölümsüzüz. Evlat gibi, talebe gibi, icatlar gibi...   http://fidenetgaraj.blogspot.com

mehmet

#23
@yesilu break, while den çıkarıyor. Yerine
continue kullanılacak.

from machine import Pin, ADC
import time

p1 = Pin(16, Pin.OUT)
p2 = Pin(5, Pin.OUT)
p3 = Pin(4, Pin.OUT)

adc = ADC(0)

while(True):
    t = adc.read()
    p3.off()
    p1.on()
    if(t < 30):
        continue
    time.sleep_ms(t)
    t = adc.read()
    p1.off()
    p2.on()
    if(t < 30):
        continue
    time.sleep_ms(t)
    t = adc.read()
    p2.off()
    p3.on()
    if(t < 30):
        continue
    time.sleep_ms(t)
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

yesilu

Bu kodla ldrden okunan ışık şiddeti r-g-b geçiş hızını belirliyor, elimle ldr ye gölge yapınca hızlanıyor, iyice yaklaştırıp karartınca(okunan değer 30un altına düşünce duruyor(raslantısal olarak 3 renkten birinde duracağını düşünüyordum ama ezici çoğunlukla kırmızıda duruyor).break i 1sn bekle ile değiştirdim sonra, her seferde reset istiyordu.kırmızının nedeni rgb den gelip elimden yansıyan ışığın ldr yi etkilemesi (olduğunu düşünüyorum). Kırmızı ledlerin ışık şiddeti düşük oluyor, ldr kırmızıdayken düşüyor 30 un altına bu nedenle.adc okuma satırlarını pin off satırının hemen altına taşıyıp deniycem yarın. Ledin tepki süresi işlemcinin 1 satırı işleme süresinden uzunsa işe yaramayabilir. Piton kolay öğrenilen bir dil, 1 haftadır yukarıda bahsedilen 900 sayfalık pdf yi okuyorum, micropitonda random fonksiyonu yok, rasgele sayı üretmenin bir yolunu düşünmekteyim.diğer sorularıma da kısaca cevap verimesini rica eder iyi günler dilerim.

muhittin_kaplan

@fide Hocam teşekkür ederim.
bu aralar boşladım, elimdeki projeden ötürü.
Fırat Özgül ün belgeleri daha önceden istihza adında bir sayfada tutuluyordu. Derli toplu oldukça başarılı bir belgelendirmeydi.
Sonradan sayfayı kapattı. Ama yazbel de duruyor şuanda.
https://belgeler.yazbel.com/python-istihza/

Yakında yeni bir seri ile devam edeceğim,
PYQT5,numpy, pandas, matplotlib, basemap, gibi modüllerden bahsedeceğim kısmetse.

mehmet

import urandom
a = urandom.getrandbits(8) #üretilecek en fazla rakamın bit sayısı
print(a)
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

kaganayanoglu

Merhabalar,
Python aslında en güncel konulardan biri ama en son yazı 10 ocaka yazılmış. bu kadar aradan sonra yine soru sorayım.

Python kod yazmak ve çalıştırmak için tansiye edilen Anaconda-Spyder kurdum. İşletim sistemim windows. Fakat gpio ları nasıl include edeceğimi bulamıyorum. kodun başına
import RPi.GPIO as GPIO   #GPIO'lar ekleniyor

GPiO ile ilgili satırı yazsamda gpio kodları çalışmıyor. Zaten en başta bu satır hata veriyor.

Ne yapmak lazım. Aanaconda kullanan varmı acaba?

mehmet

#28
import Pin
ile portları tanımlamaya
açabilirsiniz.

(ESP8266 için)
Bu arada A0, 1V a kadar olan
adc değerleri kabul ediyor.
Olan olmuştur,
olacak olan da olmuştur.
Olacak bir şey yoktur.
---------------------------------------------
http://www.mehmetbilgi.net.tr

ibra

Udemyde Mustafa Murat Coşkun, hocanın eğitimlerinden faydalanıyorum  python programlamaya giriş bâbında tavsiye ederim.
A_C5h5n5