Değişkenler#

giriiş#

Değişkenler veri depolar ve programınız boyunca bu verileri yeniden kullanmanıza ve manipüle etmenize olanak tanır. Python dinamik olarak tiplendirilmiş bir dildir, yani bir değişkenin türünü açıkça belirtmenize gerek yoktur. Bunun yerine, tür, ona atanan değere göre otomatik olarak çıkarılır. Örneğin:

angle = 90           # angle is an integer
dist = "Distance: "  # dist is a string
steps = 2.5          # steps is a float

Python aynı zamanda kesinlikle tiplendirilmiş bir dildir; bu, uyumsuz türler üzerinde işlemleri açıkça dönüştürmeden gerçekleştiremeyeceğiniz anlamına gelir. Örneğin:

blocks = 2                       # blocks is an integer
disks = "4"                      # disks is a string
result = blocks + disks  # Creates a TypeError

Bu tür sorunları çözmek için, gerekirse türleri açıkça dönüştürmeniz gerekir:

blocks = 2  # blocks is an integer
disks = "4" # disks is a string

# Convert disks to an integer before adding
result = int(disks) + blocks

Bu API, Python’da yaygın olarak kullanılan değişken türlerini açıklamaktadır. Kapsamlı bir liste olmamakla birlikte, pratikte en çok kullanmanız muhtemel türleri kapsamaktadır.

  • Yerel değişkenler – Bir fonksiyonun içinde tanımlanır ve yalnızca o kapsam içinde kullanılır; geçici veya izole değerler için en iyisidir.

  • Küresel değişkenler – Herhangi bir fonksiyonun dışında tanımlanır ve proje boyunca kullanılır; fonksiyonlar arasında veri paylaşımı için uygundur.

  • Tamsayı – Sayma, mesafe veya ondalık basamak içermeyen her şey için kullanılan tam sayılar.

  • Float – Hassas ölçümler veya hesaplamalar için kullanışlı, ondalık noktalı sayılar.

  • Dize – Mesajlar, etiketler veya okunabilir çıktı görüntülemek için kullanılan metin değerleri.

  • Mantıksal – True veya False mantık ve karar verme için değerler.

  • NoneType – Python’da bir değerin yokluğunu temsil eder.

  • Aralık – Otomatik olarak sayı dizileri oluşturur, en yaygın olarak döngülerde kullanılır.

  • Liste – Değiştirilebilir bir öğe koleksiyonu; nesneler veya sensör okumaları gibi değer gruplarını saklamak için uygundur.

  • 2B Liste – Listelerden oluşan bir liste; satırları, ızgaraları veya tablo benzeri verileri temsil etmek için idealdir.

  • Tuple – Değiştirilemeyen sabit bir değer dizisi; gruplandırılmış, değişmeyen veriler için kullanışlıdır.

Değişken Tanımlama ve Değer Ataması#

Bir değişken oluşturmak için, = operatörünü kullanarak bir isme bir değer atamanız yeterlidir:

distance = 100

Bir değişkene isim verirken aşağıdaki kurallara uyulmalıdır:

  • İsim özel karakterler (örneğin, ünlem işareti) içeremez.

  • İsim bir rakamla başlayamaz.

  • İsimde boşluk kullanılamaz.

  • İsim, VEXcode’da ayrılmış bir kelime olamaz (örneğin, Drivetrain).

Local Variables#

Yerel değişkenler, bir fonksiyonun veya kod bloğunun içinde tanımlanır. Yalnızca o fonksiyon veya bloğun kapsamı içinde erişilebilirler ve dışında görünmezler.

def show_local():
    # This variable only exists inside this function
    message = "I'm local!" 
    brain.print(message)

def main():
    show_local()

# VR threads — Do not delete
vr_thread(main)

Yerel değişkenler genellikle yalnızca belirli bir fonksiyon veya programın belirli bir bölümü içinde geçerli olan geçici değerleri saklamak için kullanılır.

Global Variables#

Küresel değişkenler, herhangi bir fonksiyon veya bloğun dışında tanımlanır. Fonksiyonların içi de dahil olmak üzere programın her yerinde erişilebilir ve okunabilirler.

Not: Global değişken projenizin herhangi bir yerinde kullanılabilir. Bu faydalı olabilir, ancak hataları bulmayı da zorlaştırabilir. Değer değişirse, değişikliğin nerede olduğunu görmek için projenin birçok bölümünü kontrol etmeniz gerekebilir. Değere yalnızca bir fonksiyonun ihtiyacı olduğunda yerel değişken kullanın.

# The variable is defined outside a function
message = "I'm global!"  

def show_global():
    # You can access 'message' inside a function
    brain.print(message)
    brain.new_line()

def main():
    show_global()
    # And you can access 'message' outside a function
    brain.print(message)

# VR threads — Do not delete
vr_thread(main)

Varsayılan olarak, bir fonksiyon içindeki bir değişkene değer atamak yerel bir değişken oluşturur. Bir fonksiyon içindeki global bir değişkeni değiştirmek için, onu global anahtar kelimesini kullanarak açıkça bildirmeniz gerekir.

# Define the global variable
count = 0 

def increase_count():
    # Use the global keyword to let you modify the
    # global variable
    global count
    count = count + 1
    brain.print("Count: {}".format(count))
    brain.new_line()

def main():
    increase_count()
    increase_count()

# VR threads — Do not delete
vr_thread(main)

Veri Türleri#

Python değişkenleri, her biri farklı kullanım durumlarına uygun çeşitli veri türlerini saklayabilir. Aşağıda en yaygın kullanılan türler yer almaktadır:

Integer#

Bir tam sayı, pozitif veya negatif bir sayıdır.

def main():
    distance = 100

    # Move the robot forward for the variable value in mm
    drivetrain.drive_for(FORWARD, distance, MM)

    # Add to the variable and move forward the new value, 
    # for 200mm total
    wait(1, SECONDS)
    distance = distance + 100
    drivetrain.drive_for(FORWARD, distance, MM)

# VR threads — Do not delete
vr_thread(main)

Float#

Float, ondalık noktalı bir sayıdır.

def main():
    # Store a value with decimal points
    raw_value = 0.88

    # Print the decimal value as a percentage
    brain.print(raw_value * 100, "%")

String#

Dize, genellikle metin için kullanılan bir karakter dizisidir.

def main():
    # Set the variable to a string then print the string
    message = "Ready!"
    brain.print(message)

# VR threads — Do not delete
vr_thread(main)

Not: Bir metin her zaman eşleşen tırnak işaretleri içine alınmalıdır; bunlar tek (’) veya çift (”) olabilir. Her iki stili de kullanabilirsiniz, ancak açılış ve kapanış işaretleri eşleşmelidir.

Boolean#

Bir Mantıksal (Boolean) değer True Doğru) veya False Yanlış) değerlerini temsil eder.

def main():
    # Set the state of the variable
    delivered = False

    # Print different messages depending on the Boolean.
    if delivered:
        brain.print("Package delivered!")
    else: 
        brain.print("Delivering...")

# VR threads — Do not delete
vr_thread(main)

Mantıksal değerler projenin herhangi bir aşamasında değiştirilebilir.

def main():
    # Print the value of the delivered variable
    delivered = True
    brain.print(delivered)
    wait(2,SECONDS)

    # Clear the screen and print the value of the variable again
    brain.clear()
    delivered = False
    brain.print(delivered)

# VR threads — Do not delete
vr_thread(main)

NoneType#

NoneType, Python’da bir değerin yokluğunu temsil eder.

def main():
    # Write what the robot's task should be as a string
    current_task = None

    # Check if a task is assigned
    if current_task is None:
        brain.print("No task!")
    else:
        brain.print("Task: {}".format(current_task))

# VR threads — Do not delete
vr_thread(main)

Range#

Aralık, genellikle döngülerde sayısal diziler oluşturmak için kullanılan bir sayı dizisidir. Şu formatı izler:

range(start, stop, step)

Bileşenler

Tanım

start

İsteğe bağlı. Başlangıç ​​değeri dahil olmak üzere (sıralama buradan başlar). Varsayılan değer 0’dır.

stop

Durdurma değeri hariçtir (dizi bu sayıdan önce durur).

step

İsteğe bağlı. Adım, her sayının ne kadar artacağını (veya azalacağını) belirler. Varsayılan değer 1’dir.

def main():
    # Drive and turn 4 times to move in a square
    for index in range(4):
        drivetrain.drive_for(FORWARD, 100, MM)
        drivetrain.turn_for(RIGHT, 90, DEGREES)

# VR threads — Do not delete
vr_thread(main)

def main():
    # Count by 2 starting at 1 and ending before 12
    for index in range(1, 12, 2): 
        # Print the values with each loop
        brain.print(index)
        brain.new_line()

# VR threads — Do not delete
vr_thread(main)

List#

Bir liste, bir grup öğeyi tek bir değişkende saklar. Öğeleri ekleyebilir, kaldırabilir, değiştirebilir veya projenizde her birini tek tek kullanabilirsiniz. Listeler, sensör okumaları, renkler veya nesne adları gibi ilgili değerleri bir arada tutmak istediğinizde kullanışlıdır. Listeler köşeli parantezler [] kullanılarak oluşturulur.

def main():
    # Define a list of colors
    colors = ["Red", "Green", "Blue", "Purple"]

    # Repeat for the number of items in the colors list
    for index in colors:
        # Print each color in order
        brain.print(index)
        brain.new_line()

# VR threads — Do not delete
vr_thread(main)

Listeye öğe eklemek için append ile tamamlayın.

def main():
    # Define a list of colors
    colors = ["Red", "Green", "Blue", "Purple"]

    # Append a new color to the list
    colors.append("Yellow")

    # Repeat for the number of items in the colors list
    for index in colors:
        # Print each color in order
        brain.print(index)
        brain.new_line()

# VR threads — Do not delete
vr_thread(main)

2D List#

2 boyutlu liste veya listeler listesi, genellikle ızgaraları, tabloları veya matrisleri temsil etmek için kullanılır. Her alt liste bir satırı veya belirli bir veri grubunu temsil eder.

def main():
    # Assign the values in the matrix 2D list
    matrix = [
        ["A", 1, "Red"],
        ["B", 2, "Orange"],
        ["C", 3, "Yellow"]
    ]
    # Loop through each row
    for row in matrix: 
        # Loop through each column in the row 
        for element in row: 
            brain.print(element, ", ")
        brain.new_line()

# VR threads — Do not delete
vr_thread(main)

2 boyutlu bir listedeki belirli öğeleri veya hatta tüm alt listeleri değiştirebilirsiniz:

def main():
    # Assign the values in the matrix 2D list
    matrix = [
        ["A", 1, "Red"],
        ["B", 2, "Orange"],
        ["C", 3, "Yellow"]
    ]
    # Modify the color (in column 2) in row 0
    matrix[0][2] = "Blue"

    # Print the modified row from the matrix 2D list 
    brain.print(matrix[0])

# VR threads — Do not delete
vr_thread(main)

Tuple#

Bir tuple, oluşturulduktan sonra değiştirilemeyen bir dizi öğedir. Genellikle birbiriyle ilişkili değerleri gruplandırmak için kullanılırlar.

def main():
    # Define a tuple
    set_1 = (100, "Left")

    # Print the tuple
    brain.print(set_1)

# VR threads — Do not delete
vr_thread(main)

Demetler [] yerine parantezler () kullanılarak oluşturulur.