Corona Borealis
Νεοφερμένος
Η Corona Borealis αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 16 μηνύματα.

18-01-22

21:15
Καλησπέρα σε όλους, σε μία εργασία πάνω σε εισαγωγικά ζητήματα του flask στο python, μεταξύ άλλων ζητείται να εφαρμοστεί η εφαρμογή αντικατάστασης ορισμένων χαρακτήρων.
Συγκεκριμένα η ασκηση ζητά να φτιάξουμε ενα dynamic route στο οποίο όποιο όλα τα a θα αντικαθίστανται από e
Εχω προσπαθήσει το παρακάτω αλλά δεν λειτουργεί.
Υπάρχει κάποιο πρόταση;
Συγκεκριμένα η ασκηση ζητά να φτιάξουμε ενα dynamic route στο οποίο όποιο όλα τα a θα αντικαθίστανται από e
Εχω προσπαθήσει το παρακάτω αλλά δεν λειτουργεί.
Υπάρχει κάποιο πρόταση;
Python:
from flask import Flask
app=Flask(__name__)
@app.route("/profile/<name>")
def user(name):
def replace_all(name, repl):
name = name.lower()
for c in " 'a', 'e' ":
name = name.replace(c, repl)
return "<h1> User: {}</h1>".format(name)
if __name__=="__main__":
app.run()
gademis
Τιμώμενο Μέλος
Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών και επαγγέλλεται Η.Μ.Μ.Υ.. Έχει γράψει 1,633 μηνύματα.

18-01-22

21:24
Δεν χρειάζεται for loop το replace της python, βρίσκει όλα τα occurances μοναχό του
Python:
>>> name = "banana"
>>> name = name.replace("a","e")
>>> print(name)
benene
>>>
Corona Borealis
Νεοφερμένος
Η Corona Borealis αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 16 μηνύματα.

18-01-22

21:27
Ευχαριστω πολύ για την αμεση απόκριση.Δεν χρειάζεται for loop το replace της python, βρίσκει όλα τα occurances μοναχό του
Python:>>> name = "banana" >>> name = name.replace("a","e") >>> print(name) benene >>>
Το θέμα είναι ότι χρειάζεται να αντικαθίσταται οποιοδήποτε "a" υπάρχει σε οποιοδήποτε όνομα γραφεί μετά το /profile προς αναζτηση στο συγκεκριμένο site
gademis
Τιμώμενο Μέλος
Ο Δημήτρης αυτή τη στιγμή δεν είναι συνδεδεμένος. Είναι 46 ετών και επαγγέλλεται Η.Μ.Μ.Υ.. Έχει γράψει 1,633 μηνύματα.

18-01-22

21:58
Ωραία, πολύ καλύτερα με format.
Θυμάσαι οτι το indentation έχει σημασία στην python, εδώ το function user σου εξυπηρετεί το /user/<name> route οπότε το return πρέπει να είναι ενα tab πιο μεσα για να εμπίπτει μεσα στην user().
ορίζεις την replace_all αλλά δεν την καλείς πουθενά, μοιάζει σαν να ήθελες στο τέλος να γράψεις κάτι του τύπου
H ίδια η replace_all δεν κάνει καμία αλλαγή στις παραμέτρους της (λέω ψέμματα, αλλά υπέθεσε οτι δε κανει για τωρα) και ο πιο απλός τρόπος ειναι να κανεις return το αλλαγμένο όνομα στο τέλος του κώδικα προσθέτοντας το
Τέλος όπως αναφέρω πιο πανω, δεν χρειάζεται να κάνεις λούπα για κάθε a που αντικαθιστάς.
άρα έχουμε μια replace_all που είναι καπως έτσι:
Την οποία πρέπει να καλέσεις στο τέλος και το αποτέλεσμά της να κάνεις return.
Δες το άλλη μία και μη φοβηθείς να βαλεις prints όπου μπερδεύεις τι κανει. Είναι μέχρι να σου κανει click μετά είναι εύκολο
Θυμάσαι οτι το indentation έχει σημασία στην python, εδώ το function user σου εξυπηρετεί το /user/<name> route οπότε το return πρέπει να είναι ενα tab πιο μεσα για να εμπίπτει μεσα στην user().
ορίζεις την replace_all αλλά δεν την καλείς πουθενά, μοιάζει σαν να ήθελες στο τέλος να γράψεις κάτι του τύπου
return "<h1> User: {}</h1>".format(replace_all(name))
. Αυτό θα σου καλούσε την replace_all για να κάνεις το replace.Αν σε μπερδεύει που ειναι ολο σε μια γραμμή το παραπάνω είναι ουσιαστικά ισοδύναμο με:
Python:
replaced_name = replace_all(name)
HTML_to_return = "<h1> User: {}</h1>".format(replaced_name)
return HTML_to_return
H ίδια η replace_all δεν κάνει καμία αλλαγή στις παραμέτρους της (λέω ψέμματα, αλλά υπέθεσε οτι δε κανει για τωρα) και ο πιο απλός τρόπος ειναι να κανεις return το αλλαγμένο όνομα στο τέλος του κώδικα προσθέτοντας το
return name
. Από εκει και πέρα θα μπορεις να γυρίσεις την τιμη της κανοντας name = replace_all(name)
Τέλος όπως αναφέρω πιο πανω, δεν χρειάζεται να κάνεις λούπα για κάθε a που αντικαθιστάς.
άρα έχουμε μια replace_all που είναι καπως έτσι:
Python:
def replace_all(name):
name = name.lower()
name = name.replace("a","e")
return name
Δες το άλλη μία και μη φοβηθείς να βαλεις prints όπου μπερδεύεις τι κανει. Είναι μέχρι να σου κανει click μετά είναι εύκολο
Corona Borealis
Νεοφερμένος
Η Corona Borealis αυτή τη στιγμή δεν είναι συνδεδεμένη. Έχει γράψει 16 μηνύματα.

18-01-22

22:12
Χμ, εξακολουθεί να μην λειτουργεί...
Εμφανίζεται το όνομα αλλά δεν γίνεται η ατικατασταση
Εμφανίζεται το όνομα αλλά δεν γίνεται η ατικατασταση
vassilis498
Διακεκριμένο μέλος
Ο vassilis498 αυτή τη στιγμή δεν είναι συνδεδεμένος. Έχει γράψει 7,076 μηνύματα.

19-01-22

02:05
αν το νόημα της άσκησης δεν είναι να μάθετε closures ή/και scopes μεταβλητών και δε σου ζητείται να ορίσεις τη replace_all εκεί μέσα συγκεκριμένα θα σου λεγα να την αποφύγεις, ή έστω να την ορίσεις κάπου απ' έξω τώρα μπερδεύεσαι άδικα.
Χρήστες Βρείτε παρόμοια
-
Τα παρακάτω 0 μέλη και 1 επισκέπτες διαβάζουν μαζί με εσάς αυτό το θέμα:Tα παρακάτω 21 μέλη διάβασαν αυτό το θέμα:
-
Φορτώνει...