Python'da değişken bağımsız değişkenlerini kullanma

Tamamlandı

Python'da, her birini bildirmeden istediğiniz sayıda bağımsız değişken ve anahtar sözcük bağımsız değişkeni kullanabilirsiniz. Bu özellik, bir işlev bilinmeyen sayıda giriş alabildiğinde kullanışlıdır.

Değişken bağımsız değişkenleri

İşlevlerdeki bağımsız değişkenler gereklidir. Ancak değişken bağımsız değişkenlerini kullanırken işlev, herhangi bir sayıda bağımsız değişkenin (dahil 0) geçirilmesine izin verir. Değişken bağımsız değişkenlerini kullanma söz dizimi, bağımsız değişkenin adından önce tek bir yıldız işareti (*) öneki ekler.

Aşağıdaki işlev alınan bağımsız değişkenleri yazdırır:

def variable_length(*args):
    print(args)

Dekont

değişken bağımsız değişkenlerini argsçağırmak gerekli değildir. Geçerli bir değişken adı kullanabilirsiniz. veya öğesini görmek *args yaygın olsa da *a, proje boyunca aynı kuralı kullanmayı denemelisiniz.

Bu durumda, *args işlevine herhangi bir sayıda bağımsız değişkeni (dahil) 0kabul etme talimatını verir. işlevinde, args artık tüm bağımsız değişkenleri tanımlama grubu olarak tutan değişken olarak kullanılabilir. Herhangi bir sayıda veya türde bağımsız değişken geçirerek işlevi deneyin:

variable_length()
()
variable_length("one", "two")
('one', 'two')
variable_length(None)
(None,)

Gördüğünüz gibi, geçirilen bağımsız değişkenlerin sayısı veya türüyle ilgili bir kısıtlama yoktur.

Uzay mekiği fırlatmadan önce birkaç adımdan geçer. Görevlere veya gecikmelere bağlı olarak, bu adımlar planlanandan daha uzun sürebilir. Şimdi her adımın ne kadar süreceğini göz önünde bulundurarak başlatmaya kadar kaç dakika geçeceğini hesaplayan değişken uzunlukta bir işlev oluşturalım:

def sequence_time(*args):
    total_minutes = sum(args)
    if total_minutes < 60:
        return f"Total time to launch is {total_minutes} minutes"
    else:
        return f"Total time to launch is {total_minutes/60} hours"

İstediğiniz sayıda dakika geçirerek işlevi deneyin:

sequence_time(4, 14, 18)
Total time to launch is 36 minutes.
sequence_time(4, 14, 48)
Total time to launch is 1.1 hours.

Dekont

Değişken bağımsız değişkenlerini kullandığınızda, her değere artık bir değişken adı atanmamış olur. Tüm değerler artık yıldız işaretiargs (bu örneklerde) kullanan tümünü yakala değişken adının bir parçasıdır.

Değişken anahtar sözcük bağımsız değişkenleri

Bir işlevin herhangi bir sayıda anahtar sözcük bağımsız değişkenini kabul etmek için benzer bir söz dizimi kullanırsınız. Bu durumda, çift yıldız işareti gerekir:

def variable_length(**kwargs):
    print(kwargs)

olarak kwargsgeçirilen adları ve değerleri yazdıran örnek işlevi deneyin:

variable_length(tanks=1, day="Wednesday", pilots=3)
{'tanks': 1, 'day': 'Wednesday', 'pilots': 3}

Python sözlüklerini zaten biliyorsanız, değişken uzunlukta anahtar sözcük bağımsız değişkenlerinin sözlük olarak atandığını fark edersiniz. Değişkenler ve değerlerle etkileşime geçmek için sözlükle aynı işlemleri kullanın.

Dekont

Değişken bağımsız değişkenlerinde olduğu gibi, değişken anahtar sözcük bağımsız değişkenlerini kullanırken kullanmanız kwargs gerekmez. Geçerli bir değişken adı kullanabilirsiniz. veya öğesini görmek **kwargs yaygın olsa da **kw, proje boyunca aynı kuralı kullanmayı denemelisiniz.

Bu işlevde, göreve atanan astronotları raporlamak için değişken anahtar sözcük bağımsız değişkenlerini kullanalım. Bu işlev herhangi bir sayıda anahtar sözcük bağımsız değişkenine izin verdiğinden, atanan astronot sayısından bağımsız olarak yeniden kullanılabilir:

def crew_members(**kwargs):
    print(f"{len(kwargs)} astronauts assigned for this mission:")
    for title, name in kwargs.items():
        print(f"{title}: {name}")

Apollo 11'in ekibiyle deneyin:

crew_members(captain="Neil Armstrong", pilot="Buzz Aldrin", command_pilot="Michael Collins")
3 astronauts assigned for this mission:
captain: Neil Armstrong
pilot: Buzz Aldrin
command_pilot: Michael Collins

Anahtar sözcük bağımsız değişkenlerinin herhangi bir bileşimini geçirebildiğiniz için yinelenen anahtar sözcüklerden kaçınmayı unutmayın. Yinelenen anahtar sözcükler hatayla sonuçlanır:

crew_members(captain="Neil Armstrong", pilot="Buzz Aldrin", pilot="Michael Collins")
  File "<stdin>", line 1
SyntaxError: keyword argument repeated: pilot