Skip to content
Permalink
Branch: master
Find file Copy path
Find file Copy path
Fetching contributors…
Cannot retrieve contributors at this time
66 lines (60 sloc) 3.3 KB
''' επέκταση από το http://pythonies.mysch.gr/chapters/guess.pdf
Εδώ θα προστεθεί η εκφώνηση (όταν παγιωθεί) ώστε το πρόγραμμα
να είναι αυτοτελές.
Το ενδιαφέρον με την συγκεκριμένη εκδοχή της λύσης είναι η χρήση της else στη while. Οι εντολές της else εκτελούνται όταν η συνθήκη που ελέγχεται από τη while είναι πια ψευδής, δηλαδή όταν η επανάληψη τερματιστεί "φυσιολογικά" (όχι από μια break).
'''
import random
def readNumber(a,b):
""" ζητάει από το χρήστη έναν αριθμό
μεταξύ των a και b και τον επιστρέφει.
a, b: όρια για τον αριθμό (δεν ελέγχονται)
"""
# εμφάνιση προτροπής και ανάγνωση αριθμού
print("Μάντεψε τον αριθμό:", a , "-", b)
num = int(input())
# επιστροφή αριθμού
return num
# οι μεταβλητές low και high είναι τα όρια
# ανάμεσα στα οποία βρίσκεται ο μυστικός αριθμός
low = 1
high = 32
# δημιουργία τυχαίου μυστικού αριθμού
secret = random.randint(low,high)
# ο μυστικός αριθμός δεν έχει εντοπιστεί
found = False
# ορισμός μέγιστου πλήθους προσπαθειών
tries = 4
# επανάληψη: τερματίζεται όταν
# βρεθεί ο αριθμός ή εξαντληθούν οι προσπάθειες
while tries > 1:
# εμφάνιση και μείωση προσπαθειών
print("Απομένουν", tries, "προσπάθειες.")
tries = tries - 1
# επιλογή αριθμού από το χρήστη
number = readNumber(low,high)
# έλεγχος αριθμού και εμφάνιση μηνύματος
if number > secret:
print("Λάθος. Είναι μικρότερος.")
high = number - 1
elif number < secret:
print("Λάθος. Είναι μεγαλύτερος.")
low = number + 1
else:
print("Σωστά!")
# ο μυστικός αριθμός εντοπίστηκε
break
else:
# οι εντολές της else θα εκτελεστούν όταν tries = 0 και εφόσον
# η επανάληψη δεν έχει προηγουμένως διακοπεί από break,
# δηλαδή όταν ο χρήστης φτάσει στην τελευταία του προσπάθεια
# χωρίς προηγουμένως να έχει εντοπίσει τον μυστικό αριθμό
#
# εμφάνιση και μείωση προσπαθειών
print("Απομένει μια προσπάθεια!")
# επιλογή αριθμού από το χρήστη
number = readNumber(low,high)
# έλεγχος αριθμού και εμφάνιση μηνύματος
if number == secret:
print("Σωστά, το βρήκες την τελευταία στιγμή!")
else:
print("Λυπάμαι, ο μυστικός αριθμός ήταν ο", secret)
You can’t perform that action at this time.