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

ΘΕΜΑ: Νέος στην Python

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5009

  • valant1979
  • Το Άβαταρ του/της valant1979
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 12
1) Γράψτε ένα σενάριο το οποίο θα χρησιμοποιεί ένα βρόχο while και θα εκτυπώνει τους αριθμούς από το 0 έως < 5.

Γιαυτό κατέληξα εδω:
>>> for i in range(0, 5):
print(i)
else:
print('Ο βρόχος loop τερματίστηκε')


0
1
2
3
4
Ο βρόχος loop τερματίστηκε
2) Γράψτε ένα σενάριο το οποίο θα χρησιμοποιεί ένα βρόχο και θα εκτυπώνει τους μονούς αριθμούς <10.

Γιαυτό το παρακάτω:
for i in range(1,10,2):
print(i)
else:
print('Ο βρόχος loop τερματίστηκε')


1
3
5
7
9
Ο βρόχος loop τερματίστηκε
3)Γράψτε ένα σενάριο όπου θα ζητάτε από τον χρήστη ένα αριθμό. Ανάλογα με το αν ο αριθμός είναι μονός ή ζυγός, θα τυπώνεται ανάλογο μήνυμα.

Τι λέτε γιαυτό:
num=int(input('Δώσε ένα ακέραιο αριθμό: '))
Δώσε ένα ακέραιο αριθμό: 5
>>> check=num%2
>>> if check==0:
print("Ο αριθμός είναι Ζυγός")
else:
print("Ο αριθμός που έδωσες είναι Μονός")


Ο αριθμός που έδωσες είναι Μονός
4)Θεωρήστε μια λίστα, όπως την παρακάτω:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Α) Γράψτε ένα σενάριο το οποίο τυπώνει όλα τα στοιχεία της λίστας τα οποίο είναι μικρότερα από 5.

Τι λέτε γιαυτό;
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> a[0:4]
[1, 1, 2, 3]
>>>
Β) Γράψτε ένα σενάριο το οποίο θα ζητά από τον χρήστη ένα αριθμό και θα τυπώνει όλα τα στοιχεία της λίστας τα οποία είναι μικρότερα από τον αριθμό αυτό.

Για το 4ο τι λέτε;
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> x=int(input('Δώσε έναν αριθμό Α : '))
Δώσε έναν αριθμό Α : 95
>>> if x>90:
print(a[0:11])
if x<89:
print(a[0:10])
if x<54:
print(a[0:9])
if x<33:
print(a[0:8])
if x<20:
print(a[0:7])
if x<12:
print(a[0:6])
if x<7:
print(a[0:5])
if x<4:
print(a[0:4])
if x<2:
print(a[0:3])
if x==1:
print(a[0:2])


[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Ευχαριστώ εκ των προτέρων.
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από valant1979.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5011

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 433
  • Ληφθείσες Ευχαριστίες 74
Όλα είναι σωστά. Για το πρώτο σε απάντησα στο άλλο post που έχεις κάνει.

valant1979 έγραψε:
Β) Γράψτε ένα σενάριο το οποίο θα ζητά από τον χρήστη ένα αριθμό και θα τυπώνει όλα τα στοιχεία της λίστας τα οποία είναι μικρότερα από τον αριθμό αυτό.

Για το 4ο τι λέτε;
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> x=int(input('Δώσε έναν αριθμό Α : '))
Δώσε έναν αριθμό Α : 95
>>> if x>90:
print(a[0:11])
if x<89:
print(a[0:10])
if x<54:
print(a[0:9])
if x<33:
print(a[0:8])
if x<20:
print(a[0:7])
if x<12:
print(a[0:6])
if x<7:
print(a[0:5])
if x<4:
print(a[0:4])
if x<2:
print(a[0:3])
if x==1:
print(a[0:2])


[1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]

Ευχαριστώ εκ των προτέρων.

Βλέποντας τον παραπάνω κώδικα έχω καταλάβει ότι δεν ξέρεις να γράφεις αλγορίθμους. Αυτό που έχεις γράψει είναι σωστό αλλά μόνο για το συγκεκριμένο παράδειγμα στο οποίο γνωρίζεις 1) το μέγεθος της λίστας, 2) τα στοιχεία της αλλά και 3) ότι τα στοιχεία είναι ταξινομημένα κατά αύξουσα σειρά.

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

Δεν ξέρω τι ακριβώς μαθαίνετε στο μάθημα του προγραμματισμού, μπορεί να μην χρειάζεται να τα ξέρεις αυτά για αυτό ρωτάω.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": valant1979

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5012

  • valant1979
  • Το Άβαταρ του/της valant1979
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 12
Οι παραπάνω ασκήσεις δόθηκαν για τη διδακτική ενότητα 3:Λεξικά-Έλεγχος Ροής.Αλγόριθμους δεν είχε...Χαίρομαι που κάτι κατάφερα τελικά γιατί το Σάββατο ημούν χάλια και η βοήθεια που πήρα από τον υπέυθυνο καθήγητη όταν τον είπα ότι τα παραδείγματα της Δ.Ε. δεν επάρκουν...ήταν ότι επαρκούν...Τεσπάντον ,από αύριο ξεκινάω την Δ.Ε. 4 που αφορά Συναρτήσεις-Δομοστοιχεία.Και μόνο που στην αλλη άκρη του μυαλού μου θα ξερω ότι κάποιος μπορεί να μου πει να δούμε μαζί τα λάθη ή να με δείξει ένα τροπο ή να μου πει τα χεις σωστά, μου φτάνει και σε ευχαριστώ...Ξόδεψα από την Παρασκεύη πάνω απο 20 ώρες...αλλά το ευχαριστήθηκα πραγματικά.
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από valant1979.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5013

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 236
  • Ληφθείσες Ευχαριστίες 62
valant
Στην 1η σου ζητάει while και χρησιμοποιείς for
Η χρήση της while περιγράφεται εδώ docs.python.org/3/reference/compound_stm...#the-while-statement
και με λίγα λόγια εκτέλεί το κώδικα που περιέχει όσο η συνθήκη ελέγχου είναi True
Μήν ξεχνάς μέσα στο κώδικα της while να αλλάζεις την τιμή της συνθήκης ελέγχου
Στη δική σου περίπτωση θα μπορούσε να είναι κάπως έτσι
>>> arithmos=0
>>> while arithmos<5:
	print (arithmos)
	arithmos+=1

Στην τελευταία περίπτωση που έχεις τους fibonaci η λογική σου είναι λάθος
Τρέχεις όλα τα στοιχεία της λιστάς και εκτυπώνεις ότι είναι μικρότερο του αριθμού που θες
επειδή είναι και sorted μπορείς να σπάσεις το βρόγχο αν θες
>>> for i in a:
	if i<50:
		print(i)
#εδώ μπορείς να προσθέσεις
        else:break #επειδή ξέρεις ότι δεν θα συναντήσεις άλλο αριθμό μικρότερο του 50 
Γενικά εφόσον ενδιαφέρεσαι να μάθεις κάποια πράγματα θα σου πρότεινα μην κολλάς σε αυτά που σου δίνει ο καθήγητης. Στό internet έχει πολύ καλές πηγές px docs.python.org/3/tutorial/index.html
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": valant1979

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5015

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 236
  • Ληφθείσες Ευχαριστίες 62
babaliaris
Δεν βλέπω δυστηχώς εδώ το μύνημα σου
Λέω για την τελευταία άσκηση ότι η λόγική είναι λάθος με την έννοια ότι εκτός από "χαζή" έχει και λογικά λάθη
πάρε π.χ την περίπτωση που ο χρήστης εισάγει τον αριθμό 1 τότε η συνθήκη
if x<89:
print(a[0:10]) 
θα εκτελεστεί
θα πάει παρακάτω στο
if x<54:
print(a[0:9])
το οποίο επίσης θα εκτελεστεί
και γενικά θα εκτελεστούν όλα τα ifs εκτός του 1ου

Είναι και λάθος του καθηγητή που έδωσε συγκεκριμένη λίστα επιφυλάσσομαι όμως γιατί δεν ξέρω πως είναι η original άσκηση
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5016

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 433
  • Ληφθείσες Ευχαριστίες 74
Theo έγραψε:
babaliaris
Δεν βλέπω δυστηχώς εδώ το μύνημα σου
Λέω για την τελευταία άσκηση ότι η λόγική είναι λάθος με την έννοια ότι εκτός από "χαζή" έχει και λογικά λάθη
πάρε π.χ την περίπτωση που ο χρήστης εισάγει τον αριθμό 1 τότε η συνθήκη
if x<89:
print(a[0:10]) 
θα εκτελεστεί
θα πάει παρακάτω στο
if x<54:
print(a[0:9])
το οποίο επίσης θα εκτελεστεί
και γενικά θα εκτελεστούν όλα τα ifs εκτός του 1ου

Είναι και λάθος του καθηγητή που έδωσε συγκεκριμένη λίστα επιφυλάσσομαι όμως γιατί δεν ξέρω πως είναι η original άσκηση

Ναι το είχα σβήση το μήνυμα που έγγραψα γιατί εκανα λάθος.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5017

  • valant1979
  • Το Άβαταρ του/της valant1979
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 12
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
x=int(input('Δώσε έναν αριθμό Α : '))
Δώσε έναν αριθμό Α : 10
>>> for x in a:
if x<50:
print(x)


1
1
2
3
5
8
13
21
34

Υπάρχει πάλι λάθος...γιατί θέλουμε να εκτυπώνει όλους τους αριθμούς της λίστας που είναι μικρότεροι από τον αριθμό του χρήστη.
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από valant1979.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5018

  • kamar
  • Το Άβαταρ του/της kamar
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 405
  • Ληφθείσες Ευχαριστίες 87
Σαφώς και σου βγάζει λάθος αποτέλεσμα. Την μεταβλητή x την έχεις δεσμεύσει, αρχικά, για την εισαγωγή του χρήστη. Κατόπιν την αρχικοποιείς ως στοιχείο της λίστας a. Επίσης το 50 είναι τελείως αυθαίρετο. Για να το καταλάβεις δες:
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> x=int(input('Δώσε έναν αριθμό Α : '))
Δώσε έναν αριθμό Α : 10
>>> for num in a: # Νέα μεταβλητή για κάθε στοιχείο της λίστας.
	if num < x: # Σύγκριση του στοιχείου της λίστας με την είσοδο του χρήστη.
		print(num)
 
 
1
1
2
3
5
8
>>>

EDIT
Να γνωρίζεις ότι όσο κάνεις εξάσκηση θα βελτιώνεσαι.
Γράφω σε Python 3
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από kamar. Αιτία: Προσθήκη κειμένου
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": valant1979

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5019

  • valant1979
  • Το Άβαταρ του/της valant1979
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 12
Το κατάλαβα...Σε ευχαριστώ.
4)Θεωρήστε μια λίστα, όπως την παρακάτω:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Α) Γράψτε ένα σενάριο το οποίο τυπώνει όλα τα στοιχεία της λίστας τα οποίο είναι μικρότερα από 5.

Τι λέτε γιαυτό;
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> a[0:4]
[1, 1, 2, 3]
>>>
Οπότε για το παραπάνω υπάρχει και αυτή η λύση:
>>> for num in a:
if num < 5:
print(num)


1
1
2
3
>>>
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από valant1979.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5022

  • babaliaris1
  • Το Άβαταρ του/της babaliaris1
  • Αποσυνδεμένος
  • python
  • Δημοσιεύσεις: 433
  • Ληφθείσες Ευχαριστίες 74
valant1979 έγραψε:
Το κατάλαβα...Σε ευχαριστώ.
4)Θεωρήστε μια λίστα, όπως την παρακάτω:
a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
Α) Γράψτε ένα σενάριο το οποίο τυπώνει όλα τα στοιχεία της λίστας τα οποίο είναι μικρότερα από 5.

Τι λέτε γιαυτό;
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> a[0:4]
[1, 1, 2, 3]
>>>
Οπότε για το παραπάνω υπάρχει και αυτή η λύση:
>>> for num in a:
if num < 5:
print(num)


1
1
2
3
>>>

Σωστός ;)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Νέος στην Python 7 Μήνες 1 Εβδομάδα πριν #5028

  • Theo
  • Το Άβαταρ του/της Theo
  • Αποσυνδεμένος
  • pytho_
  • Δημοσιεύσεις: 236
  • Ληφθείσες Ευχαριστίες 62
Valant

Λάβε υπόψη και αυτό που είπα για την sorted λίστα
>>> for num in a:
	if num < 5:
		print(num)
	else:break #Αυτό
Στην συγκεκριμένη περίπτωση η λίστα σου έχει 11 στοιχεία και το if θα εκτελεστεί 11 φορές
αν είχε 11000 στοιχεία θα χρειαζόταν 11000 ελέγχοι
με το break όμως μόνο 6
>>> a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
>>> a[0:4]
[1, 1, 2, 3]
Αυτό είναι "λάθος" προγραμματιστικά
από που βγήκε το 4 τα μέτρησες με το χέρι ή με το μάτι
και εάν έκανες λάθος;
Στον κώδικα δεν μπαίνουν τέτοια στοιχεία
for i in a:
	if i>=5:
		print (a[:a.index(i)])
		break
To παραπάνω όμως είναι σωστό γιατί δεν ύπαρχει κάτι "αυθαίρετο"
Τελευταία διόρθωση: 7 Μήνες 1 Εβδομάδα πριν από Theo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": valant1979
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.803 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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