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:

sports_balls = 2                 # sports_balls is an integer
barrels = "4"                    # barrels is a string
result = barrels + sports_balls  # Creates a TypeError

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

sports_balls = 2   # sports_balls is an integer
barrels = "4"      # barrels is a string

# Convert barrels to an integer before adding
result = int(barrels) + sports_balls

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

show_global()
# And you can access 'message' outside a function
robot.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
    robot.screen.print(f"Count: {count}")
    robot.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

# Move the robot forward for the variable value in mm
robot.move_for(distance, 0)

# Add to the variable and move forward the new value, for 100mm total
distance = distance + 50
robot.move_for(distance, 0)

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
robot.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!"
robot.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:
    robot.screen.print("Package delivered!")
else: 
    robot.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
robot.screen.print(delivered)
wait(2,SECONDS)

# Clear the screen and print the value of the variable again
robot.screen.clear_screen(Color.BLACK)
delivered = False
robot.screen.print(delivered)

NoneType#

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

# 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:
    robot.screen.print("No task!")
else:
    robot.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.

# Drive and turn 4 times to move in a square
for index in range(4):
    robot.move_for(50, 0)
    robot.turn_for(RIGHT, 90)

# 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
    robot.screen.print(index)
    robot.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", "Purple"]

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

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

# 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
    robot.screen.print(index)
    robot.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: 
        robot.screen.print(element, ", ")
    robot.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 
robot.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
robot.screen.print(set_1)

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