Python ile nöbet listesi oluşturma

Başlatan Aequitas, 19 Temmuz 2016 - 23:35:47

« önceki - sonraki »

0 Üyeler ve 4 Ziyaretçi konuyu incelemekte.

Aequitas

Herkese merhaba. Python 2 ile başlangıç seviyesini biraz geçecek şekilde alıştırmalar yaptım, python 3 için de birkaç yerden bir şeyler okudum, temel fonksiyonlar konusunda biraz bilgim var diyebilirim. Ancak yapacak olduğum programı kafamda net olarak şekillendiremiyorum, bilgisayarın anlayabileceği şekilde düşünemiyorum veya düşündüğüm şeyleri ona nasıl anlatabileceğimi tam çözemedim sanırım.
Baştan söylemeliyim, çok karmaşık gibi duruyor, umarım sadece öyle görünüyordur.
Program kabaca şöyle olacak. Nöbet tutulan 5 farklı birim var, nöbet tutacak farklı yetenekte pek çok kişi var. Biraz açacak olursak, nöbetçilerin yeteneklerine göre, bu 5 farklı birimden birinde veya ikisinde, azami üçünde nöbet tutabiliyorlar. Örneğin biri sadece 1. birimde, veya 1 ve 2. birimde nöbet tutabiliyorken, biraz daha kalifiye olan kişiler 2 ve 3 de, daha kalifiye olanlar ise öncelikli olarak 3 olmak üzere bazen 2 veya 4 te de nöbet tutabiliyorlar, en kalifiye olanlar ise 4 ve 5. birimlerde nöbet tutuyorlar.
Biliyorum oldukça karışık ama list ve dictionary ler ile muhtemelen birbiri içine girmiş bu söylediklerimi yapabileceğim tablolar oluşturabilirim diye düşünüyorum, umarım oluşturabilirim.
İşin sonraki aşamalarında iş biraz daha karmaşıklaşıyor. Örneğin bir kişi atıyorum ayın 3'ünde nöbet tuttuysa, ayın 4'ünde nöbet tutmamalı, en erken ayın 5'inde nöbetçi olmalı. Ek olarak boş haftasonları olacak, yine yetenek düzeylerine göre, ayda 1 boş haftasonundan 3 haftasonuna kadar, eğer o ay 5 haftasonu içeriyorsa bu boş haftasonlarına +1 eklenebilir gibi ek detaylar var.
Aslında başta söylediğim gruplandırma işini yapabilsem sonraki kısımlarını da araştıra araştıra çözerim gibi geliyor ama bu noktada takıldım.
Yardımlarınızı bekliyorum, teşekkürler.


Öfkelenmeyin.
           Hz. Muhammed (sav)

Berkhan Berkdemir

Alıntı yapılan: Aequitas - 19 Temmuz 2016 - 23:35:47
Herkese merhaba. Python 2 ile başlangıç seviyesini biraz geçecek şekilde alıştırmalar yaptım, python 3 için de birkaç yerden bir şeyler okudum, temel fonksiyonlar konusunda biraz bilgim var diyebilirim. Ancak yapacak olduğum programı kafamda net olarak şekillendiremiyorum, bilgisayarın anlayabileceği şekilde düşünemiyorum veya düşündüğüm şeyleri ona nasıl anlatabileceğimi tam çözemedim sanırım.
Baştan söylemeliyim, çok karmaşık gibi duruyor, umarım sadece öyle görünüyordur.
Program kabaca şöyle olacak. Nöbet tutulan 5 farklı birim var, nöbet tutacak farklı yetenekte pek çok kişi var. Biraz açacak olursak, nöbetçilerin yeteneklerine göre, bu 5 farklı birimden birinde veya ikisinde, azami üçünde nöbet tutabiliyorlar. Örneğin biri sadece 1. birimde, veya 1 ve 2. birimde nöbet tutabiliyorken, biraz daha kalifiye olan kişiler 2 ve 3 de, daha kalifiye olanlar ise öncelikli olarak 3 olmak üzere bazen 2 veya 4 te de nöbet tutabiliyorlar, en kalifiye olanlar ise 4 ve 5. birimlerde nöbet tutuyorlar.
Biliyorum oldukça karışık ama list ve dictionary ler ile muhtemelen birbiri içine girmiş bu söylediklerimi yapabileceğim tablolar oluşturabilirim diye düşünüyorum, umarım oluşturabilirim.
İşin sonraki aşamalarında iş biraz daha karmaşıklaşıyor. Örneğin bir kişi atıyorum ayın 3'ünde nöbet tuttuysa, ayın 4'ünde nöbet tutmamalı, en erken ayın 5'inde nöbetçi olmalı. Ek olarak boş haftasonları olacak, yine yetenek düzeylerine göre, ayda 1 boş haftasonundan 3 haftasonuna kadar, eğer o ay 5 haftasonu içeriyorsa bu boş haftasonlarına +1 eklenebilir gibi ek detaylar var.
Aslında başta söylediğim gruplandırma işini yapabilsem sonraki kısımlarını da araştıra araştıra çözerim gibi geliyor ama bu noktada takıldım.
Yardımlarınızı bekliyorum, teşekkürler.
Kolay gelsin size. Çok zor bir işe girişmişsiniz başlangıçta. 2 yıldır py kullanıyorum, hiç bu kadar çok fonksiyonu bir arada görmediğim nadir programlardan birisi olacak :)

Her duruma bir fonksiyon atasanız bu işten asla çıkamayacağınızı bildiğinizi düşünüyorum.

Size önerim SQL ile yapmaya çalışın en azından dict ve tupe kalabalığından kurtulursunuz ve işinizi daha da basitleştirir. Ayrıca SQL yönetimi (herkesinden gözünde büyüttüğü dil) py den bile basittir. Sadece size gerekli olan INSERT INTO, FROM, SELECT, LIKE, DELETE, UPDATE komutları ile başlasanız bile kâfi. Ayrıca SQLite ile bu uygulamayı geliştirirseniz size yardım edebilirim diye düşünüyorum.

Python, SQL Developer
İyi günler

GitHub: @BerkhanBerkdemir
Eğer Linux hakkında güncel haber ve rehberler görmek istiyorsanız profilimde ki linke tıklayın.

Aequitas

Şu sıralar harıl harıl python3 çalışıyorum. Dediğiniz gibi fonksiyonlar kümesi ile bu işin içinden çıkmak kolay olmayacaktır. Ben de SQL veri tabanı kullanmam gerekir diye düşünmüştüm. Çalıştığım kaynak SQLite öneriyor ve anlatıyor. Ama benim o konuya gelmem için biraz daha yolum var gibi görünüyor. Çalışmaya devam. İlk mesajda belirttiğim gibi eğer kafamda sınırlarını net olarak çizebilirsem projeye bir şekilde başlamayı planlıyorum. Ama illa ki bu projeyi yapmak istiyorum, inşallah yapabilirim. Yardım önerisi için de çok teşekkür ederim. Şu anda düşündüğümden bile çok ihtiyacım olacaktır eminim.


Öfkelenmeyin.
           Hz. Muhammed (sav)

Berkhan Berkdemir

Ayrıca size önerim biraz klavye başından çekilin ve elinize kalem kağıt alın.

Algoritma ile yapın işinizi yoksa ahbe keşke şunu yapsaydım diyip 4 boşlukları silmeyin tek tek. :)

SQLite için ekstrem bir bilgiye ihtiyaç yok.

>>>import sqlite3
>>>conn = sqlite3.connection(":memory:")
>>>c = conn.cursor()
>>>conn.commit()
>>>conn.close()

İlk satır modülü içerdim. İkinci satır ram da sqlite için yer hazırladım (hdd de yapabilirsiniz de sonradan silmek ile de uğraşmayın). Cursor ayarlandı. 4. Satır ayarlar kaydedildi. Son satır bağlantı kapatıldı

Gerisi zaten size kalmış bir olay
Create table yapacaksanız insert into selecet update :)

Python, SQL Developer
İyi günler

GitHub: @BerkhanBerkdemir
Eğer Linux hakkında güncel haber ve rehberler görmek istiyorsanız profilimde ki linke tıklayın.