Gömülü Fonksiyonlar
*******************

Python yorumlayıcısı, içinde gömülü olarak gelen ve her zaman
kullanılabilen bir dizi fonksiyon ve tür barındırır. Burada alfabetik
sıraya göre listelenmiştir.

+---------------------------+-------------------------+-------------------------+---------------------------+
| Gömülü Fonksiyonlar                                                                                       |
|===========================|=========================|=========================|===========================|
| **A** "abs()" "aiter()"   | **E** "enumerate()"     | **L** "len()" "list()"  | **R** "range()" "repr()"  |
| "all()" "any()" "anext()" | "eval()" "exec()"       | "locals()"  **M**       | "reversed()" "round()"    |
| "ascii()"  **B** "bin()"  | **F** "filter()"        | "map()" "max()"         | **S** "set()" "setattr()" |
| "bool()" "breakpoint()"   | "float()" "format()"    | "memoryview()" "min()"  | "slice()" "sorted()"      |
| "bytearray()" "bytes()"   | "frozenset()"  **G**    | **N** "next()"  **O**   | "staticmethod()" "str()"  |
| **C** "callable()"        | "getattr()" "globals()" | "object()" "oct()"      | "sum()" "super()"  **T**  |
| "chr()" "classmethod()"   | **H** "hasattr()"       | "open()" "ord()"  **P** | "tuple()" "type()"  **V** |
| "compile()" "complex()"   | "hash()" "help()"       | "pow()" "print()"       | "vars()"  **Z** "zip()"   |
| **D** "delattr()"         | "hex()"  **I** "id()"   | "property()"            | **_** "__import__()"      |
| "dict()" "dir()"          | "input()" "int()"       |                         |                           |
| "divmod()"                | "isinstance()"          |                         |                           |
|                           | "issubclass()" "iter()" |                         |                           |
+---------------------------+-------------------------+-------------------------+---------------------------+

abs(x)

   Bir sayının mutlak değerini döndürür. Argüman bir tam sayı, gerçel
   sayı veya "__abs__()" 'i uygulayan bir nesne olabilir. Eğer argüman
   bir karmaşık sayıysa, onun büyüklüğü döndürülür.

aiter(async_iterable)

   Bir *asynchronous iterable* için bir *asynchronous iterator*
   döndürür. "x.__aiter__()" çağrısına eşdeğerdir.

   Not: "iter()" 'in aksine, "aiter()" 'in 2 argümanlı biçimi yoktur.

   3.10 sürümünde geldi.

all(iterable)

   Eğer *iterable* 'ın tüm elementleri doğruysa, "True" döndürür.
   Şuna eşdeğerdir:

      def all(iterable):
          for element in iterable:
              if not element:
                  return False
          return True

awaitable anext(async_iterator[, default])

   Hazır olunduğunda, verilen *asynchronous iterator* 'dan sıradaki
   parçayı döndürür. Eğer yineleyici tükendiyse ve *default* değer
   verildiyse, *default* değeri döndürür.

   Bu, gömülü fonksiyonlardan olan "next()" 'in asenkron bir
   varyantıdır, benzer şekilde çalışır.

   Bu *async_iterator* 'ın "__anext__()" metodunu çağırır. Bir
   *awaitable* döndürür. Bunu beklemek yineleyicinin bir sonraki
   değerini döndürür. Eğer *default* değer verildiyse, yineleyici
   tükendiğinde o döndürülür. Aksi takdirde "StopAsyncIteration"
   hatası ortaya çıkar.

   3.10 sürümünde geldi.

any(iterable)

   Eğer *iterable* 'ın elementlerinden herhangi biri doğru ise "True"
   döndürür. Eğer *iterable* boş ise, "False" döndürür. Şuna eşittir:

      def any(iterable):
          for element in iterable:
              if element:
                  return True
          return False

ascii(object)

   "repr()" 'in bir nesnenin yazdırılabilir temsilini içeren bir dize
   döndürdüğü, ancak "repr()" tarafından döndürülen dizedeki ASCII
   olmayan karakterlerden "\x", "\u" veya "\U" gibi kaçış
   karakterlerini kullanarak kaçtığı gibi, bu da Python 2'deki
   "repr()" tarafından döndürülen değere benzeyen bir string üretir.

bin(x)

   Bir tam sayıyı, ön eki "0b" olan ikili bir dizeye dönüştürür. Sonuç
   geçerli bir Python ifadesidir. Eğer *x* bir Python "int" nesnesi
   değilse, tam sayı döndüren bir "__index__()" metodu tanımlaması
   gerekir. Bazı örnekler:

   >>> bin(3)
   '0b11'
   >>> bin(-10)
   '-0b1010'

   Eğer ön ek olarak "0b" isteniyorsa veya istenmiyorsa, aşağıdaki
   gibi iki şekilde de kullanabilirsiniz.

   >>> format(14, '#b'), format(14, 'b')
   ('0b1110', '1110')
   >>> f'{14:#b}', f'{14:b}'
   ('0b1110', '1110')

   Ayrıca daha fazla bilgi için "format()" 'a bakabilirsiniz.

class bool([x])

   "True" ya da "False" değeri döndürür. *x*, standart truth testing
   procedure kullanılarak boolean veri tipine dönüştürülür. *x*
   yanlışsa veya atlanırsa, bu "False" döndürür; aksi takdirde, "True"
   değerini döndürür. "bool" sınıfı "int" öğesinin bir alt sınıfıdır
   (bkz. Sayısal Türler --- int, float, complex). Daha fazla alt
   sınıfa ayrılamaz. Bunun tek örnekleri "False" ve "True" 'dur (bkz.
   Boolean Değerleri).

   3.7 sürümünde değişti: *x* artık yalnızca konumsal bir
   parametredir.

breakpoint(*args, **kws)

   This function drops you into the debugger at the call site.
   Specifically, it calls "sys.breakpointhook()", passing "args" and
   "kws" straight through.  By default, "sys.breakpointhook()" calls
   "pdb.set_trace()" expecting no arguments.  In this case, it is
   purely a convenience function so you don't have to explicitly
   import "pdb" or type as much code to enter the debugger.  However,
   "sys.breakpointhook()" can be set to some other function and
   "breakpoint()" will automatically call that, allowing you to drop
   into the debugger of choice. If "sys.breakpointhook()" is not
   accessible, this function will raise "RuntimeError".

   "breakpointhook" parametresi ile denetleme olayı
   "builtins.breakpoint" ortaya çıkartır.

   3.7 sürümünde geldi.

class bytearray([source[, encoding[, errors]]])

   Baytlardan oluşan yeni bir dizi döndürür. "bytearray" sınıfı 0 <= x
   < 256 aralığındaki tam sayılardan oluşan değişebilir bir dizedir.
   Değiştirilebilir Dizi Tipleri 'da tarif edildiği gibi değişebilir
   dizeler klasik metotlarının çoğuna sahiptir. "bytes" tipinin sahip
   olduğu metotlar için, Bytes and Bytearray Operations 'a bakınız.

   Opsiyonel *source* parametresi diziyi birkaç farklı şekilde
   başlatmak için kullanılabilir:

   * Eğer bir *string* ise, *encoding* (ve istenirse, *errors*)
     parametrelerini de vermelisiniz; sonrasında "bytearray()"
     "str.encode()" kullanarak dizeyi bayta çevirecektir.

   * Eğer bir *integer* ise, dizi bu boyuta göre null baytlar ile
     doldurulur.

   * Eğer arabellek arayüzü 'ne uyan bir objeyse, bayt dizisini
     başlatmak için bir salt okunur arabellek kullanılır.

   * Eğer *iterable* ise, 0 <= x < 256 aralığındaki dizinin başlangıç
     içeriği olan tam sayılardan oluşan bir yinelenebilir nesne
     olmalıdır.

   Argüman yoksa, boyutu 0 olan bir dizi oluşturulur.

   Binary Sequence Types --- bytes, bytearray, memoryview ve Bytearray
   Objects 'a bakınız.

class bytes([source[, encoding[, errors]]])

   0 <= x < 256 aralığındaki tam sayılardan oluşan değiştirilemez bir
   bayt objesi döndürür. "bytes", "bytearray" 'in değiştirilemez
   versiyonudur. Aynı objeyi değiştirmeyen metotlara, indeksleme ve
   dilimleme davranışına sahiptir.

   Buna göre, yapıcı argümanları "bytearray()" için yorumlanır.

   Bayt nesneleri değişmez değerler ile de oluşturulabilir, String and
   Bytes literals 'a bakınız.

   Ayrıca Binary Sequence Types --- bytes, bytearray, memoryview,
   Bytes Objects, ve Bytes and Bytearray Operations 'a bakınız.

callable(object)

   Eğer *object* argümanı çağrılabilir ise, "True" , değilse "False"
   döndürür. Eğer "True" döndürür ise, bir çağrının başarısız olması
   hala mümkündür, "False" döndürdüğü takdirde, *object* çağrısı
   hiçbir zaman başarılı olamaz. Sınıfların ve örneklerin
   (Sınıflarında "__call__()"  metodu varsa) çağrılabilir olduğunu not
   edin. Bir sınıfı çağırmak sınıftan türeyen yeni bir örnek döndürür.

   3.2 sürümünde geldi: Bu fonksiyon Python 3.0 versiyonunda
   kaldırılmıştı ama Python 3.2 versiyonunda geri getirildi.

chr(i)

   Unicode kod noktası *i* tamsayısı olan bir karakteri temsil eden
   dizeyi döndürür. Örneğin, "chr(97)" , "'a'" dizesini döndürürken,
   "chr(8364)" , "'€'" dizesini döndürür. Bu fonksiyon, "ord()" 'un
   tam tersidir.

   Argüman için geçerli değer 0 ile 1.114.111 arasındadır (16'lık sayı
   sisteminde 0x10FFFF). Eğer *i* aralığın dışında ise "ValueError"
   hatası ortaya çıkar.

@classmethod

   Bir metodu sınıf metoduna dönüştürür.

   Bir sınıf metodu, sınıfı örtük ilk argüman olarak alır, aynı
   sınıftan türeyen bir örneğin metodunun örneği aldığı gibi. Bir
   sınıf metodunu bu şekilde tanımlayabilirsiniz:

      class C:
          @classmethod
          def f(cls, arg1, arg2): ...

   "@classmethod" formu, bir *decorator* fonksiyonudur. -- detaylar
   için Function definitions 'a bakınız.

   Bir sınıf metodu sınıf ("C.f()" gibi) veya örnek ("C().f()" gibi)
   üzerinden çağırılabilir. Örnek, sınıfı dışında yoksayılır. Eğer bir
   sınıf metodu türetilmiş bir sınıf için çağrılırsa, türetilmiş sınıf
   nesnesi örtük ilk argüman olarak geçer.

   Sınıf metotları C++ ve Java static metotlarından farklıdır. Eğer
   bunları kullanmak isterseniz, bu bölümdeki "staticmethod()" kısmına
   bakınız. Sınıf metotları hakkında daha fazla bilgi için, The
   standard type hierarchy 'a bakınız.

   3.9 sürümünde değişti: Sınıf metotları artık "property()" gibi
   diğer *descriptors* 'ları sarmalayabilir.

   3.10 sürümünde değişti: Sınıf metotları artık ("__module__",
   "__name__", "__qualname__", "__doc__" and "__annotations__") metot
   özelliklerini miras alır ve yeni bir "__wrapped__" özelliğine
   sahiplerdir.

compile(source, filename, mode, flags=0, dont_inherit=False, optimize=- 1)

   *source* 'ı bir koda veya AST nesnesine derler. Kod nesneleri
   "exec()" veya "eval()" fonksiyonları kullanılarak çalıştırılabilir.
   *source* normal bir dize, bayt dizesi veya bir AST nesnesi
   olabilir. AST nesneleriyle nasıl çalışılacağını öğrenmek için "ast"
   modülüne bkz.

   *filename* argümanı kodun okunduğu dosyayı vermelidir; eğer bir
   dosyadan okunmuyorsa ayırtedilebilir bir değer verebilirsin
   (genellikle "'<string>'" kullanılır).

   *mode* argümanı hangi türden kodun derleneceğini belirtir; eğer
   *source* bir dizi ifadeden oluşuyorsa "'exec'" , eğer tek bir
   ifadeden oluşuyorsa "'eval'" , veya tek bir etkileşimli ifadeden
   oluşuyorsa "'single'" olabilir (ikinci durumda, "None" dışında bir
   değere sahip ifadeler yazdırılacaktır).

   *flags* ve *dont_inherit* opsiyonel argümanları hangi derleyici
   seçenekleri 'ın aktive edilmesi gerektiğini ve hangi gelecekteki
   özellikler 'e izin verileceğini kontrol eder. İkisi de verilmediyse
   (veya ikisi de sıfır ise) kod, "compile()" 'ı çağıran kodu
   etkileyen aynı bayraklarla derlenir. Eğer *flags* argümanı verilip
   *dont_inherit* verilmediyse (veya sıfırsa), derleyici seçenekleri
   ve gelecek ifadeleri *flags* argümanı tarafından belirtilirler, her
   türlükullanılacak olanlara ek olarak kullanılır. Eğer
   *dont_inherit* sıfırdan farklı bir tamsayıysa, *flags* argümanı da
   odur. -- çevreleyen koddaki bayraklar (gelecekteki özellikler ve
   derleyici seçenekleri) yoksayılır.

   Derleyici seçenekleri ve gelecek ifadeleri, birden fazla seçeneği
   belirlemek için bit düzeyinde VEYA'lanabilen bitler tarafından
   belirlenirler. Gelecekteki belirli bir özelliği belirtmek için
   gereken bit alanı, "__future__" modülündeki "_Feature" örneğinde
   "compiler_flag" niteliği olarak bulunabilir. Derleyici bayrakları ,
   "ast" modülünde "PyCF_" öneki ile bulunabilir.

   *optimize* argümanı derleyicinin optimizasyon seviyesini belirler;
   "-1" varsayılan değeri, "-O" seçenekleri tarafından verilen
   yorumlayıcının optimizasyon seviyesini seçer. Belli seviyeler: "0"
   (optimizasyon yok; "__debug__" doğru), "1" (iddialar kaldırılır,
   "__debug__" yanlış) veya "2" (Ekstradan doküman dizeleri de
   kaldırıldı).

   Bu fonksiyon derlenmiş kaynak geçerli değil ise "SyntaxError" ,
   null baytlar içeriyorsa "ValueError" hatalarını ortaya çıkarır.

   Python kodunu onun AST temsiline ayrıştırmak isterseniz,
   "ast.parse()" 'a bakınız.

   "source" ve "filename" argümanlarıyla denetleme olayı "compile"
   ortaya çıkartır.

   Not:

     "'single'" veya "'eval'" modunda çok satırlı bir dize
     derleneceğinde, giren veri en az bir yeni satır karakteri ile
     sonlandırılmalıdır. Bu "code" modülündeki tamamlanmış ve
     tamamlanmamış ifadelerin tespitini kolaylaştırmak içindir.

   Uyarı:

     Python'un AST derleyicisindeki yığın derinliği sınırlamaları
     nedeniyle yeterince büyük/karmaşık bir dizeyi bir AST nesnesine
     derlerken Python yorumlayıcısını çökertmek mümkündür.

   3.2 sürümünde değişti: Windows ve Mac yeni satırlarının kullanımına
   izin verildi. Ayrıca, bundan böyle "'exec'" modunda iken veri
   girişinin yeni satırda sonlanması gerekmiyor. *optimize*
   parametresi eklendi.

   3.5 sürümünde değişti: Önceden, *source* , null baytlar içeriyorsa
   "TypeError" hatası ortaya çıkardı.

   3.8 sürümünde geldi: "ast.PyCF_ALLOW_TOP_LEVEL_AWAIT" artık üst
   düze "await", "async for", ve "async with" desteğini etkinleştirmek
   için bayraklarla iletilebilir.

class complex([real[, imag]])

   *real* + *imag**1j değeriyle bir karmaşık sayı döndürür veya dize
   veya sayıyı karmaşık sayıya dönüştürür. Eğer ilk parametre dize
   ise, karmaşık sayı olarak yorumlanır ve fonksiyon ikinci bir
   parametre olmadan çağrılmalıdır. İkinci parametre asla dize olamaz.
   Her argüman bir sayısal çeşit olabilir (karmaşık sayılar dahil).
   Eğer *imag* atlandıysa, varsayılan olarak sıfır alınır ve yapıcı
   metot "int" ve "float" gibi sayı dönüştürme işlevi görür. Eğer iki
   argüman da atlandıysa, "0j" döndürür.

   Genel bir python nesnesi "x" için, "complex(x)" , "x.__complex__()"
   'i temsil eder. Eğer "__complex__()" tanımlanmadıysa, "__float__()"
   'a geri döner. "__float__()" tanımlanmadıysa, "__index__()" 'e geri
   döner.

   Not:

     Bir dize dönüştürürken, dizenin, merkezi "+" veya "-"
     operatörünün etrafında boşluk içermemelidir. Örnek olarak,
     "complex('1+2j')" uygun, ama "complex('1 + 2j')" "ValueError"
     hatası ortaya çıkarır.

   Karmaşık tür,  Sayısal Türler --- int, float, complex kısmında
   açıklanmıştır.

   3.6 sürümünde değişti: Rakamların, kod sabitlerinde olduğu gibi alt
   çizgi ile gruplandırılmasına izin verilir.

   3.8 sürümünde değişti: Eğer "__complex__()" ve "__float__()"
   tanımlanmadıysa, "__index__()" 'e geri döner.

delattr(object, name)

   This is a relative of "setattr()".  The arguments are an object and
   a string.  The string must be the name of one of the object's
   attributes.  The function deletes the named attribute, provided the
   object allows it.  For example, "delattr(x, 'foobar')" is
   equivalent to "del x.foobar". *name* need not be a Python
   identifier (see "setattr()").

class dict(**kwarg)
class dict(mapping, **kwarg)
class dict(iterable, **kwarg)

   Yeni bir sözlük yaratır. "dict" nesnesi bir sözlük sınıfıdır.  Bu
   sınıf hakkındaki dökümantasyon için "dict" ve Mapping Types ---
   dict 'e bakınız.

   Diğer konteynerler için dahili "list" , "set" , "tuple" sınıfları
   ve "collections" modülüne bakınız.

dir([object])

   Argüman yoksa, mevcut yerel kapsamdaki isimleri liste olarak
   döndürür. Argüman varsa, o nesne için geçerli özelliklerin bir
   listesini döndürmeye çalışır.

   Eğer nesne "__dir__()" adında bir metoda sahipse, bu metot çağrılır
   ve nesnenin özelliklerinin listesini döndürmelidir. Bu, özel bir
   "__getattr__()" veya "__getattribute__()" fonksiyonunu uygulayan
   nesnelerin, "dir()" 'in özellikleri bildirme şeklini
   özelleştirmesine izin verir.

   Eğer nesne "__dir__()" metodu sağlamıyorsa, fonksiyon nesnenin
   "__dict__" özelliğinden veri toplamak için elinen gelenin en
   iyisini dener. Sonuç listesinin tamamlanmış olmasına gerek yoktur
   ve nesnenin özel bir  "__getattr__()" fonksiyonu varsa kusurlu
   olabilir.

   Varsayılan "dir()" mekanizması, eksiksiz bilgi yerine en alakalı
   bilgiyi üretmeye çalıştığı için farklı nesne türleriyle farklı
   çalışır:

   * Eğer nesne bir modül nesnesiyse, liste modülün özelliklerinin
     isimlerini içerir.

   * Eğer nesne bir tür veya sınıf nesnesiyse, liste onun
     özelliklerini ve yinelemeli olarak tabanlarının özelliklerini
     içerir.

   * Aksi takdirde, liste nesnenin özelliklerini, sınıfının
     özelliklerini ve yinelemeli olarak sınıfının temel sınıflarının
     özelliklerini içerir.

   Sonuç listesi alfabetik olarak sıralanmıştır. Örnek olarak:

   >>> import struct
   >>> dir()   # show the names in the module namespace  
   ['__builtins__', '__name__', 'struct']
   >>> dir(struct)   # show the names in the struct module 
   ['Struct', '__all__', '__builtins__', '__cached__', '__doc__', '__file__',
    '__initializing__', '__loader__', '__name__', '__package__',
    '_clearcache', 'calcsize', 'error', 'pack', 'pack_into',
    'unpack', 'unpack_from']
   >>> class Shape:
   ...     def __dir__(self):
   ...         return ['area', 'perimeter', 'location']
   >>> s = Shape()
   >>> dir(s)
   ['area', 'location', 'perimeter']

   Not:

     Çünkü "dir()", öncelikle etkileşimli bir komut isteminde kullanım
     kolaylığı sunmak amacıyla sağlanır. Titizlikle ve tutarlı bir
     isim kümesi sağlamaktansa ilginç bir isim kümesi sağlar, Detaylı
     davranışlı sürümler arasında değişikliğe uğrayabilir. Örnek
     olarak, argüman sınıf ise metasınıf özellikleri sonuç listesinde
     yer almaz.

divmod(a, b)

   Argüman olarak iki (karmaşık olmayan) sayı alır ve bölme işlemi
   yapılırken bu argümanların bölümleri ve kalanlarından oluşan bir
   sayı çifti döndürür. Karışık işlenen türlerinde, ikili aritmetik
   işleçler için geçerli olan kurallar geçerlidir. Sonuç tam sayılar
   için "(a // b, a % b)" , Gerçel sayılar için "(q, a % b)" (*q*
   genellikle "math.floor(a / b)" 'ye eşit ama bundan 1 eksik
   olabilir). Her durumda "q * b + a % b" , *a* 'ya çok yakındır. Eğer
   "a % b" sıfır değilse, *b* ile aynı işarete sahiptir ve "0 <= abs(a
   % b) < abs(b)".

enumerate(iterable, start=0)

   Bir numaralandırma nesnesi döndürür. *iterable* bir dize,
   *iterator* veya tekrarlamayı destekleyen başka bir nesne olmalıdır.
   Yineleyicinin by "enumerate()" tarafından döndürülen "__next__()"
   metodu bir sayıyı (varsayılan olarak 0 olan *start* 'dan) ve
   *iterable* üzerinde yinelemeden elde edilen değerleri içeren bir
   demet döndürür.

   >>> seasons = ['Spring', 'Summer', 'Fall', 'Winter']
   >>> list(enumerate(seasons))
   [(0, 'Spring'), (1, 'Summer'), (2, 'Fall'), (3, 'Winter')]
   >>> list(enumerate(seasons, start=1))
   [(1, 'Spring'), (2, 'Summer'), (3, 'Fall'), (4, 'Winter')]

   Şuna eşittir:

      def enumerate(sequence, start=0):
          n = start
          for elem in sequence:
              yield n, elem
              n += 1

eval(expression[, globals[, locals]])

   Argümanlar bir dize veya opsiyonel global ve yerel değişkenler
   olabilir. Sağlanırsa, *globals* bir sözlük olmalıdır. Sağlanırsa,
   *locals* herhangi bir haritalama nesnesi olabilir.

   *expression* bağımsız değişkeni, genel ve yerel ad alanı olarak
   *globals* ve *locals* sözlükleri kullanılarak Python ifadesi
   (teknik olarak bir koşul listesi) olarak ayrıştırılır ve
   değerlendirilir.  *globals* sözlüğü varsa ve "__builtins__"
   anahtarı için bir değer içermiyorsa, *expression* ayrıştırılmadan
   önce bu anahtarın altına yerleşik modül "builtins" sözlüğüne bir
   referans eklenir.  Bu şekilde, kendi "__builtins__" sözlüğünüzü
   "eval()" içine geçirmeden önce *globals* içine ekleyerek yürütülen
   kod için hangi yerleşiklerin kullanılabilir olduğunu kontrol
   edebilirsiniz.  *locals* sözlüğü atlanırsa, varsayılan olarak
   *globals* sözlüğünü kullanır.  Her iki sözlük de atlanırsa, ifade
   "eval()" olarak adlandırılan ortamda *globals* ve *locals* ile
   yürütülür.  Not, *eval()* kapsama ortamında *iç içe kapsamlar*
   (yerel olmayan) erişimi yoktur.

   Dönen değer değerlendirilmiş ifadenin sonucudur. Söz dizimi
   hataları, istisnalar olarak rapor edilir. Örnek:

   >>> x = 1
   >>> eval('x+1')
   2

   Bu fonksiyon keyfi kod nesnelerini ("compile()" tarafından
   oluşturulanlar gibi) çalıştırmak için de kullanılabilir. Bu
   durumda, dize yerine bir kod nesnesi iletin. Eğer kod nesnesi
   *mode* argümanı olarak "'exec'" ile derlendiyse, "eval()" 'in
   döndürdüğü değer "None" olacaktır.

   İpuçları: ifadelerin dinamik yürütmeleri "exec()" fonksiyonu
   tarafından desteklenir. "globals()" ve "locals()" fonksiyonları
   sırasıyla mevcut global ve yerel sözlüğü döndürür. "eval()" veya
   "exec()" tarafından kullanım için dolaşmak yararlı olabilir.

   Eğer verilen kaynak dize ise, baştaki ve sondaki boşluklar ve
   tab'lar çıkarılır.

   Sadece kalıp içeren ifadelerle dizeleri güvenli bir şekilde
   değerlendirebilen bir fonksiyon arıyorsanız, "ast.literal_eval()"
   'a bakınız.

   "code_object" argümanıyla bir denetleme olayı "exec" hatası ortaya
   çıkarır.

exec(object[, globals[, locals]])

   Bu fonksiyon Python kodunun dinamik çalıştırılmasını destekler.
   *object* bir kod objesi veya dize olmalıdır. Dize ise, dize daha
   sonra yürütülen bir Python ifadeleri paketi olarak ayrıştırılır
   (bir sözdizimi hatası olmadıkça). [1] eğer bir kod objesiyse,
   sadece çalıştırılır. Her durumda, çalıştırılacak kodun dosya girişi
   olarak geçerli olması beklenir (Referans Kılavuzundaki File input
   kısmına bakınız). "nonlocal", "yield", ve "return" ifadelerinin
   "exec()" fonksiyonuna geçirilen kod kaynağında bile fonksiyonlar
   dışında kullanılamayacağını unutmayınız. Döndürülen değer "None"
   'dır.

   Her durumda eğer opsiyonal kısımlar atlandıysa, kod mevcut kapsamda
   çalıştırılır. Eğer sadece *globals* sağlandıysa, global ve yerel
   değişkenler için kullanılacak bir sözlük olmalıdır (bir sözlüğün
   alt sınıfı değil).  Eğer *globals* ve *locals* sağlandıysa, global
   ve yerel değişkenler için sırasıyla kullanılırlar. Eğer
   sağlandıysa, *locals* herhangi bir haritalama objesi olabilir.
   Modül seviyesinde global ve yerel değişkenlerin aynı sözlükte
   bulunduğunu unutmayın. Eğer exec *globals* ve *locals* olarak iki
   ayrı nesne alırsa, kod bir sınıf tanımına gömülmüş gibi
   çalıştırılacaktır.

   Eğer *globals* sözlüğü "__builtins__" anahtarı için bir değer
   içermiyorsa, bu anahtarın altına bir referans yerleşik modül
   "builtins" 'in sözlüğüne eklenir. Bu şekilde, kendi "__builtins__"
   sözlüğünüzü "exec()" 'e geçirmeden önce *globals* içine ekleyerek
   yürütülen kod için hangi yerleşiklerin mevcut olduğunu kontrol
   edebilirsiniz.

   "code_object" argümanıyla bir denetleme olayı "exec" hatası ortaya
   çıkarır.

   Not:

     Yerleşik "globals()" ve "locals()" fonksiyonları mevcut global ve
     yerel sözlüğü sırasıyla döndürür. Bu, "exec()" 'e ikinci ve
     üçüncü argüman olarak kullanılmak üzere geçirmek için yararlı
     olabilir.

   Not:

     Varsayılan *locals* davranışı aşağıda "locals()" fonksiyonu için
     açıklandığı gibi: varsayılan *locals* sözlüğünde değişiklik
     yapılmaya çalışılmamalıdır. "exec()" fonksiyonu değer
     döndürdükten sonra kodun *locals* üzerindeki etkilerini görmeniz
     gerekiyorsa, açık bir *local* sözlüğü geçirin.

filter(function, iterable)

   *function* 'ın doğru döndürdüğü *iterable* ögelerinden bir
   yineleyici oluşturun. *iterable* bir dizi, yinelemeyi destekleyen
   bir konteyner veya bir yineleyici olabilir. Eğer *function* "None"
   ise, fonksiyon gelen parametreler üzerinde bir değişiklik yapmaz.
   *iterable* 'ın tüm yanlış elementleri silinir.

   Eğer fonksiyon "None" değilse ve "(item for item in iterable if
   item)" için fonksiyon "None" ise, "filter(function, iterable)" 'ın
   bir üretici ifadesine "(item for item in iterable if
   function(item))" eşit olduğunu unutmayın.

   *function* 'ın yanlış döndürdüğü *iterable* öğelerini döndüren
   tamamlayıcı fonksiyon için "itertools.filterfalse()" 'a bakınız..

class float([x])

   Bir numara veya string *x* 'ten oluşturulan bir reel sayı döndürür.

   If the argument is a string, it should contain a decimal number,
   optionally preceded by a sign, and optionally embedded in
   whitespace.  The optional sign may be "'+'" or "'-'"; a "'+'" sign
   has no effect on the value produced.  The argument may also be a
   string representing a NaN (not-a-number), or positive or negative
   infinity.  More precisely, the input must conform to the
   "floatvalue" production rule in the following grammar, after
   leading and trailing whitespace characters are removed:

      sign        ::= "+" | "-"
      infinity    ::= "Infinity" | "inf"
      nan         ::= "nan"
      digitpart   ::= digit (["_"] digit)*
      number      ::= [digitpart] "." digitpart | digitpart ["."]
      exponent    ::= ("e" | "E") ["+" | "-"] digitpart
      floatnumber ::= number [exponent]
      floatvalue  ::= [sign] (floatnumber | infinity | nan)

   Here "digit" is a Unicode decimal digit (character in the Unicode
   general category "Nd"). Case is not significant, so, for example,
   "inf", "Inf", "INFINITY", and "iNfINity" are all acceptable
   spellings for positive infinity.

   Aksi takdirde, argüman bir tam sayı veya reel sayıysa, aynı değerde
   reel sayı döndürülür. Eğer argüman Python reel sayı aralığının
   dışındaysa, "OverflowError" hatası ortaya çıkar.

   Genel bir Python nesnesi "x" için, "float(x)", "x.__float__()"
   fonksiyonuna delege eder. Eğer "__float__()" tanımlanmamışsa,
   "__index__()" 'e geri döner.

   Argüman verilmediyse, "0.0" döndürülür.

   Örnekler:

      >>> float('+1.23')
      1.23
      >>> float('   -12345\n')
      -12345.0
      >>> float('1e-003')
      0.001
      >>> float('+1E6')
      1000000.0
      >>> float('-Infinity')
      -inf

   Float tipi Sayısal Türler --- int, float, complex kısmında
   açıklandı.

   3.6 sürümünde değişti: Rakamların, kod sabitlerinde olduğu gibi alt
   çizgi ile gruplandırılmasına izin verilir.

   3.7 sürümünde değişti: *x* artık yalnızca konumsal bir
   parametredir.

   3.8 sürümünde değişti: "__float__()" tanımlanmadıysa, "__index__()"
   konumuna geri döner.

format(value[, format_spec])

   Bir *value* 'ı, *format_spec* tarafından kontrol edildiği gibi
   "biçimlendirilmiş" bir gösterime dönüştürür. *format_spec* 'in
   yorumlanması *value* argümanının tipine göre değişkendir; ama, çoğu
   yerleşik tiplerde kullanılan Format Specification Mini-Language
   adında bir standart biçimlendirme sözdizimi var.

   Varsayılan *format_spec*, "str(value)" fonksiyonunu çağırmakla aynı
   etkiyi gösteren boş bir dizedir.

   "format(value, format_spec)" çağrısı, değerin "__format__()"
   metodunu ararken örnek sözlüğü atlayan
   "type(value).__format__(value, format_spec)" biçimine çevrilir.
   Eğer metot araması "object" 'e ulaşırsa ve *format_spec* boş
   değilse, veya *format_spec* veya döndürülen değer dize değilse,
   "TypeError" hatası ortaya çıkar.

   3.4 sürümünde değişti: *format_spec* boş bir dize değilse,
   "object().__format__(format_spec)", "TypeError" hatasını ortaya
   çıkartır.

class frozenset([iterable])

   Opsiyonel olarak *iterable* öğesinden alınan öğelerle yeni bir
   "frozenset" nesnesi döndürür. "frozenset" yerleşik bir sınıftır. Bu
   sınıf hakkında dokümantasyona ulaşmak için "frozenset" ve Set
   Türleri --- set, frozenset 'e bakınız.

   Diğer konteynerler için, yerleşik "set", "list", "tuple", ve "dict"
   sınıflarına, ayrıca "collections" modülüne bakabilirsiniz.

getattr(object, name[, default])

   Return the value of the named attribute of *object*.  *name* must
   be a string. If the string is the name of one of the object's
   attributes, the result is the value of that attribute.  For
   example, "getattr(x, 'foobar')" is equivalent to "x.foobar".  If
   the named attribute does not exist, *default* is returned if
   provided, otherwise "AttributeError" is raised. *name* need not be
   a Python identifier (see "setattr()").

   Not:

     özel isim yönetimi derleme zamanında gerçekleştiğinden dolayı,
     "getattr()" ile almak için özel bir niteliğin (baştaki iki alt
     çizgili nitelikler) adını manuel olarak değiştirmek gerekir.

globals()

   Geçerli modül ad alanını uygulayan sözlüğü döndürür. Fonksiyonlar
   içeren kod için, bu fonksiyon tanımlandığında ayarlanır ve
   fonksiyonun çağrıldığı yerden bağımsız olarak aynı kalır.

hasattr(object, name)

   Argümanlar bir nesne ve dizedir. Eğer dize, nesnenin
   özelliklerinden birinin ismiyse "True", değilse "False" döndürür.
   (Bu "getattr(object, name)" 'i çağırarak uygulanır ve
   "AttributeError" hatası oluşup oluşmayacağı görülür.)

hash(object)

   Nesnenin karma değerini döndürür (eğer varsa). Karma değerler tam
   sayılardır. Sözlükleri incelerken hızlı bir şekilde anahtarları
   karşılaştırmak için kullanılırlar. Karşılaştırıldığında aynı olan
   nümerik değerler aynı karma değere sahiptir (1 ve 1.0 durumunda
   olduğu gibi farklı veri tiplerinde olsalar bile).

   Not:

     "__hash__()" metodu olan nesneler için, "hash()" öğesinin ana
     makinenin bit genişliğine göre döndürdüğü değeri kestiğini
     unutmayın. Detaylar için "__hash__()" 'e bakınız.

help([object])

   Yerleşik yardım sistemini çağırın. (Bu fonksiyon interaktif
   kullanıma yöneliktir.) Eğer argüman verilmediyse, interaktif yardım
   sistemi yorumlayıcı konsolunda başlar. Eğer argüman bir dize ise,
   bir modül, fonksiyon, sınıf, metot, anahtar kelime veya
   dokümantasyon konusu için dizeye bakılır ve bir yardım sayfası
   konsola bastırılır. Eğer argüman başka tipte bir nesne ise, nesne
   üzerinde bir yardım sayfası oluşturulur.

   Eğer "help()" çağrılırken bir fonksiyonun parametre listesinde eğik
   çizgi(/) bulunuyorsa, bu, eğik çizgiden önceki parametrelerin
   yalnızca konumsal olduğu anlamına gelir. Daha fazla bilgi için
   yalnızca konumsalparametrelerle ilgili SSS girişi 'ne bakınız.

   Bu fonksiyon "site" modülü tarafından yerleşik ad alanına eklenir.

   3.4 sürümünde değişti: "pydoc" ve "inspect" 'e gelen değişiklikler,
   çağrılabilir nesneler için rapor edilen damgaların artık daha
   kapsamlı ve tutarlı olduğunu ifade eder.

hex(x)

   Bir tam sayıyı küçük harflerden oluşan ve "0x" ile başlayan
   onaltılık bir dizeye dönüştürür. Eğer *x* Python "int" nesnesi
   değilse, tam sayı döndüren bir "__index__()" metoduna sahip
   olmalidir. Bazı örnekler:

   >>> hex(255)
   '0xff'
   >>> hex(-42)
   '-0x2a'

   Eğer bir tam sayıyı büyük harf-küçük harf, önekli-öneksiz bir
   onaltılık sayıya dönüştürmek istiyorsanız, aşağıdaki yolları
   kullanabilirsiniz:

   >>> '%#x' % 255, '%x' % 255, '%X' % 255
   ('0xff', 'ff', 'FF')
   >>> format(255, '#x'), format(255, 'x'), format(255, 'X')
   ('0xff', 'ff', 'FF')
   >>> f'{255:#x}', f'{255:x}', f'{255:X}'
   ('0xff', 'ff', 'FF')

   Ayrıca daha fazla bilgi için "format()" 'a bakabilirsiniz.

   Ayrıca onaltılık bir dizgiyi 16 tabanını kullanarak bir tam sayıya
   dönüştürmek için "int()" 'e bakınız.

   Not:

     Bir gerçel sayıdan onaltılık bir dize gösterimi elde etmek için
     "float.hex()" metodunu kullanın.

id(object)

   Bir nesnenin "kimlik" 'ini döndürür. Bu nesnenin ömrü boyunca eşsiz
   ve sabit olduğu garanti edilen bir tam sayıdır. Ömürleri örtüşmeyen
   iki nesne aynı "id()" değerine sahip olabilir.

   **CPython uygulama ayrıntısı:** This is the address of the object
   in memory.

   "id" argümanıyla beraber bir denetleme olayı "builtins.id" ortaya
   çıkartır.

input([prompt])

   Eğer *prompt* argümanı bulunuyorsa, sonunda yeni bir satır olmadan
   standart çıktıya yazılır. Ardından fonksiyon veri girişinden bir
   satır okur ve bunu bir dizeye çevirip (sondaki yeni satırı
   çıkartır) döndürür. EOF okunduğunda, "EOFError" istisnası ortaya
   çıkar. Örnek:

      >>> s = input('--> ')  
      --> Monty Python's Flying Circus
      >>> s  
      "Monty Python's Flying Circus"

   Eğer "readline" modülü yüklendiyse, "input()" ayrıntılı satır
   düzenleme ve geçmiş özellikleri sağlamak için onu kullanacaktır.

   "prompt" argümanıyla birlikte bir denetleme olayı "builtins.input"
   ortaya çıkartır.

   "result" argümanıyla birlikte bir denetleme olayı
   "builtins.input/result" ortaya çıkartır.

class int([x])
class int(x, base=10)

   Bir numara veya *x* dizesinden bir tam sayı oluşturur. Eğer argüman
   verilmediyse 0 döndürür. *x* "__int__()" 'i içeriyorsa, "int(x)"
   "x.__int__()" 'i döndürür. *x* "__index__()" 'i içeriyorsa,
   "x.__index__()" 'i döndürür. *x* "__trunc__()" 'ı içeriyorsa,
   "x.__trunc__()" 'ı döndürür. Gerçel sayılar için, sayı tam sayıya
   çevrilir.

   If *x* is not a number or if *base* is given, then *x* must be a
   string, "bytes", or "bytearray" instance representing an integer in
   radix *base*.  Optionally, the string can be preceded by "+" or "-"
   (with no space in between), have leading zeros, be surrounded by
   whitespace, and have single underscores interspersed between
   digits.

   A base-n integer string contains digits, each representing a value
   from 0 to n-1. The values 0--9 can be represented by any Unicode
   decimal digit. The values 10--35 can be represented by "a" to "z"
   (or "A" to "Z"). The default *base* is 10. The allowed bases are 0
   and 2--36. Base-2, -8, and -16 strings can be optionally prefixed
   with "0b"/"0B", "0o"/"0O", or "0x"/"0X", as with integer literals
   in code.  For base 0, the string is interpreted in a similar way to
   an integer literal in code, in that the actual base is 2, 8, 10, or
   16 as determined by the prefix. Base 0 also disallows leading
   zeros: "int('010', 0)" is not legal, while "int('010')" and
   "int('010', 8)" are.

   Tam sayı tipi Sayısal Türler --- int, float, complex kısmında
   açıklandı.

   3.4 sürümünde değişti: Eğer *base* bir "int" örneği değilse ve
   *base* objesi "base.__index__" metoduna sahipse, bu metot, taban
   için bir tamsayı elde etmek için çağrılır. Önceki sürümler
   "base.__index__" yerine "base.__int__" 'i kullandı.

   3.6 sürümünde değişti: Rakamların, kod sabitlerinde olduğu gibi alt
   çizgi ile gruplandırılmasına izin verilir.

   3.7 sürümünde değişti: *x* artık yalnızca konumsal bir
   parametredir.

   3.8 sürümünde değişti: "__int__()" tanımlı değilse "__index__()"
   konumuna geri döner.

   3.10.7 sürümünde değişti: "int" string inputs and string
   representations can be limited to help avoid denial of service
   attacks. A "ValueError" is raised when the limit is exceeded while
   converting a string *x* to an "int" or when converting an "int"
   into a string would exceed the limit. See the integer string
   conversion length limitation documentation.

isinstance(object, classinfo)

   *object* argümanı, *classinfo* argümanının bir örneğiyse veya
   (doğrudan, dolaylı veya *sanal*) alt sınıfının bir örneğiyse "True"
   döndürür. Eğer *object* verilen tipte bir nesne değilse, fonksiyon
   mutlaka "False" döndürür. *classinfo*, tür nesnelerinden oluşan bir
   demet (veya yinelemeli olarak, bu tür diğer demetler) veya birden
   çok türden bir Sendika Türü ise, ayrıca *object* bu verilen
   türlerden herhangi birinin örneği ise "True" döndürür. Eğer
   *classinfo* bir tür veya türler içeren bir tuple değilse,
   "TypeError" hatası ortaya çıkar.

   3.10 sürümünde değişti: *classinfo* bir Sendika Türü olabilir.

issubclass(class, classinfo)

   Return "True" if *class* is a subclass (direct, indirect, or
   *virtual*) of *classinfo*.  A class is considered a subclass of
   itself. *classinfo* may be a tuple of class objects (or
   recursively, other such tuples) or a Sendika Türü, in which case
   return "True" if *class* is a subclass of any entry in *classinfo*.
   In any other case, a "TypeError" exception is raised.

   3.10 sürümünde değişti: *classinfo* bir Sendika Türü olabilir.

iter(object[, sentinel])

   Bir *iterator* nesnesi döndürür. İlk parametre ikinci parametrenin
   sunumuna oldukça bağımlı bir şekilde yorumlanır. İkinci parametre
   yoksa, *nesne* *iterable* protokolünü ("__iter__()" metodu)
   destekleyen bir koleksiyon objesi olmalıdır veya dizi protokolünü
   ("0" 'dan başlayarak tam sayı değerleri alan "__getitem__()"
   metodu) desteklemelidir. Eğer bu iki protokolü de desteklemiyorsa,
   "TypeError" hatası ortaya çıkar. Eğer 2. argüman, *sentinel*,
   verildiyse, *nesne* çağırılabilir bir nesne olmalıdır. Bu durumda
   oluşturulan yineleyici, "__next__()" yöntemine yapılan her çağrı
   için hiçbir argüman olmadan *nesne* 'yi çağırır; döndürülen değer
   *sentinel* 'e eşitse, "StopIteration" hatası ortaya çıkar, aksi
   takdirde değer döndürülür.

   Ayrıca Yineleyici Türleri bkz.

   "iter()" 'in ikinci formunun kullanışlı uygulamalarından biri bir
   blok okuyucu inşaa etmektir. Örnek olarak, dosyanın sonuna
   ulaşılana kadar ikili bir veritabanı dosyasından sabit genişlikte
   bloklar okunurken:

      from functools import partial
      with open('mydata.db', 'rb') as f:
          for block in iter(partial(f.read, 64), b''):
              process_block(block)

len(s)

   Bir objenin uzunluğunu (element sayısını) döndürür. Argüman bir
   dizi (örneğin dize, bytes, demet, liste veya aralık) veya bir
   koleksiyon (örneğin sözlük, küme veya dondurulmuş küme) olabilir.

   **CPython uygulama ayrıntısı:** "len", "range(2 ** 100)" gibi
   "sys.maxsize" 'dan daha geniş uzunluklar için "OverflowError"
   hatası ortaya çıkartır.

class list([iterable])

   Bir fonksiyon görevi görmektense, Listeler ve Dizi Tipleri ---
   list, tuple, range de anlatıldığı gibi "list" bir değiştirebilir
   dizi çeşididir.

locals()

   Anlık yerel sembol tablosunu temsil eden bir sözlüğü günceller ve
   döndürür. Serbest değişkenler "locals()" fonksiyon bloklarında
   çağırıldığında onun aracılığıyla döndürülür, aynısı sınıf
   bloklarında geçerli değildir. Unutmayın ki modül seviyesinde,
   "locals()" ve "globals()" aynı sözlüklerdir.

   Not:

     Bu sözlüğün içeriği modifiye edilmemelidir, değişiklikler
     yorumlayıcı tarafından kullanılan yerel ve serbest değişkenlerin
     değerlerini etkilemeyebilir.

map(function, iterable, ...)

   *iterable* 'in her elementini *fonksiyon* 'a gönderen bir
   yineleyici döndürür ve sonuçları sunar. Eğer ek *iterable*
   parametreleri verildiyse, *fonksiyon* o sayıda parametre almalı ve
   paralel bir şekilde tüm yinelenebilir nesnelerden tüm elementleri
   uygulamalıdır. Birden fazla yinelenebilir nesne ile, yineleyici en
   kısa yinelenebilir nesne tükendiğinde durur. Fonksiyon girdilerinin
   zaten demetler halinde verildiği durumlar için,
   "itertools.starmap()"'a bakın.

max(iterable, *[, key, default])
max(arg1, arg2, *args[, key])

   Bir yineleyicinin veya birden fazla parametrenin en büyük
   elementini döndürür.

   Eğer bir konumsal parametre sağlandıysa, o bir  *iterable*
   olmalıdır. Yineleyicinin en büyük elementi döndürülür. Eğer iki
   veya daha fazla pozisyonel parametre sağlandıysa, pozisyonel
   parametrelerin en büyüğü döndürülür.

   İki tane opsiyonel anahtar kelime parametresi vardır. *key*
   parametresi, "list.sort()" için kullanıldığı gibi bir parametre
   talep etme fonksiyonunu belirtir. *varsayılan* parametre, sağlanan
   yineleyici boş ise döndürülecek nesneyi belirtir. Eğer yineleyici
   boş ve *varsayılan* verilmemiş ise, "ValueError" hatası ortaya
   çıkar.

   Eğer birden fazla element en büyük ise, fonksiyon ilk rastlananı
   döndürür. bu "sorted(iterable, key=keyfunc, reverse=True)[0]" ve
   "heapq.nlargest(1, iterable, key=keyfunc)" gibi sıralama
   kararlılığı muhafaza eden araçlar ile uygundur.

   3.4 sürümünde geldi: *varsayılan* yalnızca anahtar kelime
   parametresi.

   3.8 sürümünde değişti: *key* "None" olabilir.

class memoryview(object)

   Verilen argümandan oluşturulan bir "memory view" objesi döndürür.
   Daha fazla bilgi için Memory Views bkz.

min(iterable, *[, key, default])
min(arg1, arg2, *args[, key])

   Bir yineleyicideki en küçük elementi veya birden fazla argümandan
   en küçüğünü döndürür.

   Eğer bir argüman sağlandıysa, argüman bir *iterable* olmalıdır.
   Yineleyicinin en küçük elementi döndürülür. Eğer birden fazla
   argüman sağlandıysa, argümanların en küçüğü döndürülür.

   İki tane opsiyonel anahtar kelime parametresi vardır. *key*
   parametresi, "list.sort()" için kullanıldığı gibi bir parametre
   talep etme fonksiyonunu belirtir. *varsayılan* parametre, sağlanan
   yineleyici boş ise döndürülecek nesneyi belirtir. Eğer yineleyici
   boş ve *varsayılan* verilmemiş ise, "ValueError" hatası ortaya
   çıkar.

   Eğer birden fazla element minimum ise, ilk karşılaşılan döndürülür.
   Bu, "sorted(iterable, key=keyfunc)[0]" ve "heapq.nsmallest(1,
   iterable, key=keyfunc)" gibi diğer sıralama kararlılığını koruma
   araçlarıyla tutarlı çalışır.

   3.4 sürümünde geldi: *varsayılan* yalnızca anahtar kelime
   parametresi.

   3.8 sürümünde değişti: *key* "None" olabilir.

next(iterator[, default])

   *iterator* 'ın "__next__()" metodunu çağırarak sıradaki elementi
   getirir. Eğer *default* verildiyse ve yineleyici tükenmiş ise
   *default* döndürülür, aksi takdirde "StopIteration" hatası ortaya
   çıkar.

class object

   Yeni bir niteliksiz nesne döndürün. "object" tüm sınıflar için
   temeldir. Tüm Python sınıflarında bulunan genel metotları içerir.
   Bu fonksiyon hiçbir argüman kabul etmez.

   Not:

     "object", "__dict__" özelliğine sahip *değildir*, yani bir
     "object" örneğine keyfi özellikler atayamazsınız.

oct(x)

   Bir tamsayıyı "0o" ön ekiyle oktal bir dizeye çevirir. Sonuç
   geçerli bir Python ifadesidir. Eğer *x* bir Python "int" nesnesi
   değilse, tamsayı döndüren bir "__index__()" metoduna sahip
   olmalıdır. Örnek olarak:

   >>> oct(8)
   '0o10'
   >>> oct(-56)
   '-0o70'

   Eğer bir tamsayıyı "0o" ön ekiyle veya ön eksiz oktal bir dizeye
   dönüştürmek istiyorsanız, aşağıdaki yolları kullanabilirsiniz.

   >>> '%#o' % 10, '%o' % 10
   ('0o12', '12')
   >>> format(10, '#o'), format(10, 'o')
   ('0o12', '12')
   >>> f'{10:#o}', f'{10:o}'
   ('0o12', '12')

   Ayrıca daha fazla bilgi için "format()" 'a bakabilirsiniz.

open(file, mode='r', buffering=- 1, encoding=None, errors=None, newline=None, closefd=True, opener=None)

   *file* 'ı açar ve buna karşılık gelen *file object* 'i döndürür.
   Eğer dosya açılamazsa, "OSError" hatası ortaya çıkar. Bu
   fonksiyonun nasıl kullanıldığına dair daha fazla örnek için
   Dosyaları Okuma ve Yazma bkz.

   *file*, açılan dosyanın açılması veya dosyanın bir tam sayı dosya
   tanımlayıcısının paketlenmesi için bir yol adını (mutlak veya
   geçerli çalışma dizinine göre) veren *path-like object* 'dir. (Eğer
   bir dosya açıklayıcısı veirldiyse, *closefd*, "False" 'a
   ayarlanmadığı sürece I/O nesnesi kapatıldığında kapatılır.

   *mode* dosyanın açılacağı modu belirten opsiyonel bir dizedir.
   Varsayılan olarak metin modunda okuma anlamına gelen "'r'" değerini
   alır. Diğer sıradan değerler yazmak için (dosya zaten varsa
   kesilir) "'w'", ayrıcalıklı oluşturma için "'x'" ve dosyaya ekleme
   yapmak için (*bazı* Unix sistemlerinde, *hepsi* o anki imleç
   pozisyonundan bağımsız dosyanın sonuna ekleme anlamına gelir).
   Metin modunda, *encoding* belirtilmemiş ise kullanılan kodlayıcı
   platforma bağlıdır: "locale.getpreferredencoding(False)" geçerli
   kodlayıcıyı getirmek için çağırılır. (İşlenmemiş baytlar okumak
   veya yazmak için ikili modu kullanın ve *encoding* 'i boş bırakın.
   Geçerli modlar:

   +-----------+-----------------------------------------------------------------+
   | Karakter  | Anlam                                                           |
   |===========|=================================================================|
   | "'r'"     | okumaya açık (varsayılan)                                       |
   +-----------+-----------------------------------------------------------------+
   | "'w'"     | yazmaya açık, önce dosyayı keser                                |
   +-----------+-----------------------------------------------------------------+
   | "'x'"     | ayrıcalıklı oluşturma için açık, dosya varsa hata verir         |
   +-----------+-----------------------------------------------------------------+
   | "'a'"     | yazmaya açık, eğer dosya bulunuyorsa dosyaya ekleme yapar       |
   +-----------+-----------------------------------------------------------------+
   | "'b'"     | ikili mod                                                       |
   +-----------+-----------------------------------------------------------------+
   | "'t'"     | metin modu (varsayılan)                                         |
   +-----------+-----------------------------------------------------------------+
   | "'+'"     | güncellemeye açık (okuma ve yazma)                              |
   +-----------+-----------------------------------------------------------------+

   Varsayılan mod "'r'" (okumaya açık, "'rt'" 'nin eşanlamlısı.) 'dir.
   "'w+'" ve "'w+b'" modları dosyayı açar ve temizlerler. "'r+'" ve
   "'r+b'" modları dosyayı temizlemeden açarlar.

   Overview 'de bahsedildiği gibi, Python ikili ve metin I/O arasında
   ayrım yapar. İkili modda (*mode* parametresinde "'b'" 'yi içererek)
   açılan dosyalar, içerikleri "bytes" nesneleri halinde deşifre
   etmeden döndürür. Metin modunda (varsayılan, veya *mode*
   parametresinde "'t'" içerildiğinde), dosyanın içeriği "str" olarak
   döndürülür, baytlar platforma bağlı bir kodlayıcı veya belirtilen
   *encoding* 'i kullanarak deşifre edilir.

   İzin verilen ek bir mod karakteri vardır, "'U'", artık bir etkisi
   yoktur ve "kullanımdan kaldırıldı" olarak değerlendirilir. Önceden
   Python 3.0 da varsayılan hale gelen, metin modunda *universal
   newlines* 'i aktif ederdi. Parametrenin detayları için newline
   sayfasına bakınız.

   Not:

     Python, temel alınan işletim sisteminin metin dosyaları kavramına
     bağlı değildir. Tüm işlemler Python'un kendisi tarafından yapılır
     ve bu yüzden de platformdan bağımsızdır.

   *buffering* is an optional integer used to set the buffering
   policy.  Pass 0 to switch buffering off (only allowed in binary
   mode), 1 to select line buffering (only usable in text mode), and
   an integer > 1 to indicate the size in bytes of a fixed-size chunk
   buffer. Note that specifying a buffer size this way applies for
   binary buffered I/O, but "TextIOWrapper" (i.e., files opened with
   "mode='r+'") would have another buffering. To disable buffering in
   "TextIOWrapper", consider using the "write_through" flag for
   "io.TextIOWrapper.reconfigure()". When no *buffering* argument is
   given, the default buffering policy works as follows:

   * İkili dosyalar sabit boyutlu yığınlarda arabelleğe alınır;
     arabelleğin boyutu temel cihazın "blok boyutu"'nu belirlemek için
     buluşsal bir deney kullanılarak seçilir ve
     "io.DEFAULT_BUFFER_SIZE" değerine düşer. Çoğu sistemde, arabellek
     4096 veya 8192 bayt uzunluğunda olacaktır.

   * "İnteraktif" metin dosyaları ("isatty()" 'nın "True" döndürdüğü
     dosyalar) satır arabelleğe almayı kullanır. Diğer metin dosyaları
     yukarıda ikili dosyalar için açıklanan poliçeyi kullanırlar.

   *encoding* dosyayı kodlamak veya deşifre etmek için kullanılan
   kodlayıcının ismidir. Bu sadece metin modunda kullanılmalıdır.
   Varsayılan kodlayıcı platforma bağımlıdır
   ("locale.getpreferredencoding()" ne döndürüyorsa), ama Python
   tarafından desteklenen herhangi bir *text encoding* kullanılabilir.
   Desteklenen kodlayıcıların listesi için "codecs" modülüne bkz.

   *errors* şifreleme ve deşifreleme hatalarının nasıl işleneceğini
   belirten opsiyonel bir dizedir—bu ikili modda kullanılamaz. Bazı
   standart hata işleyecileri mevcuttur (Error Handlers 'da
   listelendi), ayrıca "codecs.register_error()" ile kaydedilen
   herhangi bir hata işleyici ismi de geçerlidir. Standart isimler
   bunları içerir:

   * "'strict'", bir kodlama hatası varsa bir "ValueError" istisnasını
     yükseltmek için kullanılır. Varsayılan değer "None" ile aynı
     etkiyi gösterir.

   * "'ignore'" hataları görmezden gelir. Kodlayıcı hatalarını
     görmezden gelmenin veri kaybı ile sonuçlanabileceğini unutmayın.

   * "'replace'" hatalı biçimlendirilmiş veri olduğunda  bir yedek
     işaretleyici ("'?'" gibi) 'nin hatalı biçimlendirilmiş verinin
     yerine geçmesine neden olur.

   * "'surrogateescape'", hatalı baytları U+DC80'den U+DCFF'ye kadar
     değişen vekil kod birimleri olarak sunacaktır. Bu vekil kod
     birimleri sonradan "surrogateescape" hata işleyicisi veri yazmak
     için kullanıldığında aynı baytlara geri döndürülecektir. Bu
     dosyaları bilinmeyen bir kodlayıcıyla işlerken kullanışlıdır.

   * "'xmlcharrefreplace'" sadece bir dosyaya veri yazarken
     desteklenir. Kodlayıcı tarafından desteklenmeyen karakterler
     uygun XML karakter örneği ile değiştirilir.

   * "'backslashreplace'" Python'un ters slash kaçış karakterleri
     yüzünden oluşan hatalı veriyi değiştirir.

   * "'namereplace'" (sadece yazarken desteklenir) desteklenmeyen
     karakterleri "\N{...}" kaçış karakterleriyle değiştirir.

   *newline* determines how to parse newline characters from the
   stream. It can be "None", "''", "'\n'", "'\r'", and "'\r\n'".  It
   works as follows:

   * Akıştan veri okurken eğer *newline* "None" ise, evrensel
     *newlines* aktif hale getirilir. Girdideki satırlar "'\n'",
     "'\r'", veya "'\r\n'" ile bitebilirler ve bunlar çağrıcıya
     döndürülmeden önce "'\n'" 'e çevrilirler. Eğer "''" ise, evrensel
     *newlines* aktif hale getirilir ama satır sonları çağrıcıya
     çevrilmeden döndürülürler. Eğer başka bir geçerli değer
     verildiyse, girdi satırları sadece verilen dize ile sonlanır ve
     satır sonu çağrıcıya çevrilmeden döndürülür.

   * Çıktıyı akışa yazarkeni eğer *newline* "None" ise, tüm "'\n'"
     karakterleri sistemin varsayılan satır ayırıcısına, "os.linesep"
     'e dönüştürülür. Eğer *newline* """ veya "`'\n'" ise, bir
     dönüştürme yapılmaz. Eğer *newline* diğer uygun değerlerden biri
     ise, tüm "'\n'" karakterleri verilen dizeye dönüştürülür.

   Eğer *closefd*, "False" ise ve dosya adı yerine bir dosya
   tanımlayıcısı verildiyse, dosya kapatıldığında temel dosya
   tanımlayıcısı açık kalacaktır. Eğer bir dosya adı verildiyse,
   *closefd* "True" olmalıdır (varsayılan); aksi takdirde, bir hata
   ortaya çıkar.

   *opener* yerine bir çağrılabilir nesne verilerek özel bir açıcı
   kullanabilirsiniz. Dosya nesnesi için temel dosya tanımlayıcısı
   sonradan *opener* 'ı (*file*, *flags*) ile çağırarak elde edilir.
   *opener* bir açık dosya tanımlayıcısı döndürmelidir (*opener*
   yerine "os.open" göndermek fonksiyonel olarak "None" göndermek ile
   benzer sonuçlanır).

   Yeni oluşturulan dosya non-inheritable 'dir.

   Aşağıdaki örnek verilen bir dizine ait bir dosyayı açmak için
   "os.open()" fonksiyonunun dir_fd parametresini kullanır:

      >>> import os
      >>> dir_fd = os.open('somedir', os.O_RDONLY)
      >>> def opener(path, flags):
      ...     return os.open(path, flags, dir_fd=dir_fd)
      ...
      >>> with open('spamspam.txt', 'w', opener=opener) as f:
      ...     print('This will be written to somedir/spamspam.txt', file=f)
      ...
      >>> os.close(dir_fd)  # don't leak a file descriptor

   "open()" metodu tarafından döndürülen *file object* 'in tipi moda
   bağlıdır. "open()" bir dosyayı metin modunda ("'w'", "'r'", "'wt'",
   "'rt'" vb.) açmak için kullanıldığında, "io.TextIOBase" 'in bir alt
   sınıfını döndürür (özellikle "io.TextIOWrapper"). Bir dosyayı ikili
   modda arabellek ile açmak için kullanıldığında, döndürülen sınıf
   "io.BufferedIOBase" 'ın alt sınıfıdır. Kesin sınıf değişkendir:
   ikili okuma modunda, bir "io.BufferedReader" döndürür; ikili yazma
   ve ikili ekleme modunda, "io.BufferedWriter" döndürür, ve
   okuma/yazma modunda "io.BufferedRandom" döndürür. Arabelleğe alma
   devre dışı olduğunda, ham akış, "io.RawIOBase" 'in alt sınıfı,
   "io.FileIO" döndürülür.

   Ayrıca "fileinput", "io" ("open()" 'ın tanımlandığı yer), "os",
   "os.path", "tempfile", ve "shutil" gibi dosya işleme modüllerine de
   bkz.

   "file", "mode", "flags" parametreleriyle bir audition event "open"
   ortaya çıkartır.

   "mode" ve "flags" parametreleri orijinal çağrı tarafından modifiye
   edilmiş veya çıkartılmış olabilir.

      3.3 sürümünde değişti:

      * *opener* parametresi eklendi.

      * "'x'" modu eklendi.

      * Eskiden "IOError" hatası ortaya çıkardı, şimdi "OSError" 'un
        takma adıdır.

      * Artık eğer özel oluşturma modunda ("'x'") açılmış dosyalar
        zaten bulunuyorsa "FileExistsError" hatası ortaya çıkar.

      3.4 sürümünde değişti:

      * Dosya artık miras alınamaz.

   Deprecated since version 3.4, removed in version 3.10: "'U'" modu.

      3.5 sürümünde değişti:

      * Eğer sistem çağrısı bölündüyse ve sinyal işleyicisi bir hata
        ortaya çıkartmazsa, artık fonksiyon "InterruptedError" hatası
        ortaya çıkartmak yerine sistem çağrısını yeniden dener
        (açıklama için **PEP 475** bkz).

      * "'namereplace'" hata işleyicisi eklendi.

      3.6 sürümünde değişti:

      * "os.PathLike" uygulayan nesneleri kabul etme desteği eklendi.

      * Windows'da, bir konsol arabelleğinin açılması "io.FileIO"
        dışında bir "io.RawIOBase" alt sınıfını döndürebilir.

ord(c)

   Bir Unicode karakterini temsil eden dize verilir ve o karakterin
   Unicode kod noktasını temsil eden bir tamsayı döndürür. Örneğin,
   "ord('a')" "97" tamsayısını döndürür ve "ord('€')" (Euro simgesi)
   "8364" tamsayısını döndürür. Bu "chr()" 'nin tersidir.

pow(base, exp[, mod])

   *base* 'in *exp* kuvvetini döndürür; *mod* verildiyse, aynı sayı %
   *mod* sonucunu döndürür ("pow(base,exp) % mod" 'dan daha verimli
   işlenir). İki parametreli formu "pow(base, exp)", üs operatörü
   "base**exp" kullanmaya eşdeğerdir.

   Parametreler nümerik olmak zorundadır. Karışık işlenen türleriyle,
   ikili aritmetik operatörler için baskı kuralları geçerlidir. "int"
   işlemleri için, ikinci parametre negatif olmadığı sürece sonuç
   işlenen ile aynı türe sahip olmalıdır (baskıdan sonra); bu durumda,
   tüm parametreler gerçel sayıya çevrilir ve bir gerçel sayı sonucu
   teslim edilir. Örneğin "pow(10, 2)", "100" değerini döndürür, ama
   "pow(10, -2)", "0.01" değerini döndürür. integral olmayan bir üs
   ile "int" veya "float" tipinin negatif tabanı için, karmaşık bir
   sayı çıktı verilir. Örneğin, "pow(-9, 0.5)", "3j" 'ye yakın bir
   değer döndürür.

   "int" işlemleri için *mod* verilmişse, *base* ve *exp* bir tam sayı
   olmalıdır, aynı zamanda *mod* sıfır olamaz. Eğer *mod* verilmişse
   ve *exp* negatifse, *base*, *mod* için görece asal olmalıdır. Bu
   durumda, "pow(inv_base,-exp,mod)" döndürülüri *inv_base, *base* mod
   *mod* 'un tersidir.

   Burada "38" mod "97" 'nin tersini işlemek için bir örnek var:

      >>> pow(38, -1, mod=97)
      23
      >>> 23 * 38 % 97 == 1
      True

   3.8 sürümünde değişti: "int" işlenenleri için, "pow" 'un üç
   parametreli formu artık ikinci parametrenin negatif olmasına,
   modüler terslerin hesaplanmasına izin verir.

   3.8 sürümünde değişti: Anahtar kelime parametrelerine izin ver,
   önceden sadece pozisyonel parametreler desteklenirdi.

print(*objects, sep=' ', end='\n', file=None, flush=False)

   Metin akış *file* 'ına *sep* tarafından ayırılacak ve *end* ile
   bitirilecek şekilde  *objects* 'i yazdırır. *sep*, *end, *file*, ve
   *flush* sunulursa anahtar kelime parametreleri olarak verilmelidir.

   Tüm anahtar kelime olmayan parametler "str()" 'in yaptığı gibi
   dizeye çevirilir ve *sep* tarafından ayırılıp *end* ile bitecek
   şekilde akışa yazdırılır. *sep* ve *end* dize veya "None"
   olmalıdır. "None" olduğunda varsayılan değerler kullanılır. Eğer
   *objects* verilmediyse, "print()" sadece *end* 'i yazdırır.

   *file* parametresi "write(string)" metodu içeren bir obje
   olmalıdır; eğer sunulmamış veya "None" ise, "sys.stdout"
   kullanılacaktır. Yazdırılan argümanlar metin dizelerine
   çevrildiğinden, "print()" ikili dosya nesneleri ile kullanılamaz.
   Bunlar için, "file.write(...)" 'ı kullanın.

   Output buffering is usually determined by *file*. However, if
   *flush* is true, the stream is forcibly flushed.

   3.3 sürümünde değişti: *flush* anahtar kelimesi argümanı eklendi.

class property(fget=None, fset=None, fdel=None, doc=None)

   Bir özellik özelliği döndürür.

   *fget* bir özelliğin değerini almak için kullanılan bir
   fonksiyondur. *fset* bir özelliğin değerini ayarlamak için
   kullanılan bir fonksiyondur. *fdel* bir özelliğin değerini silmek
   için kullanılan bir fonksiyondur, ve *doc* özellik için bir belge
   dizisi oluşturur.

   Yönetilen bir "x" özelliği tanımlamak için tipik bir yöntem:

      class C:
          def __init__(self):
              self._x = None

          def getx(self):
              return self._x

          def setx(self, value):
              self._x = value

          def delx(self):
              del self._x

          x = property(getx, setx, delx, "I'm the 'x' property.")

   Eğer *c*, *C* 'nin bir örneğiyse, "c.x", alıcı fonksiyonu
   çağıracaktır. "c.x = value" ayarlayıcı fonksiyonu, "del c.x" ise
   siliciyi çağıracaktır.

   Eğer verildiyse, *doc* property özelliğinin doküman dizisi
   olacaktır. Aksi takdirde, property *fget* 'in (bulunuyorsa) doküman
   dizisini kopyalayacaktır. Bu "property()" 'i *decorator* olarak
   kullanarak kolayca salt-okunur özellikler oluşturmayı mümkün kılar:

      class Parrot:
          def __init__(self):
              self._voltage = 100000

          @property
          def voltage(self):
              """Get the current voltage."""
              return self._voltage

   "@property" dekoratörü "voltage()" metodunu aynı isimli salt-okunur
   bir özellik için "getter" metoduna dönüştürür ve *voltage* için
   doküman dizisini "Get the current voltage." olarak ayarlar.

   Bir property nesnesi, dekore edilmiş metoda ayarlanan ilgili
   erişimci metoduyla özelliğin bir kopyasını oluşturmak için
   dekoratör olarak kullanılabilen "getter", "setter", ve "deleter"
   metotlarını içerir. Bu en iyi şekilde bir örnekle açıklanabilir:

      class C:
          def __init__(self):
              self._x = None

          @property
          def x(self):
              """I'm the 'x' property."""
              return self._x

          @x.setter
          def x(self, value):
              self._x = value

          @x.deleter
          def x(self):
              del self._x

   Bu kod birinci örneğin tamamen eşdeğeridir. Orijinal özellikte
   olduğu gibi ekstra fonksiyonlara aynı ismi verdiğinizden emin olun
   (bu durumda "x").

   Döndürülen property nesnesi yapıcı metotta verilen "fget", "fset",
   ve "fdel" özelliklerine sahiptir.

   3.5 sürümünde değişti: Property nesnelerinin doküman dizeleri artık
   yazılabilir.

class range(stop)
class range(start, stop[, step])

   Bir metot olmaktansa, "range" aslında bir değiştirilemez dizi
   tipidir. Daha fazla bilgi için Aralıklar ve Dizi Tipleri --- list,
   tuple, range 'e bakınız.

repr(object)

   Return a string containing a printable representation of an object.
   For many types, this function makes an attempt to return a string
   that would yield an object with the same value when passed to
   "eval()"; otherwise, the representation is a string enclosed in
   angle brackets that contains the name of the type of the object
   together with additional information often including the name and
   address of the object.  A class can control what this function
   returns for its instances by defining a "__repr__()" method. If
   "sys.displayhook()" is not accessible, this function will raise
   "RuntimeError".

reversed(seq)

   Ters bir *iterator* döndürür. *seq* "__reversed__()" metodunu
   içeren veya dizi protokolünü ("__len__()" metodu ve "0" ile
   başlayıp tam sayı argümanları alan bir "__getitem__()" metodu)
   destekleyen bir nesne olmalıdır.

round(number[, ndigits])

   Noktadan sonra *ndigits* basamak hassasiyetiyle *number* 'ı
   yuvarlar. Eğer *ndigits* verilmediyse veya "None" ise, *number* 'a
   en yakın tam sayı döndürülür.

   "round()" 'u destekleyen yerleşik yapılar için, değerler 10 üssü
   *ndigits* 'in en yakın katına yuvarlanır; eğer iki kat da eşitse,
   yuvarlama işlemi çift sayıya doğru yapılır (örneğin, "round(0.5)"
   ve "round(-0.5)" 'in değerleri "0" 'dır. ve "round(1.5)", "2"
   'dir). *ndigits* için herhangi bir tamsayı değeri (pozitif, sıfır
   veya negatif) uygundur. *ndigits* verilmediyse veya "None" ise
   döndürülen değer bir tam sayıdır. Aksi takdirde, döndürülen değerin
   tipi *number* 'ınkiyle aynıdır.

   Genel bir Python nesnesi için "number", "round" "number.__round__"
   'u temsil eder.

   Not:

     Gerçel sayılar için "round()" 'un davranışı şaşırtıcı olabilir:
     örneğin "round(2.675, 2)" beklenen gibi "2.68" yerine "2.67"
     sonucunu verir. Bu bir hata değil; çoğu ondalıklı kesir tamı
     tamına bir gerçel sayı olarak gösterilemeyeceğinden bu sonucu
     alıyoruz. Daha fazla bilgi için Kayan Nokta Aritmetiği: Sorunlar
     ve Sınırlamalar 'e bkz.

class set([iterable])

   Opsiyonel olarak *iterable* 'dan alınan elementlerle yeni bir "set"
   nesnesi döndürür. "set" yerleşik bir sınıftır. Bu sınıf hakkında
   dokümantasyon için "set" ve Set Türleri --- set, frozenset 'e
   bakınız.

   Diğer konteynerler için, yerleşik "frozenset", "list", "tuple" ve
   "dict" sınıflarını; aynı zamanda "collections"  modülüne bakınız.

setattr(object, name, value)

   Bu "getattr()" 'un karşılığıdır. Argümanlar bir nesne, dize ve
   opsiyonel değerdir. Dize halihazırda var olan veya yeni bir
   özelliğe isim verebilir. Fonksiyon, nesnenin izin vermesi
   koşuluyla, değeri özelliğe atar. Örneğin "setattr(x, 'foobar',
   123)" ve "x.foobar = 123" eşdeğerdir.

   *name* need not be a Python identifier as defined in Identifiers
   and keywords unless the object chooses to enforce that, for example
   in a custom "__getattribute__()" or via "__slots__". An attribute
   whose name is not an identifier will not be accessible using the
   dot notation, but is accessible through "getattr()" etc..

   Not:

     private name mangling, derleme sürecinde olacağından, "setattr()"
     ile ayarlamak için özel bir niteliğin (iki alt çizgi ile başlayan
     nitelikler) adını manuel olarak değiştirmek gerekir.

class slice(stop)
class slice(start, stop[, step])

   "range(start, stop, step)" tarafından belirtilen indekslerden
   oluşan kümeyi temsil eden bir *slice* nesnesi döndürür. *start* ve
   *step* parametreleri varsayılan olarak "None" 'dır. Dilim nesneleri
   sadece parametre değerlerini (veya varsayılan değerleri) döndüren
   salt-okunur "start", "stop", ve "step" özelliklerine sahiptir.
   Başka belirgin işlevselliği olmasa da; NumPy ve diğer üçüncü parti
   paketler tarafından kullanılırlar. Dilim nesneleri, genişletilmiş
   indeksleme sözdizimi kullanıldığında da üretilirler. Örneğin:
   "a[start:stop:step]" veya "a[start:stop, i]". Yineleyici döndüren
   alternatif bir versiyon için "itertools.islice()" 'e bakınız.

sorted(iterable, /, *, key=None, reverse=False)

   *iterable* 'ın içindeki elementlerden oluşan sıralı bir liste
   döndürür.

   İsimle belirtilmesi gereken 2 opsiyonel parametresi vardır.

   *key*, *iterable* 'ın her elementinden bir karşılaştırma anahtarı
   ayıklamak için kullanılan bir argümanın fonksiyonunu belirtir
   (örneğin, "key=str.lower"). Varsayılan değer "None" 'dır
   (elementleri direkt karşılaştırır).

   *reverse* bir boolean değerdir. Eğer "True" ise, liste elementleri
   tüm karşılaştırmalar tersine çevrilmiş şekilde sıralanır.

   Eski stil *cmp* fonksiyonunu bir *key* fonksiyonuna dönüştürmek
   için "functools.cmp_to_key()" 'yi kullanın.

   Yerleşik "sorted()" fonksiyonunun stabil çalışması
   garantilenmiştir. Bir sıralama eşit olan elementlerin ilgili
   sırasını değiştirmemeyi garantiliyorsa stabildir --- bu çoklu
   geçişlerle sıralama (örneğin önce departman, ardından maaş
   sıralama) için yardımcıdır.

   Sıralama algoritması elementler arasında sadece "<"
   karşılaştırmalarını kullanır. Bir "__lt__()" metodu tanımlamak
   sıralamak için yeterli olmasına rağmen, **PEP 8** tüm altı rich
   comparisons 'ların uygulanmasını öneriyor. Bu aynı veri ile "max()"
   gibi farklı bir temel metot ile çalışan farklı sıralama araçlarını
   kullanırken hataları önlemeyi kolaylaştıracaktır. Tüm
   karşılaştırmaları uygulamak ayrıca yansıtılan "__gt__()" metodunu
   çağırabilen karmaşık tür karşılaştırmaları için karışıklığı da
   önler.

   Sıralama örnekleri ve kısa sıralama öğreticisi için Sorting HOW TO
   'ya bakınız.

@staticmethod

   Bir metodu statik metoda dönüştürür.

   Statik bir metot üstü kapalı şekilde bir ilk argüman almaz. Statik
   metot tanımlamak için bu ifadeyi kullanabilirsiniz:

      class C:
          @staticmethod
          def f(arg1, arg2, ...): ...

   "@staticmethod" ifadesi bir *decorator* fonksiyonudur. -- detaylar
   için Function definitions bkz.

   Bir statik metot sınıf üzerinden ("C.f()" gibi) veya bir örnek
   üzerinden ("C().f()" gibi) çağırılabilir. Hatta normal fonksiyonlar
   gibi ("f()") de çağırılabilirler.

   Python'daki statik metotlar Java ve C++'takilerle benzerdir.
   Ayrıca, sınıf için alternatif bir yapıcı metot oluşturmak
   isterseniz "classmethod()" bkz.

   Tüm dekoratörler gibi, "staticmethod" 'u normal bir fonksiyon gibi
   çağırmak ve sonucu ile bir şeyler yapmak mümkündür. Bu, bir sınıfın
   fonksiyonuna referans vermeniz gerektiğinde ve örnek metoda
   otomatik dönüşümü engellemek istediğinizde işinize yarayabilir.
   Böyle durumlar için, bu ifadeyi kullanabilirsiniz:

      def regular_function():
          ...

      class C:
          method = staticmethod(regular_function)

   Statik metotlar hakkında daha fazla bilgi için, The standard type
   hierarchy bkz.

   3.10 sürümünde değişti: Statik metotlar artık metot özelliklerini
   ("__module__", "__name__", "__qualname__", "__doc__" and
   "__annotations__") miras alır, yeni bir "__wrapped__" özellikleri
   var ve artık normal fonksiyonlar gibi çağırılabilirler.

class str(object='')
class str(object=b'', encoding='utf-8', errors='strict')

   *object* 'in "str" versiyonunu döndürür. Detaylar için "str()" bkz.

   "str" yerleşik dize *class* 'ıdır. Dizeler hakkında genel bilgi
   için, Metin Sırası Türü --- str bkz.

sum(iterable, /, start=0)

   *start* ve *iterable* 'ın elemanlarını soldan sağa toplar ve
   toplamı döndürür. *iterable* 'ın elemanları normal olarak
   numaralardır ve başlangıç değeri bir dize olamaz.

   Bazı kullanım durumları için, "sum()" fonksiyonuna iyi
   alternatifler var. Dizelerden oluşan bir diziyi birleştirmek için
   tercih edilen hızlı yöntem "''.join(sequence)" fonksiyonudur.
   Gerçel değerleri hassas bir şekilde eklemek istiyorsanız,
   "math.fsum()"bkz. Yinelenebilir nesnelerden oluşan bir diziyi
   birleştirmek istiyorsanız, "itertools.chain()" fonksiyonunu
   kullanmayı göz önünde bulundurun.

   3.8 sürümünde değişti: *start* parametresi bir anahtar kelime
   argümanı olarak belirtilebilir.

class super([type[, object-or-type]])

   *type* 'ın ebeveyn veya kardeş sınıfına yapılan metot çağrılarını
   temsil eden bir proxy objesi döndürür. Bu bir sınıfta üzerine
   yazılmış kalıtılan metotlara erişmek için kullanışlıdır.

   *object-or-type* aranacak *yöntem çözümleme sırası* 'nı belirler.
   Arama *type* 'dan sonraki ilk sınıftan başlar.

   Örnek olarak, eğer *object-or-type* 'ın "__mro__" özelliği "D -> B
   -> C -> A -> object" ise ve *type* değeri "B" ise, "super()" "C ->
   A -> object" 'i arar.

   *object-or-type* 'ın "__mro__" özelliği, hem "getattr()" hem de
   "super()" tarafından kullanılan yöntem çözümleme arama sırasını
   listeler. Özellik dinamiktir ve kalıtım hiyerarşisi her
   güncellendiğinde değişebilir.

   Eğer ikinci parametre atlanırsa, döndürülen süper objesi
   serbesttir. Eğer ikinci parametre bir objeyse, "isinstance(obj,
   type)" doğru olmak zorundadır. Eğer ikinci parametre bir tür ise,
   "issubclass(type2, type)" doğru olmak zorundadır (bu sınıf
   metotları için kullanışlıdır).

   *super* için tipik iki kullanım şekli vardır. Tek kalıtımlı bir
   sınıf hiyerarşisinde *super* üst sınıfları açıkça adlandırmadan
   onlara başvurmak için kullanılabilir. böylece kodu daha
   sürdürülebilir hale getirir.

   İkinci kullanım şekli dinamik yürütme ortamında işbirlikli çoklu
   kalıtımı desteklemektir. Bu durum Python'a özgüdür ve statik
   derlenen diller veya tekli kalıtımı destekleyen dillerde bulunmaz.
   Bu çoklu temel sınıfların aynı metodu uyguladığı "diamond diagrams"
   sistemini uygulamayı mümkün kılar. İyi tasarım bu tür uygulamaların
   her durumda aynı çağrı imzasına sahip olduğunu (çünkü çağrıların
   sırası yürütme zamanında belirlenir, çünkü bu sıra sınıf
   hiyerarşisindeki değişikliklere uyarlanır ve çalışma zamanından
   önce bilinmeyen kardeş sınıfları içerebilir) dikte eder.

   İki kullanım durumu için de, tipik bir üst sınıf çağrısı bu
   şekildedir:

      class C(B):
          def method(self, arg):
              super().method(arg)    # This does the same thing as:
                                     # super(C, self).method(arg)

   Metot aramalarına ek olarak, "super()" özellik aramaları için de
   çalışır. Bunun kullanım şekli ebeveyn veya kardeş bir sınıfta
   *tanımlayıcılar* 'i çağırmaktır.

   "super()" 'ın, "super().__getitem__(name)" gibi açık noktalı
   öznitelik aramaları için bağlayan işlemin bir parçası olarak
   uygulanır. Sınıfları işbirlikli çoklu kalıtımı destekleyen tahmin
   edilebilir bir sırada aramak için kendi "__getattribute__()"
   metodunu sağlar. Bu nedenle "super()", ifadeler veya
   "super()[name]" gibi operatörler kullanarak kesin aramalar için
   tanımsızdır.

   Ayrıca, argümansız formunun yanı sıra, "süper()" iç metotları
   kullanmakla sınırlı değildir. İki parametreli form parametlerini
   tamı tamına belirler ve uygun karşılaştırmaları yapar. Argümansız
   form sadece bir sınıf tanımının içinde çalışır, derleyici
   tanımlanan sınıfı doğru şekilde almak ve sıradan yöntemlere geçerli
   örnekten erişmek için gerekli detayları doldurur.

   "super()" 'ı kullanarak kooperatif sınıflar tasarlamaya yönelik
   pratik öneriler için, guide to using super() bkz.

class tuple([iterable])

   Bir fonksiyon olmaktansa, "tuple" Demetler ve Dizi Tipleri ---
   list, tuple, range 'de gösterildiği gibi düzenlenemez bir dizi
   türüdür.

class type(object)
class type(name, bases, dict, **kwds)

   Bir parametre ile, *object* 'in türünü döndürür. Döndürülen değer
   bir obje türüdür ve genellikle "object.__class__" tarafından
   döndürülen obje ile aynıdır.

   "isinstance()" yerleşik fonksiyonu bir objenin türünü test etmek
   için önerilir. Çünkü altsınıfları hesaba katar.

   Üç parametre ile, yeni nesne türü döndürür. Bu esasen "class"
   ifadesinin dinamik biçimidir. *name* dizesi sınıfın ismidir ve
   "__name__" özelliği yerine gelir. *bases* demeti temel sınıfları
   içerir ve "__bases__" özelliği yerine gelir; eğer boş ise,
   "object", tüm sınıfların nihai temeli eklenir. *dict* sözlüğü sınıf
   gövdesi için özellik ve metot tanımlamaları içerir; "__dict__"
   özelliği yerine geçmeden önce kopyalanabilir veya sarılabilir.
   Aşağıdaki iki ifade birebir aynı "type" nesneleri oluşturur:

   >>> class X:
   ...     a = 1
   ...
   >>> X = type('X', (), dict(a=1))

   Type Objects 'e de bkz.

   Üç değişkene sağlanan anahtar kelime argümanları, uygun metasınıf
   makinelerine (genellikle "__init_subclass__()") bir sınıf
   tanımındaki anahtar sözcüklerin (*metaclass* dışında) yapacağı
   şekilde iletilir.

   Customizing class creation 'a da bkz.

   3.6 sürümünde değişti: "type.__new__" 'in üzerine yazmayan "type"
   altsınıfları artık bir objenin türünü almak için tek argümanlı
   formu kullanamaz.

vars([object])

   Bir modül, sınıf, örnek veya "__dict__" özelliği bulunan herhangi
   bir obje için, "__dict__" özelliğini döndürür.

   Modüller ve örnekler gibi nesneler güncellenebilir bir "__dict__"
   özelliğine sahiptir; ama diğer nesnelerin kendilerinin "__dict__"
   özelliklerine yazma kısıtlaması olabilir (örnek olarak, sınıflar
   doğrudan sözlük güncellemelerini önlemek için
   "types.MappingProxyType" sınıfını kullanırlar).

   Parametre olmadan, "vars()" "locals()" gibi davranır. Yerel sözlük,
   ona yapılan güncellemeler görmezden gelindiğinden ötürü, sadece
   okuma işlemi için kullanışlıdır.

   Eğer bir obje belirtildiyse ama "__dict__" özelliği yoksa (örneğin,
   "__slots__" özelliğini tanımlayan bir sınıf ise), "TypeError"
   hatası ortaya çıkar.

zip(*iterables, strict=False)

   Paralel olarak birkaç yinelenebilir nesneyi yineler ve hepsinden
   bir element alarak bir demet üretir.

   Örnek:

      >>> for item in zip([1, 2, 3], ['sugar', 'spice', 'everything nice']):
      ...     print(item)
      ...
      (1, 'sugar')
      (2, 'spice')
      (3, 'everything nice')

   Daha resmice: "zip()" demetlerden oluşan ve *i* inci demetin her
   parametre yineleyicisinden *i* 'inci elementi içerdiği bir
   yineleyici döndürür.

   "zip()" 'i anlamanın başka bir yolu da, sütunları satırlara ve
   satırları sütunlara çevirmesidir. Bu transposing a matrix 'a
   benzer.

   "zip()" tembeldir: Yinelenebilir nesne, örneğin bir "for" döngüsü
   veya "list" tarafından sarılarak yinelenmediği sürece elementler
   işlenmez.

   Dikkate alınması gereken şeylerden biri de "zip()" 'e verilen
   yineleyiciler bazen tasarım gereği, bazen ise yineleyicileri
   hazırlayan kodda oluşan bir hatadan dolayı farklı uzunluklarda
   olabilirler. Python bununla başa çıkmak için üç farklı yaklaşım
   sunar:

   * Varsayılan olarak, "zip()" en kısa yinelenebilir nesne
     tükendiğinde durur. Daha uzun yinelebilirlerde kalan elementleri
     görmezden gelecektir ve sonucu en kısa yineleyicinin uzunluğuna
     eşitleyecektir:

        >>> list(zip(range(3), ['fee', 'fi', 'fo', 'fum']))
        [(0, 'fee'), (1, 'fi'), (2, 'fo')]

   * "zip()" genellikle yineleyicilerin aynı uzunlukta olduğu
     varsayıldığında kullanılır. Bu gibi durumlarda, "strict=True"
     opsiyonunu kullanmak önerilir. Çıktısı sıradan "zip()" ile
     aynıdır:

        >>> list(zip(('a', 'b', 'c'), (1, 2, 3), strict=True))
        [('a', 1), ('b', 2), ('c', 3)]

     Unlike the default behavior, it raises a "ValueError" if one
     iterable is exhausted before the others:

     >>> for item in zip(range(3), ['fee', 'fi', 'fo', 'fum'], strict=True):  
     ...     print(item)
     ...
     (0, 'fee')
     (1, 'fi')
     (2, 'fo')
     Traceback (most recent call last):
       ...
     ValueError: zip() argument 2 is longer than argument 1

     "strict=True" parametresi olmadan, farklı boyutlardaki
     nesnelerde sonuçlanan hatalar susturulacaktır. Mümkün olduğunca
     programın başka bir bölümünde bulunması zor bir hata olarak
     tezahür ediyor.

   * Daha kısa yinelenebilir nesneler, tüm yinelenebilir nesnelerin
     aynı uzunlukta olması için sabit bir değerle doldurulabilirler.
     Bu "itertools.zip_longest()" tarafından yapılır.

   Kenar durumları: Tek bir yinelenebilir nesne argümanı verilirse,
   "zip()" bir demetin yineleyicisini döndürür. Argüman verilmezse,
   boş bir yineleyici döndürür.

   İpucu ve hileler:

   * Yinelenebilir nesnelerin soldan sağa değerlendirme sırası garanti
     edilir. Bu, bir veri serisini "zip(*[iter(s)]*n, strict=True)"
     kullanarak n-uzunluklu gruplar halinde kümelemeyi mümkün kılar.
     Bu *aynı* yineleyiciyi "n" defa tekrar eder ve böylece tüm çıktı
     demetler yineleyiciye "n" sayıda çağrı yapmış olur. Bu, girdiyi
     n-uzunluklu parçalara bölme etkisine sahiptir.

   * "zip()", bir listeyi açmak için "*" operatörüyle birlikte
     kullanılabilir:

        >>> x = [1, 2, 3]
        >>> y = [4, 5, 6]
        >>> list(zip(x, y))
        [(1, 4), (2, 5), (3, 6)]
        >>> x2, y2 = zip(*zip(x, y))
        >>> x == list(x2) and y == list(y2)
        True

   3.10 sürümünde değişti: "strict" argümanı eklendi.

__import__(name, globals=None, locals=None, fromlist=(), level=0)

   Not:

     Bu "importlib.import_module()" 'un aksine günlük Python
     programlamasında genel olarak kullanılmayan gelişmiş bir
     fonksiyondur.

   Bu fonksiyon "import" ifadesi tarafından çağırılır. "import"
   ifadesinin anlamlarını değiştirmek için yenisiyle değiştirilebilir
   ("builtins" modülünü içe aktarıp "builtins.__import__" 'a
   devrederek), ama bunu yapmak aynı amaçlara ulaşmak için içe aktarma
   çengellerini kullanmak daha basit olduğundan ve içe aktarma
   çengellerinin kodda hatalara neden olmayacağından tavsiye
   **edilmez**. "__import__()" 'un doğrudan kullanımı da
   "importlib.import_module()" 'ın lehine tavsiye edilmez.

   Fonksiyon modül *adını* içe aktarır, potansiyel olarak bir paket
   bağlamındaki isimleri nasıl yorumlayacağını belirlemek için verien
   *globals* ve *locals* 'i kullanır. *fromlist*, *name* ismiyle içe
   aktarılması gereken modülün alt modüllerinin ve nesnelerinin
   isimlerini verir. Standart uygulama *locals* argümanını kullanmaya
   teşebbüs etmez ve *globals* 'i "import" ifadesinin paket bağlamını
   belirlemek için kullanır.

   *level* mutlak mı yoksa göreli içe aktarmaların mı kullanılacağını
   belirtir. "0" (varsayılan) sadece mutlak içe aktarmaların
   uygulanacağını belirtir. *level* için pozitif değerler,
   "__import__()" çağrısı yapan modülün dizinine göre aranacak üst
   dizinlerin sayısını gösterir (detaylar için **PEP 328** 'e
   bakınız).

   *name* değişkeni "package.module" biçiminde olduğunda, üst düzey
   paket ((ilk noktaya kadar olan isim) döndürülür, *name* isimli
   modül *değil*. Boş olmayan bir *fromlist* argümanı verildiğinde,
   *name* isimli modül döndürülür.

   Örnek olarak, "import spam" ifadesi aşağıdaki koda benzeyen bayt
   koduyla sonuçlanır:

      spam = __import__('spam', globals(), locals(), [], 0)

   "import spam.ham" ifadesi şu çağrıyla sonuçlanır:

      spam = __import__('spam.ham', globals(), locals(), [], 0)

   Burada "__import__()" öğesinin üst düzey modülü nasıl döndürdüğüne
   dikkat edin, çünkü bu, "import" ifadesiyle bir ada bağlanan
   nesnedir.

   Diğer yandan, "from spam.ham import eggs, sausage as saus" ifadesi
   şöyle sonuçlanır:

      _temp = __import__('spam.ham', globals(), locals(), ['eggs', 'sausage'], 0)
      eggs = _temp.eggs
      saus = _temp.sausage

   Burada, "spam.ham" modülü "__import__()" 'dan döndürülür. Bu
   objeden, içeri aktarılacak isimler alınır ve sırasıyla adlarına
   atanır.

   Eğer ismiyle bir modülü (potansiyel olarak bir paket içinde) içe
   aktarmak istiyorsanız, "importlib.import_module()" 'i kullanın.

   3.3 sürümünde değişti: *level* için negatif değerler artık
   desteklenmiyor (bu, varsayılan değeri 0 olarak da değiştirir).

   3.9 sürümünde değişti: Komut satırı opsiyonlarından "-E" veya "-I"
   kullanıldığında, ortam değişkeni "PYTHONCASEOK" görmezden gelinir.

-[ Dipnotlar ]-

[1] Ayrıştırıcının yalnızca Unix stili satır sonu kuralını kabul
    ettiğini unutmayın. Eğer bir dosyadan kod okuyorsanız, Windows
    veya Mac tarzı yeni satırları dönüştürmek için yeni satır
    dönüştürme modunu kullandığınızdan emin olun.
