Python acemisinden Notlar: 1-Değişkenler.

Endorfin35+

Kayıtsız Üye
Katılım
1 Mayıs 2020
Mesajlar
4,204
Kendim için tek tek deneyerek kılavuz niteliğinde bir doysa hazırladım. Benim gibi acemilere faydalı olacaktır...

Python:
# python değişkenler
# örnek karakter "A" ascii kodu 65  hex değeri 0x41
# örnek karakter "a" ascii kodu 97  hex değeri 0x61
# python kaynak : https://docs.python.org/3/library/functions.html
# Tüm veri tipleri için kaynak : https://www.w3schools.com/python/python_datatypes.asp
# Endcoing için kaynak : https://python-istihza.yazbel.com/karakter_kodlama.html
# Binary için kaynak : https://www.devdungeon.com/content/working-binary-data-python


# boolean türü ver dönüşümleri. boolean türü otomatik olarak atanır.
bool_var_1 = False              # True, False değerleri alır...
bool_var_2 = bool(1)            # Sonuc 1 e karşılık "True" olur
bool_var_3 = bool(0)            # Sonuc 0 a karşılık "False" olur

print(type(bool_var_1))         # Değişken türünü tespit eder.

# float türü ver dönüşümleri. Float türü otomatik olarak atanır.
float_var_1 = 34.51542             # sonuc 34.51542
float_var_2 = round(34.41542 , 2)  # sonuc 34.42 yuvarlama yapılır.
float_var_3 = float("34")          # Sonuc 34.0
float_var_4 = float("34.5")        # sonuc 34.5
print(format(float_var_4,".3F"))   # 34.5 değerini 34.500 olarak görüntüler.
print(format(float_var_1,".2F"))   # 34.51542 değerini 34.52 olarak görüntüler. Gerçek değer değişmez.
 
 
# int türü ve dönüşümleri. int türü otomatik olarak atanır.
int_var_1 = 1234                    #
int_var_2 = round(34.51542)         # sonuc 35 tir
int_var_3 = ord("A")                # Sonuc "A" ascii kodu 65 tir. Tek karakter çevirir.
int_var_4 = int("65")               # Sonuc "65" karşılığı desimal (sayısal) 65 tir.
int_var_5 = 0x41                    # Sonuc 0x41 desimal karışılığı 65 tir. herhangi bir değeri çevirir.
int_var_6 = int("41",16)            # "41" 16 tabanına göre rakam dönüştürülmüştür. Sonuc 65 tir herhangi bir değeri çevirir.
int_var_7 = int("01000001",2)       # Sonuc 01000001 desimal karışılığı 65 tir. herhangi bir değeri çevirir.
int_var_8 = 0b01000001              # Sonuc 01000001 desimal karışılığı 65 tir.
int_var_9 = 0b0100000101001110      # Sonuc 0100000101001110 desimal karışılığı 16718 tir
int_var_10 = int.from_bytes(b'A',byteorder="big")     # sonuc A ascii karşılığı 65 olur  binary: 01000001
int_var_11 = int.from_bytes(b'A',byteorder="big")     # sonuc A ascii karşılığı 65 olur  binary: 01000001
int_var_12 = int.from_bytes(b'AN',byteorder="big")    # sonuc 16718 olur. A:0100 0001 N:0100 1110 ise 0100 0001 0100 1110 = 16718
int_var_13 = int.from_bytes(b'AN',byteorder="little") # sonuc 20033 olur. NA şeklinde sıralanır. 0100 1110 0100 0001 = 20033



# str türü ve dönüşümleri. str türü otomatik olarak atanır.
str_var_1 = "abcd"                     
str_var_2 = "abcd".upper()             # Sonuc "ABCD" büyük harfe dönüşüm sağlanır.
str_var_3 = "AbcD".lower()             # Sonuc "abcd" küçük harfe dönüşüm sağlanır
str_var_4 = "deNEMe".capitalize()      # sonuc "Deneme" ilk harf büyük diğerleri küçük olur.

str_var_5 = str("0x41")                # sonuc karakter olarak "0x41" dir.
str_var_6 = str("0x41").lstrip("0x")   # sonuc karakter olarak "41" dir. Maske uygun ise çıkartılır
str_var_7 = str("0x41").rstrip("41")   # sonuc karakter olarak "0x" dir. Maske uygun ise çıkartılır
str_var_8 = str("0x41")[0:2]           # sonuc karakter olarak "0x" dir. Aralığı alır.
str_var_9 = str("0x41")[1:3]           # sonuc karakter olarak "x4" dir. Aralığı alır.
str_var_10 = str("0x41")[2:4]          # sonuc karakter olarak "41" dir. Aralığı alır.
str_var_11 = str("0x41")[:2]           # sonuc karakter olarak "0x" dir. Soldan 2 karakter alır.
str_var_12 = str("0x41")[2:]           # sonuc karakter olarak "41" dir. Sağdan 2 karakter alır.

str_var_13 = str(1234)                  # 1234 karakter olarak "1234" e dönüşür.
str_var_14 = chr(65)                    # Sonuc 65 ascii koduna karşılık "A" dır.
str_var_15 = chr(0x41)                  # Sonuc 0x41 hex (ascii) koduna karşılık "A" dır.
str_val_16 = chr(0b01000001)            # Sonuc 01000001 binary (ascii) koduna karşılık "A" dır.


# bytes türü ve dönüşümleri. bytes türü otomatik olarak atanır.
# bytes türü byte lardan oluşan dizi gibidir. herhangi bir elamana ulaşabilir ama değiştirmezsiniz.
bytes_val_1 = b'A'                  # Sonuç b'A' dır. A bir bayt olarak saklanır. 0100 0001
bytes_val_2 = b'\x41'               # Sonuç b'A' dır. A bir bayt olarak saklanır. 0100 0001
bytes_val_3 = b'\x05'               # Sonuç b'\05' tir. karakter karşılığı olmadığında hex gösterilir.
bytes_val_4 = b'5'                  # Sonuç b'5' tir. 5 bir bayt olarak saklanır. 0000 0101
bytes_val_5 = bytes([65])           # Sonuç b'A' dır. A bir bayt olarak saklanır. 0100 0001
bytes_val_6 = bytes([65,97])        # Sonuç b'Aa' dır. iki bayt olarak saklanır.
bytes_val_7 = bytes(3)              # Sonuç b'\x00\x00\x00' dır. 3 baytlık boş veri oluşturulur.


#bytearray türü bytes türü gibidir. Ancak dizi özelliklerini taşır.
bytearray_val_1 = bytearray(b'\x00\x0F')    # Sonuç b'\x00\x0f' dır.
bytearray_val_2 = bytearray([65,97])        # Sonuç b'Aa' dır.
bytearray_val_2[1]=0                        # Sonuç b'A\x00' olmuştur.

print(chr(bytearray_val_2[0]))     #sonuc A olarak görüntülenir,
print(bin(bytearray_val_2[0]))     #sonuc 0b1000001 olarak görüntülenir,
print(hex(bytearray_val_2[0]))     #sonuc 0x41 olarak görüntülenir,
print(bytearray_val_2[0])          #sonuc 65 olarak görüntülenir,
print((bytearray_val_2).hex())     # Sonuç 4100 dır. önceden b'A\x00' idi...

# Soldaki 0 ların görüntülenmesi
print(bin(bytearray_val_2[0]).lstrip("0b").zfill(8))   #sonuc 01000001 olarak görüntülenir,
print()

# bit manipulasyonları int türü üzerinden yapılır.
# Ornek : 30000 rakamının hi-byte ve low-byte olarak parçaya ayrılması ve tekrar bir araya getirilmesi.
print("hi-low byte...")
# int olarak bir değişkende 30000 turulur.
bit16_val_1 = 30000           
print(bin(bit16_val_1))       #   0111 0101 0011 0000 değerine sahiptir.
low_byte = bit16_val_1 & 0xFF # & 0000 0000 1111 1111 ile and işlemi
print(bin(low_byte))          #   0000 0000 0011 0000  sonuç 0b110000 olur.
                                
hi_byte = bit16_val_1 >> 8    #>8 0111 0101 0011 0000 değerine sağa 8 bit kaydırılır
print(bin(hi_byte))           #   0000 0000 0111 0101  sonuç 0b1110101 olur

# tekrar bir ayara getime
# kısa yazılış  (hi_byte << 8) | low_byte
bit16_val_2 = hi_byte << 8               #<8 0111 0101
print(bin(bit16_val_2))                  #   0111 0101 0000 0000  elde edilir.
bit16_val_2 = bit16_val_2 | (low_byte)   # | 0000 0000 0011 0000  low ile OR işlemine sokulur.
print(bin(bit16_val_2))                  #   0111 0101 0011 0000
print()

print("bit maskeleme...")
# Bilinmeyen binary bir değerin sacede arzu edilen kısmına müdahale etmeyi sağlar.
# Örnek 1 :  bilinen veya bilinmeyen bir bit değerinin 2. biti 1 olsun isteniyor.
# 1011 0011 referans değer olsun.
bit_val_1 = 0b10110011              #   1011 0011  ref. değer
bit_mask  = 1<<2                    # | 0000 0100  2. biti 1 olan maskemiz. 1 i iki defa sola kaydırak elde ettik.
bit_val_2 = bit_val_1 | bit_mask    #   1011 0111  elde edilir. istendiği gibi 2. bit 1 oldu.

# Örnek 2 :  bilinen veya bilinmeyen bir bit değerinin 1. biti 0 olsun isteniyor.
# 1011 0011 referans değer olsun.
bit_val_1 = 0b10110011              #   1011 0011  ref. değer (kaç bit olduğu bilinmeli...)
bit_mask  = ~(0b1<<1) & 0xFF        # & 1111 1101  1. biti 0 olan maskemiz. 1 i 1 defa sola kaydırdık 8bit için ff ile maskeledik.
bit_val_2 = bit_val_1 & bit_mask    #   1011 0001  elde edilir. istendiği gibi 1. bit 0 oldu.

# Örnek 3 :  bilinen veya bilinmeyen bir bit değerinin 5. biti 0 ise 1, 1 ise 0 olsun isteniyor.
# 1011 0011 referans değer olsun.
bit_val_1 = 0b10110011              #   1011 0011  ref. değer
bit_mask  = 1<<5                    # ^ 0010 0000  5. biti 1 olan maskemiz. 1 i 5 defa sola kaydırdık
bit_val_2 = bit_val_1 ^ bit_mask    #   1001 0011  elde edilir. istendiği gibi 5. bit 1 iken 0 oldu.

# Örnek 4 :  bilinen veya bilinmeyen bir bit değerinin 4. bitinin ne olduğu tespit edilmek isteniyor.
# 1011 0011 referans değer olsun.
bit_val_1 = 0b10110011              #   1011 0011  ref. değer
bit_val_2 = bit_val_1 >>4           #>4 0000 1011  istenen bit başa getirilir.   
bit_mask  = 1                       #&  0000 0001  0. biti 1 olan maske ayarlanır.
bit_val_3 = bit_val_2 & bit_mask    #   000  0001  elde edilir. istendiği gibi 4. bitin değeri 1 olarak tespit edilir.
 

Forum istatistikleri

Konular
5,880
Mesajlar
100,272
Üyeler
2,491
Son üye
djkop

Son kaynaklar

Son profil mesajları

gruptaki arkadaşlara selamlar. sıteyi bu gün fark ettim. Asansör için 2x7 segment LCD gösterge üretmek istiyorum. acaba bu sayfadaki arkadaşlardan destek alabilirmiyim. LCD nin mantık açılımı ektedir.
deneyci wrote on TA3UIS's profile.
Selam.
Amatör telsiz lisansı nasıl alınıyor?
Lisansı olmayanı forumlarına almıyorlar. :)
Bilgi alamıyoruz.
cemalettin keçeci wrote on HaydarBaris's profile.
barış kardeşim bende bu sene akıllı denizaltı projesine girdim ve sensörleri arastırıyorum tam olarak hangi sensör ve markaları kullandınız yardımcı olabilir misin?
m.white wrote on Altair's profile.
İyi akşamlar.Arabanız ne marka ve sorunu nedir.Ben araba tamircisi değilim ama tamirden anlarım.
* En mühim ve feyizli vazifelerimiz millî eğitim işleridir. Millî eğitim işlerinde mutlaka muzaffer olmak lâzımdır. Bir milletin hakikî kurtuluşu ancak bu suretle olur. (1922)
Back
Top