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:

controller = 1                 # controller is an integer
modules = "3"                  # modules is a string
result = controller + modules  # Creates a TypeError

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

controller = 1                 # controller is an integer
modules = "3"                  # modules is a string

# Convert modules to an integer before adding.
result = int(modules) + controller

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!" 
    controller.screen.print(message)

show_local()

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.
    controller.screen.print(message)
    controller.screen.next_row()

show_global()
# And you can access 'message' outside a function.
controller.screen.print(message)

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
    controller.screen.print(f"Count: {count}")
    controller.screen.next_row()

increase_count()
increase_count()

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.

distance = 50

drone.take_off(climb_to=500)
# Move the robot forward for the variable value in mm.
drone.climb_for(direction=DOWN, distance=distance, velocity=50, units=MM)
wait(2, SECONDS)

# Add to the variable and move forward the new value, 
# for 100mm total.
distance = distance + 50
drone.climb_for(direction=UP, distance=distance, velocity=50, units=MM)
wait(2, SECONDS)

drone.land()

Float#

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

# Store a value with decimal points.
raw_value = 0.88

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

String#

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

# Set the variable to a string then print the string.
message = "Ready!"
controller.screen.print(message)

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.

# Set the state of the variable.
delivered = False

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

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

# Print the value of the delivered variable
delivered = True
controller.screen.print(delivered)
wait(2,SECONDS)

# Clear the screen and print the value of the variable again
controller.screen.clear_screen(color=GREEN)
delivered = False
controller.screen.print(delivered)

NoneType#

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

# Write what the controller's task should be as a string
current_task = None

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

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.

# Move back and forth four times then land.
drone.take_off(climb_to=500)
for i in range(4):
    drone.move_for(direction=0, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
    drone.move_for(direction=180, distance=500, velocity=50, units=MM)
    wait(1, SECONDS)
drone.land()

# Count by 2 starting at 1 and ending before 12.
for index in range(1, 12, 2): 
    # Print the values on the screen with each loop.
    controller.screen.print(index)
    controller.screen.next_row()

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.

# Define a list of colors.
colors = ["Red", "Green", "Blue"]

# Repeat for the number of items in the colors list.
for color in colors:
    # Print each color in order
    controller.screen.print(color)
    controller.screen.next_row()

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

# Define a list of colors.
colors = ["Red", "Green", "Blue"]

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

# Repeat for the number of items in the colors list.
for color in colors:
    # Print each color in order
    controller.screen.print(color)
    controller.screen.next_row()

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.

# 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: 
        controller.screen.print(element, end=", ")
    controller.screen.next_row()

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

# 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.
controller.screen.print(matrix[0])

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.

# Define a tuple.
set_1 = (100, "Left")

# Print the tuple.
controller.screen.print(set_1)

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