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

ΘΕΜΑ: Κόλλημα αρχάριου

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2927

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Καλησπέρα παιδιά! Όπως βλέπετε είμαι καινούριο στο site (αλλά κ στον προγραμματισμό). Βλέπω διάφορα tutorial στο internet κ προσπαθώ να τα κάνω κ εγώ στο python. Παρ' όλα αυτά όμως έχω κολλήσει σε ένα σημείο κ δεν μπορώ να καταλάβω το γιατί.
1    from random import randint
2    num - randint (1, 100)
3    my_num = -1
4    score = 0
5    while (my_num != num):
6    	    my_num = input (">>>")
7	    if (my_num > num):
8		    print "Give smaller number"
9	     score = score - 10
10	     elif (my_num < num):
11		    print "Give bigger number"
12	     score = score - 10
13    if (my_num = num):
14 	     print "Congratulations"
15	     socre = score + 100
16	     print socre
Όταν το τρέχω μου βγάζει σφάλμα στη γραμμή 10. Ευχαριστώ για το χρόνο σας.
Τελευταία διόρθωση: 8 Χρόνια 11 Μήνες πριν από scally.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2928

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Καλώς ήρθες στην python!

Υπάρχουν διάφορα μικρο-θεματάκια στον κώδικα σου.

γρ.2 πρέπει να αναθέσεις την μεταβλητή.
γρ.9 και γρ.12 πρέπει να πάνε πιο δεξιά.
Γενικά η στοίχιση σου δεν είναι πολύ ακριβής (ομάδες των 4 κενών) και οι περισσότερες παρενθέσεις δεν χρειάζονται.
Κανονικά θα έπρεπε να είναι κάπως έτσι:

from random import randint
num = randint (1, 100)
my_num = -1
score = 0
while my_num != num:
    my_num = input(">>>")
    if my_num > num:
        print "Give smaller number"
        score = score - 10
    elif my_num < num:
        print "Give bigger number"
        score = score - 10
    if my_num == num:
        print "Congratulations"
        socre = score + 100
        print socre

Τα περισσότερα από αυτά τα λάθη θα τα γλίτωνες αν σε προειδοποιούσε το IDE που χρησιμοποιείς.
Εγώ δουλεύω με το PyCharm που σε βοηθάει πολύ σε τέτοια λάθη...
Μη σε νοιάζει πάντως.
Πολύ σύντομα θα τα έχεις μάθει όλα αυτά.
Καλή τύχη.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": scally

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2929

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Σε ευχαριστώ πάρα πολύ!! Με βοήθησες αρκετά. Αυτά που με έλεγες στο τέλος μου φάνηκαν λίγο κινέζικα αλλά θα τα ψάξω... Κ εγώ νομίζω ότι θα τα συνηθίσω σιγά σιγά.. :)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2930

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
IDE είναι το πρόγραμμα που χρησιμοποιείς για να γράφεις κώδικα (και να κάνεις πολλά άλλα πράγματα, αλλά σιγά - σιγά) Wikipedia is your friend...
Το PyCharm είναι ένα τέτοιο IDE για python.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2931

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Νομίζω κατάλαβα.. Εγώ χρησιμοποιώ το TextWrangler κ το τρέχω με το terminal. (Mac έχω..)
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2932

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Παιδιά καλησπέρα κ συγνώμη για τα συνεχή ερωτήματά μου.. Έχω κάνει το παρακάτω προγραμματάκι κ μου συμβαίνει το εξής (για μένα τουλάχιστον) κουφό..
c1 = raw_input("First number: ")
c2 = raw_input("Second number: ")
d = raw_input("Third number: ")
def add(c1, c2):
	return int(c1) + int(c2)
	return int(d)
total = add(c1, c2)
 
if (total == 5 or total == 6 or total == 7):
	print "Y"
elif (total == 13 or total == 14 or total == 15 or total == 16):
	print "N"
 
elif (total == 8 and d == 2):
	print "Y"
elif (total == 8 and d == 3):
	print "Y"

Όσο δίνω total 5,6,7,13,14,15,16 δηλ το if κ το πρώτο elif όλα είναι οκ.. Αλλά όταν δίνω total 8 και d 2 δεν μου κάνει print τίποτα.. Έκανα ένα πείραμα κ στη θέση του and έβαλα or και μου εκτελέστηκε ΚΑΝΟΝΙΚΑ! Χωρίς να έχω αλλάξει τίποτα άλλο.. Πως γίνετε αυτό;
Τελευταία διόρθωση: 8 Χρόνια 11 Μήνες πριν από scally.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2933

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Την μεταβλητή dealer που την ορίζεις?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2934

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Το dealer είναι το d απλά το ξέχασα να το αλλάξω εδώ στο forum... Το διορθώνω..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2935

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Μια χαρά δουλεύει...
Αν βάλω 3, 3, 2 ή 2, 4, 2 ή 1, 5, 2, πάντα τυπώνει Υ.
c1 = raw_input("First number: ")
c2 = raw_input("Second number: ")
d = raw_input("Third number: ")
 
 
def add(c1, c2):
    return int(c1) + int(c2)
    return int(d)
 
 
total = add(c1, c2)
 
if (total == 5 or total == 6 or total == 7):
    print "Y"
elif (total == 13 or total == 14 or total == 15 or total == 16):
    print "N"
 
elif (total == 8 and d == 2):
    print "Y"
elif (total == 8 and d == 3):
    print "Y"
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2936

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Αν βάλεις όμως 5, 3, 2 ?
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2937

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Τότε το total είναι 10, οπότε δεν κάνει τίποτα επειδή δεν έχει else:
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2938

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Αφού στο total εχω να προσθέτει μόνο το c1 κ το c2.. Όχι το d.. Ή μηπως κάνω λάθος...? :unsure:
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2939

  • embryo
  • Το Άβαταρ του/της embryo
  • Αποσυνδεμένος
  • pyth__
  • Δημοσιεύσεις: 92
  • Ληφθείσες Ευχαριστίες 31
Ααα, ΟΚ, τώρα κατάλαβα.
Το λάθος είναι στο function
def add(c1, c2):
    return int(c1) + int(c2)
    return int(d)
Καταρχάς, ότι είναι μετά από το πρώτο return δεν τρέχει.
Αλλά και να έτρεχε, θα επέστρεφε ένα int(d) που δεν είναι το d που χρησιμοποιούμε γενικά.
Εκείνο εξακολουθεί να είναι το
d = raw_input("Third number: ")
που αφού δεν το κάνεις int, δεν δουλεύει το πράμα ...

Πρέπει να μάθεις για τα namespaces στην python...
Τελευταία διόρθωση: 8 Χρόνια 11 Μήνες πριν από embryo.
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
Οι ακόλουθοι χρήστες είπαν "Σε Ευχαριστώ": scally

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2940

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Μμμμ.. Μάλιστα.. Νομίζω ότι κατάλαβα.. Θα το κοιτάξω αύριο πια γιατί πονοκεφάλιασα τόσες ώρες.. Χαχαχα! Πολλά πρέπει να μάθω ακόμα κ ένα από αυτά όπως είπες πρέπει να ναι τa namespaces.. Σε ευχαριστώ πάρα πολύ!!
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.

Κόλλημα αρχάριου 8 Χρόνια 11 Μήνες πριν #2941

  • scally
  • Το Άβαταρ του/της scally
  • Αποσυνδεμένος
  • py____
  • Δημοσιεύσεις: 19
Τελικά το κοίταξα τώρα κ τίποτα.. Έκανα το παρακάτω καινούριο προγραμματάκι:
x1 = 3
x2 = 5
d = 2
 
if (x1 == 5 and d == 2):
	print "Y"
elif (x1 == 3 and d == 5):
	print "N"

Όταν χ1=5 και d=2 μου βγάζει Υ. Αλλά έτσι όπως το έχω δε μου βγάζει τίποτα... :evil:

Αλλά όταν το κάνω
x1 = 3
x2 = 5
d = 2
 
if (x1 == 5 and d == 2):
	print "Y"
elif (x1 == 3 or d == 5):
	print "N"

τότε μου βγάζει Ν..
Πρέπει να είστε εγγεγραμμένο μέλος του Φόρουμ για να κάνετε μια δημοσίευση.
  • Σελίδα:
  • 1
  • 2
Συντονιστές: pmav99
Χρόνος δημιουργίας σελίδας: 0.313 δευτερόλεπτα

Μοιράσου το!

Powered by CoalaWeb

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