Μεταβλητές#
Εισαγωγή#
Οι μεταβλητές αποθηκεύουν δεδομένα και σας επιτρέπουν να τα επαναχρησιμοποιείτε και να τα χειρίζεστε σε όλο το πρόγραμμά σας. Η Python είναι μια γλώσσα δυναμικής τυποποίησης, που σημαίνει ότι δεν χρειάζεται να δηλώσετε ρητά τον τύπο μιας μεταβλητής. Αντίθετα, ο τύπος συνάγεται αυτόματα με βάση την τιμή που της έχει αντιστοιχιστεί. Για παράδειγμα:
angle = 90 # angle is an integer
dist = "Distance: " # dist is a string
steps = 2.5 # steps is a float
Η Python είναι επίσης έντονα τυποποιημένη, πράγμα που σημαίνει ότι δεν μπορείτε να εκτελέσετε λειτουργίες σε ασύμβατους τύπους χωρίς να τους μετατρέψετε ρητά. Για παράδειγμα:
red_disks = 2 # red_disks is an integer
green_disks = "4" # green_disks is a string
result = red_disks + green_disks # Creates a TypeError
Για να επιλύσετε τέτοια προβλήματα, πρέπει να μετατρέψετε ρητά τους τύπους, εάν είναι απαραίτητο:
red_disks = 2 # red_disks is an integer
green_disks = "4" # green_disks is a string
# Convert green_disks to an integer before adding
result = int(green_disks) + red_disks
Αυτό το API εξηγεί τους κοινούς τύπους μεταβλητών στην Python. Αν και δεν είναι μια εξαντλητική λίστα, καλύπτει τους τύπους που είναι πιο πιθανό να χρησιμοποιήσετε στην πράξη.
Τοπικές μεταβλητές – Δηλώνονται μέσα σε μια συνάρτηση και χρησιμοποιούνται μόνο εντός αυτού του πεδίου εφαρμογής. Ιδανικό για προσωρινές ή απομονωμένες τιμές.
Καθολικές μεταβλητές – Δηλώνονται εκτός οποιασδήποτε συνάρτησης και χρησιμοποιούνται σε όλο το έργο. Κατάλληλες για την κοινή χρήση δεδομένων μεταξύ συναρτήσεων.
Ακέραιος – Ακέραιοι αριθμοί που χρησιμοποιούνται για μέτρηση, αποστάσεις ή οτιδήποτε άλλο χωρίς δεκαδικά ψηφία.
Κυμαινόμενος αριθμός – Αριθμοί με δεκαδικά ψηφία, χρήσιμοι για ακριβείς μετρήσεις ή υπολογισμούς.
Συμβολοσειρά – Τιμές κειμένου, που χρησιμοποιούνται για μηνύματα, ετικέτες ή για την εμφάνιση αναγνώσιμων δεδομένων εξόδου.
Boolean –
TrueorFalsevalues for logic and decision-making.NoneType – Αντιπροσωπεύει την απουσία μιας τιμής στην Python.
Εύρος – Δημιουργεί αυτόματα ακολουθίες αριθμών, που χρησιμοποιούνται συνήθως σε βρόχους.
Λίστα – Μια συλλογή στοιχείων με δυνατότητα αλλαγής. Κατάλληλη για την αποθήκευση ομάδων τιμών όπως αντικείμενα ή μετρήσεις αισθητήρων.
Δισδιάστατη Λίστα – Μια λίστα λιστών. Ιδανική για την αναπαράσταση γραμμών, πλεγμάτων ή δεδομένων τύπου πίνακα.
Πλειάδα – Μια σταθερή ακολουθία τιμών που δεν μπορεί να αλλάξει. Χρήσιμο για ομαδοποιημένα, αμετάβλητα δεδομένα.
Δήλωση και ανάθεση μεταβλητής#
To create a variable, simply assign a value to a name using the = operator:
distance = 100
Κατά την ονομασία μιας μεταβλητής, πρέπει να τηρούνται οι ακόλουθοι κανόνες:
Το όνομα δεν μπορεί να περιέχει ειδικούς χαρακτήρες (π.χ., θαυμαστικό).
Το όνομα δεν μπορεί να ξεκινά με αριθμό.
Το όνομα δεν μπορεί να χρησιμοποιήσει κενά.
Το όνομα δεν μπορεί να είναι δεσμευμένη λέξη στον κώδικα VEX (π.χ., Σύστημα μετάδοσης κίνησης).
Local Variables#
Οι τοπικές μεταβλητές ορίζονται μέσα σε μια συνάρτηση ή ένα μπλοκ κώδικα. Είναι προσβάσιμες μόνο εντός του πεδίου εφαρμογής αυτής της συνάρτησης ή του μπλοκ και δεν είναι ορατές εκτός αυτού.
def show_local():
# This variable only exists inside this function
message = "I'm local!"
console.print(message)
def main():
show_local()
# Start threads — Do not delete
start_thread(main)
Οι τοπικές μεταβλητές χρησιμοποιούνται συνήθως για την αποθήκευση προσωρινών τιμών που είναι σχετικές μόνο σε μια συγκεκριμένη συνάρτηση ή μέρος του προγράμματος.
Global Variables#
Οι καθολικές μεταβλητές ορίζονται εκτός οποιασδήποτε συνάρτησης ή μπλοκ. Μπορούν να προσπελαστούν και να διαβαστούν οπουδήποτε στο πρόγραμμα, συμπεριλαμβανομένων και των συναρτήσεων που βρίσκονται μέσα σε αυτές.
Σημείωση: Μια καθολική μεταβλητή μπορεί να χρησιμοποιηθεί οπουδήποτε στο έργο σας. Αυτό μπορεί να είναι χρήσιμο, αλλά μπορεί επίσης να δυσκολέψει τον εντοπισμό σφαλμάτων. Εάν η τιμή αλλάξει, ίσως χρειαστεί να ελέγξετε πολλά μέρη του έργου για να δείτε πού άλλαξε. Χρησιμοποιήστε μια τοπική μεταβλητή όταν μόνο μία συνάρτηση χρειάζεται την τιμή.
# The variable is defined outside a function
message = "I'm global!"
def show_global():
# You can access 'message' inside a function
console.print(message)
console.new_line()
def main():
show_global()
# And you can access 'message' outside a function
console.print(message)
# Start threads — Do not delete
start_thread(main)
By default, assigning a value to a variable inside a function creates a local variable. To modify a global variable inside a function, you must explicitly declare it using the global keyword.
# 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
console.print("Count: {}".format(count))
def main():
increase_count()
console.new_line()
increase_count()
# Start threads — Do not delete
start_thread(main)
Τύποι Δεδομένων#
Οι μεταβλητές Python μπορούν να αποθηκεύσουν διάφορους τύπους δεδομένων, καθένας από τους οποίους είναι κατάλληλος για διαφορετικές περιπτώσεις χρήσης. Παρακάτω αναφέρονται οι πιο συχνά χρησιμοποιούμενοι τύποι:
Integer#
Ένας ακέραιος είναι ένας θετικός ή αρνητικός αριθμός.
# Build Used: Super Code Base 2.0
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)
# Start threads — Do not delete
start_thread(main)
Float#
Ένας float είναι ένας αριθμός με υποδιαστολή.
def main():
# Store a value with decimal points
raw_value = 0.88
# Print the decimal value as a percentage
console.print(raw_value * 100, "%")
# Start threads — Do not delete
start_thread(main)
String#
Μια συμβολοσειρά είναι μια ακολουθία χαρακτήρων, που χρησιμοποιείται συνήθως για κείμενο.
def main():
# Set the variable to a string then print the string
message = "Ready!"
console.print(message)
# Start threads — Do not delete
start_thread(main)
Note: A string must always be enclosed within matching quotation marks, either single (’) or double (”). You can use either style, but the opening and closing marks must match.
Boolean#
A Boolean represents True or False values.
def main():
# Set the state of the variable
delivered = False
# Print different messages depending on the Boolean.
if delivered:
console.print("Package delivered!")
else:
console.print("Delivering...")
# Start threads — Do not delete
start_thread(main)
Οι λογικές τιμές μπορούν να αλλάξουν σε οποιοδήποτε σημείο του έργου.
def main():
# Print the value of the delivered variable
delivered = True
console.print(delivered)
console.new_line()
wait(2,SECONDS)
# Clear the screen and print the value of the variable again
console.clear()
delivered = False
console.print(delivered)
# Start threads — Do not delete
start_thread(main)
NoneType#
NoneType αντιπροσωπεύει την απουσία μιας τιμής στην Python.
def main():
# No task is assigned yet
current_task = None
# Check if a task is assigned
if current_task is None:
console.print("No task!")
else:
console.print("Task: {}".format(current_task))
# Start threads — Do not delete
start_thread(main)
Range#
Ένα εύρος είναι μια ακολουθία αριθμών, που χρησιμοποιείται συνήθως σε βρόχους για τη δημιουργία αριθμητικών ακολουθιών. Ακολουθεί τη μορφή:
range(start, stop, step)
Στοιχεία |
Περιγραφή |
|---|---|
|
Προαιρετικό. Η τιμή έναρξης είναι συμπεριληπτική (η ακολουθία ξεκινάει από εδώ). Η προεπιλογή είναι 0. |
|
Η τιμή διακοπής είναι αποκλειστική (η ακολουθία σταματά πριν από αυτόν τον αριθμό). |
|
Προαιρετικό. Το βήμα καθορίζει πόσο αυξάνεται (ή μειώνεται) κάθε αριθμός. Η προεπιλογή είναι 1. |
# Build Used: Super Code Base 2.0
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)
# Start threads — Do not delete
start_thread(main)
def main():
# 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
console.print(index)
console.new_line()
# Start threads — Do not delete
start_thread(main)
List#
A list stores a group of items in one variable. You can add items, remove items, change items, or use each item one at a time in your project. Lists are useful when you want to keep related values together, like sensor readings, colors, or object names. Lists are created using square brackets [].
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
console.print(index)
console.new_line()
# Start threads — Do not delete
start_thread(main)
Use append to add items to a list.
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
console.print(index)
console.new_line()
# Start threads — Do not delete
start_thread(main)
2D List#
Μια δισδιάστατη λίστα ή λίστα λιστών χρησιμοποιείται συνήθως για την αναπαράσταση πλεγμάτων, πινάκων ή μητρών. Κάθε υπολίστα αντιπροσωπεύει μια γραμμή ή μια συγκεκριμένη ομαδοποίηση δεδομένων.
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:
console.print(element, ", ")
console.new_line()
# Start threads — Do not delete
start_thread(main)
Μπορείτε να τροποποιήσετε συγκεκριμένα στοιχεία ή ακόμα και ολόκληρες υπολίστες μέσα σε μια δισδιάστατη λίστα:
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
console.print(matrix[0])
# Start threads — Do not delete
start_thread(main)
Tuple#
Μια πλειάδα είναι μια ακολουθία στοιχείων που δεν μπορούν να αλλάξουν μετά τη δημιουργία τους. Χρησιμοποιούνται συχνά για την ομαδοποίηση σχετικών τιμών.
def main():
# Define a tuple
set_1 = (100, "Left")
# Print the tuple
console.print(set_1)
# Start threads — Do not delete
start_thread(main)
Tuples are created using parentheses () rather than square brackets [].