Kodlama sürecinizi hızlandıracak tek satırlık 18 Python kod parçacığı(one-liner code).
Lütfen bu satırları herhangi bir canlı projede veya herhangi bir üretim tabanlı kodda kullanmayın. Makale, bazı programların/kod bloklarının tek satırda değiştirildiğini görmek, denemek için sadece eğlence ve bilgi amaçlıdır. Eğitim, bilgi ve yani başlayanlar içindir.
Dikkat!
Merhaba arkadaşlar, bugün Python’da one-liner’lardan bahsedeceğiz. Python’u ne zaman öğrenmeyi seçtiğimi açıkça hatırlıyorum, bunun nedeni basitlik ve okunabilirlikti. Ancak daha az kod satırıyla python kodunu ne daha kolay hale getirebileceğinizi biliyorsunuz. Aynen! bu doğru bro. Bu tek satırlık kodlar size çok fazla zaman ve hafıza kazandırabilir ve arkadaşlarınızı etkileyebilir…
tek satırlık(one-liner code) kod nedir?
Tek satırlık kodu, tek satıra sığacak şekilde sıkıştırılmış bir kod bloğu olarak düşünebilirsiniz. Tek bir satırda paketlenmiş özlü, yoğun, kullanışlı programlardır.
neden ihtiyacım var?
Yani, tek satırlık yazmanın büyük bir hayranı değilseniz veya sadece bunları neden bilmem gerektiğini merak ediyorsanız, aşağıda oldukça ikna edici konular var.
- Tek satırları anlamak, dili çok daha iyi anlayacağınız için bir python uzmanı yapacaktır.
- Bu, kodu daha hızlı yazmanıza yardımcı olacaktır. Rekabetçi programlamada size yardımcı olacak kod parçasını diğerlerinden çok daha hızlı yazabilirsiniz.
- On-liner’lar, temellerinizi güçlendirirken temellerinizi ve programlama köklerinizi geliştirecektir.
- Kodu daha Pythonic bir şekilde yazacaksınız. Genel olarak, farklı dillerden gelen insanlar python’da genellikle Pythonic olmayan bir şekilde kod yazarlar, örneğin liste anlama, çoklu atamalar ve dilimleme vb. kullanmazlar.
- Arkadaşlarınızı, iş arkadaşlarınızı etkileyebilir ve tek satırları iyi bir şekilde kavrarsanız görüşmenizde iyi bir izlenim bırakabilirsiniz.
Ama aynı zamanda biraz zor da olabilir. Programlamayı satranç olarak hayal edin. Temel bilgilerin değişkenlerin, döngülerin, koşulların, veri yapılarının, sınıfların ne olduğunu bilmek gibi olduğunu biliyorsunuz, ancak ana filmleri öğrenmek ve kendi stratejinizi oluşturmak tek satırlık gibidir. Başlangıçta, zor ve oldukça bunaltıcı olabilir, ancak bir kez onları tanıdıktan sonra. Büyüklüğe ulaşabilir ve diğer birçok oyuncudan daha hızlı maçlar kazanabilirsiniz. Her şeyin bir bedeli vardır kanka…
Basics
1. If-else
Before
if 3 < 2:
var=21
else:
var=42
After
var = 21 if 3<2 else 42
2. Elif
Before
>>> x = 42
>>> if x > 42:
>>> print("no")
>>> elif x == 42:
>>> print("yes")
>>> else:
>>> print("maybe")
yes
After
>>> print("no") if x > 42 else print("yes") if x == 42 else print("maybe")
yes
3. If without else
Before
condition = True
if condition:
print('hi')
After
if condition: print('hello')
print('hello') if condition else None
4. Function
Before
def f(x):
return "hello "+ x
After
f = lambda x: "hello "+ x
f = exec("def f(x):\n return 'hello '+ x")
5. Loop(list comprehension)
Before
squares = []
for i in range(10):
squares.append(i**2)
After
squares=[i**2 for i in range(10)]
6. Loop with If
Before
squares = []
for i in range(10):
if i%2==0:
squares.append(i**2)
After
squares = [i**2 for i in range(10) if i%2==0]
7. Loop with if else
Before
squares = []
for i in range(10):
if i%2==0:
squares.append(i**2)
else:
squares.append(False)
After
squares = [i**2 if i%2==0 else False for i in range(10)]
8. While Loop with if else
Before
c=0
while c < 10:
if c!=5:
print(c)
else:
print("FIVE")
c+=1
After
while c < 10: c+=1; print(c) if c!=5 else print("FIVE")
9. swap variables
Before
>>> def swap(x,y):
x = x ^ y
y = x ^ y
x = x ^ y
return x, y
>>> swap(10,20)
(20,10)
After
>>> x, y = 10, 20
>>> x, y = y, x
(20, 10)
10. Multiple Assignment
Before
a="ONE"
b=2
c=3.001
After
a, b, c = "One", 2, 3.001
11. Write String In File
Before
text = "Helllloooooo"
fileName = "hello.txt"
f=open(fileName, "a")
f.write(text)
f.close()
After
text = "Helllloooooo"
fileName = "hello.txt"
print(text, file=open(fileName, 'a'))
12.Quicksort
Before
# Source - https://stackabuse.com/quicksort-in-python/
def partition(array, start, end):
pivot = array[start]
low = start + 1
high = end
while True:
while low <= high and array[high] >= pivot:
high = high - 1
while low <= high and array[low] <= pivot:
low = low + 1
if low <= high:
array[low], array[high] = array[high], array[low]
else:
break
array[start], array[high] = array[high], array[start]
return high
def quick_sort(array, start, end):
if start >= end:
return
p = partition(array, start, end)
quick_sort(array, start, p-1)
quick_sort(array, p+1, end)
array = [29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]
quick_sort(array, 0, len(array) - 1)
print(array)
After
array = [29,99,27,41,66,28,44,78,87,19,31,76,58,88,83,97,12,21,44]
q = lambda l: q([x for x in l[1:] if x <= l[0]]) + [l[0]] + q([x for x in l if x > l[0]]) if l else []
print(q(array))
13. Fibonacci
Before
def fib(x):
if x <= 2:
return 1
return fib(x - 1) + fib(x - 2)
After
fib=lambda x: x if x<=1 else fib(x-1) + fib(x-2)
14. HTTP Server
Before
import http.server
import socketserver
PORT = 8000
Handler = http.server.SimpleHTTPRequestHandler
with socketserver.TCPServer(("", PORT), Handler) as httpd:
print("serving at port", PORT)
httpd.serve_forever()
After
python -m http.server 8000
15. Nested For Loops
Before
iter1 = [1, 2, 3, 4]
iter2 = ['a', 'b', 'c']
for x in iter1:
for y in iter2:
print(x, y)
After
[print(x, y) for x in iter1 for y in iter2]
16. Print Without Newline
Before
for i in range(1,5):
print(i, end=" ")
After
print(*range(1,5))
17. Class
Before
class School():
fun ={}
After
School = type('School', (object,),{'fun':{}})
18. Walrus:= (Python 3.8)
Before
command = input("> ")
while command != "quit":
print("You entered:", command)
After
while (command := input("> ")) != "quit": print("You entered:", command)
Sonuç
Artık python tek one-liners hakkında biraz bilginiz var ve bu, kodlama sürecinizi hızlandırmanıza yardımcı olacak. Ben de daha önce bilmediğim bazı harika numaralar ve tek laflar öğrendiğim için, umarım bu makaleden yeni bir şeyler öğrenmişsinizdir. Sizde de durum böyleyse motivasyonumu arttırdığında (1 beğeni = 1 iyi karma) Beğendim butonuna basın. Ayrıca gönderiyi arkadaşlarınızla paylaşın ki onlar da yeni bir şeyler öğrenebilsinler (bencil olmayın…). Tekrar aklınızda olmak dileğiyle, o zamana kadar hoşçakalın!
Diğer Makaleler
- 2021’de neden Python öğrenmelisiniz?
- Zaman kazandıran Cheat Sheets sayfaları
- JavaScript Öğrenin
- JavaScript öğrenmek için 10 site (ÜCRETSİZ)
- Bilmediğiniz 12 HTML etiketi
Sosyal
Kitap ve görsel kaynak: pythononeliners.com, Christian Mayer.