Οδηγός λειτουργίας Python με παραδείγματα

Εισαγωγή στις συναρτήσεις στο Python

Μια λειτουργία σάς επιτρέπει να ορίσετε ένα επαναχρησιμοποιήσιμο μπλοκ κώδικα που μπορεί να εκτελεστεί πολλές φορές μέσα στο πρόγραμμά σας.

Οι λειτουργίες σάς επιτρέπουν να δημιουργείτε πιο αρθρωτές και στεγνές λύσεις σε σύνθετα προβλήματα.

Ενώ η Python παρέχει ήδη πολλές ενσωματωμένες λειτουργίες όπως print()και len(), μπορείτε επίσης να ορίσετε τις δικές σας λειτουργίες για χρήση στα έργα σας.

Ένα από τα μεγάλα πλεονεκτήματα της χρήσης λειτουργιών στον κώδικά σας είναι ότι μειώνει τον συνολικό αριθμό γραμμών κώδικα στο έργο σας.

Σύνταξη

Στο Python, ένας ορισμός συνάρτησης έχει τα ακόλουθα χαρακτηριστικά:

  1. Η λέξη-κλειδί def
  2. ένα όνομα συνάρτησης
  3. paranthesis '()', και εντός παραμέτρων εισόδου παραμέτρων, αν και οι παράμετροι εισόδου είναι προαιρετικές.
  4. άνω και κάτω τελεία ':'
  5. κάποιο μπλοκ κώδικα για εκτέλεση
  6. δήλωση επιστροφής (προαιρετικό)
# a function with no parameters or returned values def sayHello(): print("Hello!") sayHello() # calls the function, 'Hello!' is printed to the console # a function with a parameter def helloWithName(name): print("Hello " + name + "!") helloWithName("Ada") # calls the function, 'Hello Ada!' is printed to the console # a function with multiple parameters with a return statement def multiply(val1, val2): return val1 * val2 multiply(3, 5) # prints 15 to the console

Οι συναρτήσεις είναι μπλοκ κώδικα που μπορούν να επαναχρησιμοποιηθούν απλά καλώντας τη συνάρτηση. Αυτό επιτρέπει την απλή, κομψή επαναχρησιμοποίηση κώδικα χωρίς ρητή επανεγγραφή τμημάτων κώδικα. Αυτό καθιστά τον κώδικα τόσο πιο ευανάγνωστο, διευκολύνει τον εντοπισμό σφαλμάτων και περιορίζει τα σφάλματα πληκτρολόγησης.

Οι συναρτήσεις στο Python δημιουργούνται χρησιμοποιώντας τη defλέξη-κλειδί, ακολουθούμενη από ένα όνομα συνάρτησης και παραμέτρους συναρτήσεων εντός παρενθέσεων.

Μια συνάρτηση επιστρέφει πάντα μια τιμή, Η returnλέξη-κλειδί χρησιμοποιείται από τη συνάρτηση για να επιστρέψει μια τιμή, εάν δεν θέλετε να επιστρέψετε καμία τιμή, η προεπιλεγμένη τιμή Noneθα επιστραφεί.

Το όνομα της συνάρτησης χρησιμοποιείται για την κλήση της συνάρτησης, περνώντας τις απαραίτητες παραμέτρους εντός παρενθέσεων.

# this is a basic sum function def sum(a, b): return a + b result = sum(1, 2) # result = 3

Μπορείτε να ορίσετε προεπιλεγμένες τιμές για τις παραμέτρους, με αυτόν τον τρόπο η Python θα ερμηνεύσει ότι η τιμή αυτής της παραμέτρου είναι η προεπιλεγμένη, εάν δεν έχει δοθεί καμία.

def sum(a, b=3): return a + b result = sum(1) # result = 4

Μπορείτε να περάσετε τις παραμέτρους με τη σειρά που θέλετε, χρησιμοποιώντας το όνομα της παραμέτρου.

result = sum(b=2, a=2) # result = 4

Ωστόσο, δεν είναι δυνατόν να περάσετε ένα όρισμα λέξης-κλειδιού πριν από ένα επιχείρημα χωρίς λέξεις-κλειδιά

result = sum(3, b=2) #result = 5 result2 = sum(b=2, 3) #Will raise SyntaxError

Οι συναρτήσεις είναι επίσης Αντικείμενα, οπότε μπορείτε να τις αντιστοιχίσετε σε μια μεταβλητή και να τη χρησιμοποιήσετε ως μεταβλητή.

s = sum result = s(1, 2) # result = 3

Σημειώσεις

Εάν ένας ορισμός συνάρτησης περιλαμβάνει παραμέτρους, πρέπει να παρέχετε τον ίδιο αριθμό παραμέτρων όταν καλείτε τη συνάρτηση.

print(multiply(3)) # TypeError: multiply() takes exactly 2 arguments (0 given) print(multiply('a', 5)) # 'aaaaa' printed to the console print(multiply('a', 'b')) # TypeError: Python can't multiply two strings

Το μπλοκ κώδικα που θα εκτελεστεί η συνάρτηση περιλαμβάνει όλες τις δηλώσεις με εσοχή εντός της συνάρτησης.

def myFunc(): print('this will print') print('so will this') x = 7 # the assignment of x is not a part of the function since it is not indented

Οι μεταβλητές που ορίζονται σε μια συνάρτηση υπάρχουν μόνο στο πλαίσιο αυτής της συνάρτησης.

def double(num): x = num * 2 return x print(x) # error - x is not defined print(double(4)) # prints 8

Το Python ερμηνεύει το μπλοκ λειτουργίας μόνο όταν καλείται η συνάρτηση και όχι όταν ορίζεται η συνάρτηση. Έτσι, ακόμη και αν το μπλοκ ορισμού συνάρτησης περιέχει κάποιο είδος σφάλματος, ο διερμηνέας python θα το επισημάνει μόνο όταν καλείται η συνάρτηση.

Τώρα ας δούμε μερικές συγκεκριμένες λειτουργίες με παραδείγματα.

max () συνάρτηση

max() είναι μια ενσωματωμένη συνάρτηση στο Python 3. Επιστρέφει το μεγαλύτερο στοιχείο σε μια επαναλαμβανόμενη ή τη μεγαλύτερη από δύο ή περισσότερα ορίσματα.

Επιχειρήματα

Αυτή η συνάρτηση παίρνει δύο ή περισσότερους αριθμούς ή οποιοδήποτε είδος επαναλαμβανόμενο ως όρισμα. Ενώ δίνουμε μια επανάληψη ως επιχείρημα, πρέπει να βεβαιωθούμε ότι όλα τα στοιχεία του επαναληπτικού χαρακτήρα είναι του ίδιου τύπου. Αυτό σημαίνει ότι δεν μπορούμε να περάσουμε μια λίστα με αποθηκευμένες τιμές συμβολοσειρών και ακέραιων τιμών. Σύνταξη: max (iterable, * iterables [, key, default]) max (arg1, arg2, * args [, key])

Έγκυρα επιχειρήματα:

max(2, 3) max([1, 2, 3]) max('a', 'b', 'c')

Μη έγκυρα επιχειρήματα:

max(2, 'a') max([1, 2, 3, 'a']) max([])

Αξία επιστροφής

Επιστρέφεται το μεγαλύτερο στοιχείο στο επαναληπτικό. Εάν παρέχονται δύο ή περισσότερα ορίσματα θέσης, επιστρέφεται το μεγαλύτερο από τα ορίσματα θέσης. Εάν το iterable είναι κενό και δεν παρέχεται η προεπιλογή, το a ValueErrorαυξάνεται.

Δείγμα κώδικα

print(max(2, 3)) # Returns 3 as 3 is the largest of the two values print(max(2, 3, 23)) # Returns 23 as 23 is the largest of all the values list1 = [1, 2, 4, 5, 54] print(max(list1)) # Returns 54 as 54 is the largest value in the list list2 = ['a', 'b', 'c' ] print(max(list2)) # Returns 'c' as 'c' is the largest in the list because c has ascii value larger then 'a' ,'b'. list3 = [1, 2, 'abc', 'xyz'] print(max(list3)) # Gives TypeError as values in the list are of different type #Fix the TypeError mentioned above first before moving on to next step list4 = [] print(max(list4)) # Gives ValueError as the argument is empty

Εκτέλεση κώδικα

Επίσημα Έγγραφα

συνάρτηση min ()

min() είναι μια ενσωματωμένη συνάρτηση στο Python 3. Επιστρέφει το μικρότερο στοιχείο σε επαναληπτικό ή το μικρότερο από δύο ή περισσότερα ορίσματα.

Επιχειρήματα

Αυτή η συνάρτηση παίρνει δύο ή περισσότερους αριθμούς ή οποιοδήποτε είδος επαναλαμβανόμενο ως όρισμα. Ενώ δίνουμε μια επανάληψη ως επιχείρημα, πρέπει να βεβαιωθούμε ότι όλα τα στοιχεία του επαναληπτικού χαρακτήρα είναι του ίδιου τύπου. Αυτό σημαίνει ότι δεν μπορούμε να περάσουμε μια λίστα με αποθηκευμένες τιμές συμβολοσειρών και ακέραιων τιμών.

Έγκυρα επιχειρήματα:

min(2, 3) min([1, 2, 3]) min('a', 'b', 'c')

Μη έγκυρα επιχειρήματα:

min(2, 'a') min([1, 2, 3, 'a']) min([])

Αξία επιστροφής

Επιστρέφεται το μικρότερο στοιχείο στο επαναλαμβανόμενο. Εάν παρέχονται δύο ή περισσότερα ορίσματα θέσης, το μικρότερο από τα ορίσματα θέσης

επιστρέφεται. Εάν το iterable είναι κενό και δεν παρέχεται η προεπιλογή, αυξάνεται το ValueError.

Δείγμα κώδικα

print(min(2, 3)) # Returns 2 as 2 is the smallest of the two values print(min(2, 3, -1)) # Returns -1 as -1 is the smallest of the two values list1 = [1, 2, 4, 5, -54] print(min(list1)) # Returns -54 as -54 is the smallest value in the list list2 = ['a', 'b', 'c' ] print(min(list2)) # Returns 'a' as 'a' is the smallest in the list in alphabetical order list3 = [1, 2, 'abc', 'xyz'] print(min(list3)) # Gives TypeError as values in the list are of different type #Fix the TypeError mentioned above first before moving on to next step list4 = [] print(min(list4)) # Gives ValueError as the argument is empty

Εκτέλεση κώδικα

Επίσημα Έγγραφα

συνάρτηση divmod ()

divmod()είναι μια ενσωματωμένη συνάρτηση στο Python 3, η οποία επιστρέφει το πηλίκο και το υπόλοιπο κατά τη διαίρεση του αριθμού aμε τον αριθμό b. Παίρνει δύο αριθμούς ως ορίσματα a& b. Το όρισμα δεν μπορεί να είναι ένας πολύπλοκος αριθμός.

Διαφωνία

Χρειάζονται δύο ορίσματα a& b- έναν ακέραιο ή έναν δεκαδικό αριθμό. Δεν μπορεί να είναι ένας πολύπλοκος αριθμός.

Αξία επιστροφής

Η τιμή επιστροφής θα είναι το ζεύγος θετικών αριθμών που αποτελείται από πηλίκο και το υπόλοιπο που λαμβάνεται διαιρώντας aμε b. Σε περίπτωση μικτών τύπων τελεστών, θα εφαρμόζονται κανόνες για δυαδικούς αριθμητικούς τελεστές.

Για ορίσματα ακέραιου αριθμού , η τιμή επιστροφής θα είναι ίδια με (a // b, a % b).

For Decimal number arguments, return value will be same as (q, a % b), where q is usually math.floor(a / b) but may be 1 less than that.

Code Sample

print(divmod(5,2)) # prints (2,1) print(divmod(13.5,2.5)) # prints (5.0, 1.0) q,r = divmod(13.5,2.5) # Assigns q=quotient & r= remainder print(q) # prints 5.0 because math.floor(13.5/2.5) = 5.0 print(r) # prints 1.0 because (13.5 % 2.5) = 1.0

REPL It!

Official Docs

Hex(x) function

hex(x) is a built-in function in Python 3 to convert an integer number to a lowercase hexadecimal string prefixed with “0x”.

Argument

This function takes one argument, x, that should be of integer type.

Return

This function returns a lowercase hexadecimal string prefixed with “0x”.

Example

print(hex(16)) # prints 0x10 print(hex(-298)) # prints -0x12a print(hex(543)) # prints 0x21f

Run Code

Official Documentation

len() function

len() is a built-in function in Python 3. This method returns the length (the number of items) of an object. It takes one argument x.

Arguments

It takes one argument, x. This argument may be a sequence (such as a string, bytes, tuple, list, or range) or a collection (such as a dictionary, set, or frozen set).

Return Value

This function returns the number of elements in the argument which is passed to the len() function.

Code Sample

list1 = [123, 'xyz', 'zara'] # list print(len(list1)) # prints 3 as there are 3 elements in the list1 str1 = 'basketball' # string print(len(str1)) # prints 10 as the str1 is made of 10 characters tuple1 = (2, 3, 4, 5) # tuple print(len(tuple1)) # prints 4 as there are 4 elements in the tuple1 dict1 = {'name': 'John', 'age': 4, 'score': 45} # dictionary print(len(dict1)) # prints 3 as there are 3 key and value pairs in the dict1

Run Code

Official Docs

Ord function

ord() is a built-in function in Python 3, to convert the string representing one Unicode character into integer representing the Unicode code of the character.

Examples:

>>> ord('d') 100 >>> ord('1') 49

chr function

chr() is a built-in function in Python 3, to convert the integer representing the Unicode code into a string representing a corresponding character.

Examples:

>>> chr(49) '1'

One thing is to be noted that, if the integer value passed to chr() is out of range then, a ValueError will be raised.

>>> chr(-10) 'Traceback (most recent call last): File "", line 1, in  chr(-1) ValueError: chr() arg not in range(0x110000)'

input() functions

Many a time, in a program we need some input from the user. Taking inputs from the user makes the program feel interactive. In Python 3, to take input from the user we have a function input(). If the input function is called, the program flow will be stopped until the user has given an input and has ended the input with the return key. Let’s see some examples:

When we just want to take the input:

This will just give a prompt without any message

inp = input()

Run Code

To give a prompt with a message:

promptwithmessage = input(’‘)

_

The ’_’ in the output is the prompt

Run Code

3. When we want to take an integer input:

number = int(input('Please enter a number: '))

Run Code

If you enter a non integer value then Python will throw an error ValueError. So whenever you use this, please make sure that you catch it too. Otherwise, your program will stop unexpectedly after the prompt.

number = int(input('Please enter a number: ')) # Please enter a number: as # Enter a string and it will throw this error # ValueError: invalid literal for int() with base 10 'as'

4. When we want a string input:

string = str(input('Please enter a string: '))

Run Code

Though, inputs are stored by default as a string. Using the str() function makes it clear to the code-reader that the input is going to be a ‘string’. It is a good practice to mention what type of input will be taken beforehand.

Official Docs

How to call a function in Python

A function definition statement does not execute the function. Executing (calling) a function is done by using the name of the function followed by parenthesis enclosing required arguments (if any).

>>> def say_hello(): ... print('Hello') ... >>> say_hello() Hello

The execution of a function introduces a new symbol table used for the local variables of the function. More precisely, all variable assignments in a function store the value in the local symbol table; whereas variable references first look in the local symbol table, then in the local symbol tables of enclosing functions, then in the global symbol table, and finally in the table of built-in names. Thus, global variables cannot be directly assigned a value within a function (unless named in a global statement), although they may be referenced.

>>> a = 1 >>> b = 10 >>> def fn(): ... print(a) # local a is not assigned, no enclosing function, global a referenced. ... b = 20 # local b is assigned in the local symbol table for the function. ... print(b) # local b is referenced. ... >>> fn() 1 20 >>> b # global b is not changed by the function call. 10

Οι πραγματικές παράμετροι (ορίσματα) σε μια συνάρτηση κλήσης εισάγονται στον τοπικό πίνακα συμβόλων της καλούμενης συνάρτησης όταν καλείται. Έτσι, τα ορίσματα περνούν χρησιμοποιώντας την κλήση ανά τιμή (όπου η τιμή είναι πάντα μια αναφορά αντικειμένου, όχι η τιμή του αντικειμένου). Όταν μια συνάρτηση καλεί μια άλλη λειτουργία, δημιουργείται ένας νέος πίνακας τοπικών συμβόλων για αυτήν την κλήση.

>>> def greet(s): ... s = "Hello " + s # s in local symbol table is reassigned. ... print(s) ... >>> person = "Bob" >>> greet(person) Hello Bob >>> person # person used to call remains bound to original object, 'Bob'. 'Bob'

Τα ορίσματα που χρησιμοποιούνται για την κλήση μιας συνάρτησης δεν μπορούν να εκχωρηθούν εκ νέου από τη συνάρτηση, αλλά τα επιχειρήματα που αναφέρονται σε μεταβλητά αντικείμενα μπορούν να αλλάξουν τις τιμές τους:

>>> def fn(arg): ... arg.append(1) ... >>> a = [1, 2, 3] >>> fn(a) >>> a [1, 2, 3, 1]