birincisi:

def f():
print(a+b)

a = 3
b = 2
f()

ikincisi:

def f(a,b):
print(a+b)

a = 3
b = 2
f(a,b)

bana birincisi çalışmamalı gibi geliyor ama çalışıyor. fonksiyona a ve b parametrelerini aktarmıyoruz ama fonksiyon tanımlaması dışında tanımlanan a ve b'yi alıp kullanıyor. fonksiyon argümanlarına konulan adları programın içerisinde değişken adı olarak kullanmamak gerekiyor gibi bir yaklaşım var diye anlıyorum. bu konuda biraz kafa karışık.

teşekkür ederim.

edit: nedense indentler görünmüyor.

 

Global varibles olduğu için yazacaktım ama @benaaymi güzelce özetlemiş. Fonksiyon dışında tanımladığınız değişkenler global değerler olup fonksiyon içinde dikkate alındığı ve ulaşılabilir oldukları için kod çalışıyor.

superior
1

mobil görünümden çık