Συζήτηση
Γεια χαρά, Επισκέπτης
Όνομα χρήστη: Κωδικός: Να με θυμάσαι

ΘΕΜΑ: Πρβλημά με if και λίστα

Πρβλημά με if και λίστα 7 Μήνες 5 Ημέρες πριν #5041

  • neos1
  • Το Άβαταρ του/της neos1
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 9
 def el(x):
   y=[1,2,3,4]
   if x ==y[0:len(y)]:
      print('nai')
   else:
      print('oxi')
Ο παραπάνω δεν έπρεπε να δώσει τo παρακάτω?

>>>el(2)
>>>'nai'

Γιατί ότι τιμή και να βάλω παίρνω μόνο 'oxi'?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Πρβλημά με if και λίστα 7 Μήνες 4 Ημέρες πριν #5042

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 91
  • Ληφθείσες Ευχαριστίες 31
Το if ρωτάει αν το x είναι ίσο με την λίστα y και πολύ σωστά απαντάει όχι, οπότε μπαίνει στο else.
Αν θες να ρωτήσει αν το x είναι μέσα στην λίστα, τότε πρέπει να πει:
if x in y:
Παρεμπιπτόντως, το y[0:len(y)] σημαίνει "η λίστα y από το 0 (πρώτο) στοιχείο έως το τελευταίο, άρα θα μπορούσες να πεις απλώς η λίστα y
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": neos1

Πρβλημά με if και λίστα 7 Μήνες 3 Ημέρες πριν #5049

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 433
  • Ληφθείσες Ευχαριστίες 74
neos1 έγραψε:
 def el(x):
   y=[1,2,3,4]
   if x ==y[0:len(y)]:
      print('nai')
   else:
      print('oxi')
Ο παραπάνω δεν έπρεπε να δώσει τo παρακάτω?

>>>el(2)
>>>'nai'

Γιατί ότι τιμή και να βάλω παίρνω μόνο 'oxi'?

Εκεί που λες
if x ==y[0:len(y)]:

Είναι ακριβώς το ίδιο με αυτό:
if x == [1,2,3,4] :

Διότι len(y) = 4 άρα το y[0:len(y)] = y[0:4] που σημαίνει πάρε όλα τα στοιχεία της λίστας από το πρώτο εώς και το τελευταίο.

Άρα αν δώσεις οποιαδήποτε τιμή στον x η οποία δεν είναι ίση με x = [1,2,3,4], το παραπάνω if θα είναι πάντα ψευδές και για αυτό θα καταλήγεις στο else όπου θα τυπώνεται το όχι.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": neos1
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.369 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

Λίστα Ταχυδρομείου