kitkatO Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 from random import randint x=int(input('')) if x==1: print('You selected to play vs the CPU,A RANDOM CODE HAS BEEN ADDED PLEASE MAKE YOUR FIRST ATTEMPT' ) print('NOTE!1 blue , 2 green , 3 yellow , 4 white , 5 pink ,6 black') k = randint (1,6) l = randint (1,6) m = randint (1,6) n = randint (1,6) cod=[] cod.append(k) cod.append(l) cod.append(m) cod.append(n) for o in range (1,9): print('ATTEMPT' , o , ) egw = str(input('')) while len(egw) != 4 : print('ENTER ONLY 4 DIGITS ') print('ATTEMPT' , o , ) egw=str(input('')) continue while int(egw[0]) > 6 or int(egw[1])> 6 or int(egw[2])>6 or int(egw[3])>6: print('PLEASE ENTER DIGITS RAGNING FROM 1-6') print('ATTEMPT', o ,) egw=str(input('')) continue ειναι ενας τυχαιος κωδικος καιτ το προγραμμα προσπαθει να τον σπασει - δεν ειναι οκοκληρωμενο - σε καθε προσπαθεια -ελεγχει αν ειναι 4 ψηφιο ή αν εχει μονο 1 2 3 4 5 6 (θα ηθελα να βλεπει αν εχει και γραμματα αλλα δεν περιαζει ) το θεμα μ ειναι οτι αφου μπει στο 2ο while δεν ελεγχει παλι αν το len=4 το πρωτο while... attempt 1 1238 attempt 1 please enter digits... 123132 και προχωραει χωρις να δει το απο πανω στο attempt2
becoming_I Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Βάλε τον κώδικα σου code tags (ειδικά στην python είναι πολύ σημαντικό) και διατύπωσε με περισσότερη σαφήνεια την ερώτηση σου. Γιατί έχεις input στην αρχή και μετά κάνεις έλεγχο για 1;;; Άλλαξε το σε while True!!!Που κολλάει το 1 blue, 2 green κλπ;; Η λογική σου είναι εντελώς λάθος. Μέσα στο while πάρε το input, δες αν ειναι ψηφια (με την isdigit()) και αν είναι δες αν έχουν len(αυτό που έδωσες)==4. Χάθηκα στη μετάφραση
GReaperEx Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 Αν βλέπεις ότι χρειάζεσαι μέρος του κώδικα σε πάνω από ένα σημεία, καλό θα ήταν να τον βάλεις μέσα σε μια συνάρτηση και να τον καλείς όπου χρειάζεται. Σ' αυτή τη περίπτωση, αν βάλεις την πρώτη while μέσα σε συνάρτηση θα μπορέσεις πανεύκολα να τη χρησιμοποιήσεις και μέσα στη δεύτερη while.
kitkatO Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 Βάλε τον κώδικα σου code tags (ειδικά στην python είναι πολύ σημαντικό) και διατύπωσε με περισσότερη σαφήνεια την ερώτηση σου. Γιατί έχεις input στην αρχή και μετά κάνεις έλεγχο για 1;;; Άλλαξε το σε while True!!!Που κολλάει το 1 blue, 2 green κλπ;; Η λογική σου είναι εντελώς λάθος. Μέσα στο while πάρε το input, δες αν ειναι ψηφια (με την isdigit()) και αν είναι δες αν έχουν len(αυτό που έδωσες)==4. Χάθηκα στη μετάφραση ειναι προγραμμα που τσεκαρει κατι προηγουμενο πιο πριν γιαυτο εχω την ινπυτ εξω εχεις δικιο για τα tags
becoming_I Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 ειναι προγραμμα που τσεκαρει κατι προηγουμενο πιο πριν γιαυτο εχω την ινπυτ εξω εχεις δικιο για τα tags Νομίζω όμως ότι έχεις πάρει με λάθος λογική το πρόγραμμα. Ας πούμε για να κάνεις αυτό που (υποθέτω) ότι θες στην python πραγματικά είναι πολύ απλό. Ας πούμε θες να ψάξεις έναν 4ψήφιο που τον ξέρεις απο πρίν μπορείς με κάτι σαν αυτό from random import randint code = 9854 while True: kodikos = randint(1000,10000) if kodikos == code: print("Άτσα το βρήκες ο κωδικός είναι ",kodikos) break else: print("Ψάχνω....",end="\r") Έτσι ξέρεις ότι θα κάνει generate μόνο 4φήφιους αριθμούς (γιατί λες DIGITS==ψηφία). Αν θες αλφαρηθμιτικό θα κάνεις κάτι ανάλογο με list comprehension και τη βιβλιοθήκη string για να παράξεις γράμματα και αριθμούς.
kitkatO Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 Βάλε τον κώδικα σου code tags (ειδικά στην python είναι πολύ σημαντικό) και διατύπωσε με περισσότερη σαφήνεια την ερώτηση σου. Γιατί έχεις input στην αρχή και μετά κάνεις έλεγχο για 1;;; Άλλαξε το σε while True!!!Που κολλάει το 1 blue, 2 green κλπ;; Η λογική σου είναι εντελώς λάθος. Μέσα στο while πάρε το input, δες αν ειναι ψηφια (με την isdigit()) και αν είναι δες αν έχουν len(αυτό που έδωσες)==4. Χάθηκα στη μετάφραση ειναι προγραμμα που τσεκαρει κατι προηγουμενο πιο πριν γιαυτο εχω την ινπυτ εξω εχεις δικιο για τα tags ευχαριστω αλλα για να ξαναπερασει απο το 1ο while αφου παει στο 2? Νομίζω όμως ότι έχεις πάρει με λάθος λογική το πρόγραμμα. Ας πούμε για να κάνεις αυτό που (υποθέτω) ότι θες στην python πραγματικά είναι πολύ απλό. Ας πούμε θες να ψάξεις έναν 4ψήφιο που τον ξέρεις απο πρίν μπορείς με κάτι σαν αυτό from random import randint code = 9854 while True: kodikos = randint(1000,10000) if kodikos == code: print("Άτσα το βρήκες ο κωδικός είναι ",kodikos) break else: print("Ψάχνω....",end="\r") Έτσι ξέρεις ότι θα κάνει generate μόνο 4φήφιους αριθμούς (γιατί λες DIGITS==ψηφία). Αν θες αλφαρηθμιτικό θα κάνεις κάτι ανάλογο με list comprehension και τη βιβλιοθήκη string για να παράξεις γράμματα και αριθμούς. θελω ο κωδικος να εχει ΜΟΝΟ αριθμους απο το 1 εως το 6 γιαυτο το εκανα ετσι
becoming_I Δημοσ. 6 Δεκεμβρίου 2017 Δημοσ. 6 Δεκεμβρίου 2017 θελω ο κωδικος να εχει ΜΟΝΟ αριθμους απο το 1 εως το 6 γιαυτο το εκανα ετσι Ακόμη πιο εύκολο codelist = [str(randint(1,6)) for i in range(1,5)] kodikos = "".join(codelist) έχεις 4 ψήφιους μέχρι το 6
kitkatO Δημοσ. 6 Δεκεμβρίου 2017 Μέλος Δημοσ. 6 Δεκεμβρίου 2017 Αν βλέπεις ότι χρειάζεσαι μέρος του κώδικα σε πάνω από ένα σημεία, καλό θα ήταν να τον βάλεις μέσα σε μια συνάρτηση και να τον καλείς όπου χρειάζεται. Σ' αυτή τη περίπτωση, αν βάλεις την πρώτη while μέσα σε συνάρτηση θα μπορέσεις πανεύκολα να τη χρησιμοποιήσεις και μέσα στη δεύτερη while. ναι αλλα οχι για παντα . απλα αποφευγω το copy paste Ακόμη πιο εύκολο codelist = [str(randint(1,6)) for i in range(1,5)] kodikos = "".join(codelist) έχεις 4 ψήφιους μέχρι το 6 σωστο
Προτεινόμενες αναρτήσεις
Δημιουργήστε ένα λογαριασμό ή συνδεθείτε για να σχολιάσετε
Πρέπει να είστε μέλος για να αφήσετε σχόλιο
Δημιουργία λογαριασμού
Εγγραφείτε με νέο λογαριασμό στην κοινότητα μας. Είναι πανεύκολο!
Δημιουργία νέου λογαριασμούΣύνδεση
Έχετε ήδη λογαριασμό; Συνδεθείτε εδώ.
Συνδεθείτε τώρα