Προς το περιεχόμενο

Ασκηση στην Python


billsowngame

Προτεινόμενες αναρτήσεις

Γεια σας,

έχω μια άσκηση στην Pyhton που έχει να κάνει με τις λίστες .

α) Στο πρώτο ερώτημα που λέει να βρώ μια λίστα με την την τεχνική list comprehension που να έχει σαν στοιχεία της τα πολλαπλάσια του x από την τιμή 1 μέχρι και την τιμή y.

β) Βρίσκω αυτή τη λίστα και μετά μου ζητάει να του βρω μία άλλη λίστα η οποία σε κάθε θέση της έχει την τιμή 0 ή 1 ανάλογα αν το αντίστοιχο στοιχείο της mylist (δηλ. αυτό που βρίσκεται στην αντίστοιχη θέση) είναι άρτιος ή περιττός αριθμός (0 για άρτιο ή 1 για περιττό αριθμό).Δηλαδή αν στο πρώτο ερώτημα βάλω τις τιμές x=3 και y=5 τότε η λίστα έχει τη μορφή: [3, 6, 9, 12, 15] και στο β)  ερώτημα θα πρέπει να είναι της μορφής [1, 0, 1, 0, 1].

τι πρέπει να κάνω ?(1234).png.72cc0141c36b5955f6a17a4889f9365e.png

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Παροτι δεν ειναι σωστο να δινονται λυσεις σε ασκησεις εκ του μηδενος, θα σου απαντησω επειδη εχεις κανει ηδη τη μιση (η οποια λυση σου ειναι μια χαρα).

Ο πιο απλος τροπος ειναι αυτος:

[0 if i%2==0 else 1 for i in mylist]

και μια εναλλακτικη:

[(not i%2==0)*1 for i in mylist]

αποτελεσμα και των 2 ειναι [1, 0, 1, 0, 1]

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Σας ευχαριστώ για τις απαντήσεις σας σκέφτηκα αυτό είναι λάθος ?

mylist01 = []
for num in mylist:
   if num % 2 == 0:
       mylist01.append(0)
   else:
       mylist01.append(1)
print(mylist01)

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

2 λεπτά πριν, billsowngame είπε

Σας ευχαριστώ για τις απαντήσεις σας σκέφτηκα αυτό είναι λάθος ?

mylist01 = []
for num in mylist:
   if num % 2 == 0:
       mylist01.append(0)
   else:
       mylist01.append(1)
print(mylist01)

Μια χαρα ειναι. 

  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

16 ώρες πριν, archer100 είπε

Ωραιος. To & το ηξερα ως AND, πως ακριβως δουλευει με τη λογικη αρτιων-περιττων;

Λόγω της αναπαράστασης στο δυαδικό οι άρτιοι έχουν δεξιότερο bit (lsb) 0 ενώ οι περιττοί 1 πχ το 12 είναι 1100 ενώ το 13 1101 άρα το & 1 (0001) θα δώσει 0000 και 0001 αντίστοιχα.

  • Thanks 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημοσ. (επεξεργασμένο)
Στις 5/3/2023 στις 10:30 ΠΜ, billsowngame είπε

Σας ευχαριστώ για τις απαντήσεις σας σκέφτηκα αυτό είναι λάθος ?

mylist01 = []
for num in mylist:
   if num % 2 == 0:
       mylist01.append(0)
   else:
       mylist01.append(1)
print(mylist01)

Πάντως δεδομένου ότι γράφεις python, ίσως μια καλή ιδέα θα ήταν να προπονηθείς και με τα list comprehensions. Ας πούμε ο κώδικάς σου γίνεται:

mylist01 = [ 1 if num%2 else 0 for num in mylist]

(εδώ δεν χρειάζομαι το ==0 και πατάω στο γεγονός ότι αριθμητικές τιμές διάφορες του 0 δίνουν αποτέλεσμα True στο if)

Επεξ/σία από Orestis_G
  • Like 1
Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

4 ώρες πριν, Orestis_G είπε

Πάντως δεδομένου ότι γράφεις python, ίσως μια καλή ιδέα θα ήταν να προπονηθείς και με τα list comprehensions. Ας πούμε ο κώδικάς σου γίνεται:

mylist01 = [ 1 if num%2 else 0 for num in mylist]

(εδώ δεν χρειάζομαι το ==0 και πατάω στο γεγονός ότι αριθμητικές τιμές διάφορες του 0 δίνουν αποτέλεσμα True στο if)

Ούτε το if χρειάζεται βασικά, αρκεί το num % 2

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

4 λεπτά πριν, SOADNICK είπε

Ούτε το if χρειάζεται βασικά, αρκεί το num % 2

Ναι, σωστός, το μόνο υπόλοιπο που μπορεί να έχει ακέραιος/2 είναι το 1... :)

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

1 λεπτό πριν, archer100 είπε

To num%2 σκετο δινει 0 ενω η ασκηση ζηταει 1

0 ή 1 ανάλογα αν το αντίστοιχο στοιχείο της mylist (δηλ. αυτό που βρίσκεται στην αντίστοιχη θέση) είναι άρτιος ή περιττός αριθμός (0 για άρτιο ή 1 για περιττό αριθμό).

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Μόλις τώρα, SOADNICK είπε

0 ή 1 ανάλογα αν το αντίστοιχο στοιχείο της mylist (δηλ. αυτό που βρίσκεται στην αντίστοιχη θέση) είναι άρτιος ή περιττός αριθμός (0 για άρτιο ή 1 για περιττό αριθμό).

Ναι, λαθος μου, νομιζα ζητουσε το αναποδο

Συνδέστε για να σχολιάσετε
Κοινοποίηση σε άλλες σελίδες

Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε

Πρέπει να είστε μέλος για να αφήσετε σχόλιο

Δημιουργία λογαριασμού

Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!

Δημιουργία νέου λογαριασμού

Σύνδεση

Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.

Συνδεθείτε τώρα
  • Δημιουργία νέου...