рдЙрдиреНрдирдд рдкрд╛рдпрдерди рд╡рд┐рдХрд╛рд╕ рдкрд╛рдареНрдпрдХреНрд░рдо
рдЕрдзреНрдпрд╛рдп 7
>
рд╕реНрддрд░ 5
рдЙрджреНрджреЗрд╢реНрдп
рдЙрддреНрдкрд╛рдж рдЖрджреЗрд╢реЛрдВ рдХреЗ рд╕рд╛рде рд╕рдВрджреЗрд╢реЛрдВ рдХреЛ рдЗрдХрдЯреНрдард╛ рдХрд░рдиреЗ рдФрд░ рдЙрдиреНрд╣реЗрдВ рд╡рд╛рд╣рдХ рдХрдмреВрддрд░ рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рднреЗрдЬрдиреЗ рдХреЗ рд▓рд┐рдП рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред
рдХреБрдЫ рд╕рдВрджреЗрд╢ рдлрд╛рд░реНрдо рдФрд░ рдЕрдиреНрдп рд╕реНрдЯреЗрд╢рдиреЛрдВ рдореЗрдВ рдореИрд╕реЗрдВрдЬрд░ рдХрдмреВрддрд░ рджреНрд╡рд╛рд░рд╛ рднреЗрдЬреЗ рдЬрд╛рддреЗ рд╣реИрдВ; рдпрд╣ рдПрдХ рдЕрдЪреНрдЫрд╛ рд╡рд┐рдЪрд╛рд░ рд╣реЛрдЧрд╛ рдХрд┐ рдХреБрдЫ рд╕рдВрджреЗрд╢ рдЕрдЧреНрд░рд┐рдо рд░реВрдк рд╕реЗ рднреЗрдЬ рджрд┐рдП рдЬрд╛рдПрдБред рд╣рдо рд╕рд╛рдорд╛рдиреНрдп рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рддреНрд░реБрдЯрд┐рдпрд╛рдБ рдкрдХрдбрд╝ рд░рд╣реЗ рдереЗ, рд▓реЗрдХрд┐рди рдХрднреА-рдХрднреА рдмрд╣реБрдд рд╡рд┐рд╢рд┐рд╖реНрдЯ рдкрд░рд┐рджреГрд╢реНрдпреЛрдВ рдХреЗ рд▓рд┐рдП рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдмрдирд╛рдирд╛ рдлрд╛рдпрджреЗрдордВрдж рд╣реЛ рд╕рдХрддрд╛ рд╣реИред рд╣рдо рдЕрдкрдиреЗ рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рд╕рд╣реА рд╡рд╕реНрддреБрдУрдВ рдХреА рдкрд╣рдЪрд╛рди рдХрд░рдХреЗ рд╕рдВрджреЗрд╢реЛрдВ рдХрд╛ рд╕реНрд░реЛрдд рддрдп рдХрд░реЗрдВрдЧреЗ рдФрд░ рдХрдмреВрддрд░реЛрдВ рдХрд╛ рдЪрдпрди рдХрд░реЗрдВрдЧреЗред
рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдХреЛ рдХреНрд▓рд╛рд╕реЗрд╕ рдмрдирд╛рдХрд░ рдПрдХрддреНрд░рд┐рдд рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ, (Exception) рдХреНрд▓реЙрдЬ рдЬреЛрдбрд╝рдиреЗ рд╕реЗ рдЖрдк рдХрд┐рд╕реА рдХреНрд▓рд╛рд╕ рдХреЛ рдПрдХреНрд╕реЗрдкреНрд╢рдВрд╕ рдирд┐рд╖реНрдкрд╛рджрд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдкреБрдирдГ рдкреНрд░рдпреЛрдЧ рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред рд╣рдорд╛рд░реЗ рдкреНрд░рдпреЛрдЬрдиреЛрдВ рдХреЗ рд▓рд┐рдП рд╣рдо рджреЛ рдмрдирд╛рдПрдВрдЧреЗ: InvalidLocation рдЬреЛ рддрдм рд╕рдХреНрд░рд┐рдп рд╣реЛрддрд╛ рд╣реИ рдЬрдм рдХрд┐рд╕реА рд╡рд┐рд╢рд┐рд╖реНрдЯ рд╕реНрдЯреНрд░рд┐рдВрдЧ рдХреЛ рд╕рддреНрдпрд╛рдкрди рд╕реЗ рдирд╣реАрдВ рдЙрдмрд╛рд░рд╛ рдЬрд╛рддрд╛, рдФрд░ UnsuitableSelection рдЬреЛ рдпрд╣ рдЬрд╛рдВрдЪрдиреЗ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛рддрд╛ рд╣реИ рдХрд┐ рдХреЛрдИ рд╕рдВрдЦреНрдпрд╛ рдПрдХ рдирд┐рд╢реНрдЪрд┐рдд рд╕реАрдорд╛ рдкрд╛рд░ рдХрд░рддреА рд╣реИ рдпрд╛ рдирд╣реАрдВред
class InvalidLocation(Exception):
"Raised when location is invalid"
pass
class UnsuitableSelection(Exception):
"Raised when pidgeon is 2 or younger"
pass
рдЕрдм рдЬрдм рдХреНрд▓рд╛рд╕реЗрд╕ рд╕реЗрдЯрдЕрдк рд╣реЛ рдЧрдИ рд╣реИрдВ, рддреЛ рдореЗрдореЛ рдПрдХрддреНрд░ рдХрд░рдиреЗ рдХрд╛ рд╕рдордп рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХреЗред рдЖрдиреЗ рд╡рд╛рд▓реЗ рдЖрджрд╛рди-рдкреНрд░рджрд╛рди рдХреЗ рд▓рд┐рдП рдЖрд╡рд╢реНрдпрдХ рдШрдЯрдХреЛрдВ рдХреЛ рд╕рдВрдЧреНрд░рд╣реАрдд рдФрд░ рд╕рдВрдпреЛрдЬрд┐рдд рдХрд░рдиреЗ рд╣реЗрддреБ prep рдирд╛рдо рдХреА рдПрдХ рд╕реВрдЪреА рдмрдирд╛рдПрдБред рд▓рд╛рд▓ рдХрд╛рд▓реАрди рдкрд░ рд╕реНрдерд┐рдд рдЧрд╣рд░реЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ, рдореЗрдЬреЛрдВ рдХреА рдПрдХ рд╢реНрд░реГрдВрдЦрд▓рд╛ рдХреЗ рд╕рд╛рдордиреЗ рдЬреЛ X рдЪрд┐рд╣реНрди рд╣реИрдВ, рд╣рдо рдРрд╕реЗ рдореЗрдореЛ рдХреА рддрд▓рд╛рд╢ рдХрд░реЗрдВрдЧреЗ рдЬрд┐рдирдХреЗ рдЖрджреЗрд╢ рдлрд╛рд░реНрдо рдХреЗ рдкрд╢реНрдЪрд┐рдореА рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИрдВред
рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЪрд╛рд░ рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЧрдП рд╣реИрдВ: red_memo, blue_memo, green_memo рдФрд░ orange_memoред рдХреЗрд╡рд▓ рд╡рд╣реА рдореЗрдореЛ рдПрдХрддреНрд░рд┐рдд рдХрд┐рдП рдЬрд╛рдПрдБрдЧреЗ рдЬрд┐рдиреНрд╣реЗрдВ "west" рдХреНрд╖реЗрддреНрд░ рдореЗрдВ рд╡рд┐рддрд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдЪрд┐рд╣реНрдирд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рддрд╛рдХрд┐ рдЙрдиреНрд╣реЗрдВ рднреЗрдЬрд╛ рдЬрд╛ рд╕рдХреЗред рдпрд╣ рдирд┐рд░реНрдзрд╛рд░рд┐рдд рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХрд┐ рд╣рдореЗрдВ рдореЗрдореЛ рд▓реЗрдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рд╣рдо try/except рдФрд░ else рдХреЛрдб рдмреНрд▓реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ InvalidLocation рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рди рдХреЗ рд╕рд╛рде рдХрд░реЗрдВрдЧреЗред рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП, try рдореЗрдВ рдЬрд╛рдВрдЪреЗрдВ рдХрд┐ рдХреНрдпрд╛ рдореЗрдореЛ рдХрд╛ рд▓реЗрдмрд▓ "west" рд╣реИ рдФрд░ рдЕрдЧрд░ рдирд╣реАрдВ рд╣реИ рддреЛ рдПрдХреНрд╕реЗрдкреНрд╢рди рдЙрдард╛рдПрдБред except рдмреНрд▓реЙрдХ рдкреБрд╖реНрдЯрд┐ рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдореЗрдореЛ рдЕрдорд╛рдиреНрдп рд╣реИ рдФрд░ else рдмреНрд▓реЙрдХ рдореЗрдореЛ рдПрдХрддреНрд░ рдХрд░рддрд╛ рд╣реИ рддрдерд╛ рдЙрд╕реЗ prep рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рддрд╛ рд╣реИ, рдпрджрд┐ рд╡рд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ "west" рдХреНрд╖реЗрддреНрд░ рдХреЗ рд▓рд┐рдП рдирд┐рд░реНрдзрд╛рд░рд┐рдд рд╣реИред
рдЙрджрд╛рд╣рд░рдг рдХреЗ рд▓рд┐рдП:
try: if red_memo != "west": raise InvalidLocation except InvalidLocation: player.speak("This is not an order that needs to be sent out") else: player.collect(red_memo) prep.append(red_memo)
рдореЗрдЬреЛрдВ рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрдерд┐рдд рд░рдВрдЧреАрди рдХрд╛рд▓реАрдиреЛрдВ рдкрд░ рдкреНрд░рддреНрдпреЗрдХ рдЧрд╣рд░реЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ рдФрд░ рд╕рдВрдмрдВрдзрд┐рдд рд░рдВрдЧ рдХреЗ рд▓рд┐рдП рдЙрдкрдпреБрдХреНрдд рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдПрдХреНрд╕реЗрдкреНрд╢рди рдЕрдиреБрдХреНрд░рдо рдЪрд▓рд╛рдПрдБред
рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдиреЗ рдореЗрдореЛ рдПрдХрддреНрд░ рдХрд░ рд▓рд┐рдП, рддреЛ рджрд░рд╡рд╛рдЬреЗ рдХреЗ рд╕рд╛рдордиреЗ рд╕реНрдерд┐рдд рд╕реЛрдиреЗ рдХреЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ рдФрд░ open() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рдХрдмреВрддрд░ рджрд╣рд▓реАрдЬ рддрдХ рдкрд╣реБрдБрдЪреЗрдВред рдЕрдВрджрд░ рдкрд╣реБрдВрдЪрдиреЗ рдХреЗ рдмрд╛рдж рд╣рд▓реНрдХреЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ, рдореБрдбрд╝реЗрдВ, рдФрд░ close() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдХреЗ рджрд░рд╡рд╛рдЬреЗ рдХреЛ рдмрдВрдж рдХрд░ рджреЗрдВ рддрд╛рдХрд┐ рдХреЛрдИ рдХрдмреВрддрд░ рдмрд╛рд╣рд░ рди рдирд┐рдХрд▓ рд╕рдХреЗред
рдмреИрдВрдЧрдиреА рдХрд╛рд▓реАрди рдкрд░ рд╕реНрдерд┐рдд рдЧрд╣рд░реЗ X рдЪрд┐рд╣реНрди рдХреА рдУрд░ рдЬрд╛рдПрдБ, рдЬрд╣рд╛рдБ рдкреЗрдВрд╕ рдкрд░ рд╣рдо рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░реЗрдВрдЧреЗ рдХрд┐ рдХрдмреВрддрд░ рд╕рдВрджреЗрд╢ рдЙрдбрд╝рд╛рдиреЗ рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдпрд╛ рд╡рд╣ рдПрдХ рдирд╡рдЬрд╛рдд рд╣реИ рдЬреЛ рд╡рд┐рддрд░рдг рдХрд░рдиреЗ рдореЗрдВ рд╕рдХреНрд╖рдо рдирд╣реАрдВ рд╣реИред рдЗрд╕ рдЦрдВрдб рдореЗрдВ рдЪрд╛рд░ рдФрд░ рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЙрдкрдпреЛрдЧ рдХрд┐рдП рдЬрд╛рдПрдВрдЧреЗ: purple_pen, yellow_pen, white_pen рдФрд░ pink_pen, рдЬреЛ рдкреНрд░рддреНрдпреЗрдХ рд░рдВрдЧреАрди рдХрд╛рд▓реАрди рдХреЗ рдЕрдиреБрд░реВрдк рд╣реИрдВред рд╣рдо рдореЗрдореЛ рдХреЗ рд╕рд╛рде рдЗрд╕реНрддреЗрдорд╛рд▓ рдХреА рдЧрдИ рдЙрд╕реА рддрдХрдиреАрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВрдЧреЗ, рдЬреЛ рджреВрд╕рд░реА рдХреНрд▓рд╛рд╕ рдкрд░ рдЖрдзрд╛рд░рд┐рдд рд╣реИред
UnsuitableSelection рдХрд╕реНрдЯрдо рдПрдХреНрд╕реЗрдкреНрд╢рди рдХреЗ рд╕рд╛рде try/except рдФрд░ else рдХреЛрдб рдмреНрд▓реЙрдХреНрд╕ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВ, рддрд╛рдХрд┐ рдпрд╣ рдкрд╣рдЪрд╛рди рд╕рдХреЗрдВ рдХрд┐ рдХрдмреВрддрд░ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рдХреЗ рд▓рд┐рдП рдкрд░реНрдпрд╛рдкреНрдд рдкреБрд░рд╛рдирд╛ рд╣реИ рдпрд╛ рдирд╣реАрдВред try рдмреНрд▓реЙрдХ рдпрд╣ рд╕рддреНрдпрд╛рдкрд┐рдд рдХрд░рддрд╛ рд╣реИ рдХрд┐ рдкреЗрди рдХрд╛ рдкреНрд░рддрд┐рдирд┐рдзрд┐рддреНрд╡ рдХрд░рдиреЗ рд╡рд╛рд▓рд╛ рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдЙрдкрдпреБрдХреНрдд рдХрдмреВрддрд░ рд╣реИ рдпрд╛ рдирд╣реАрдВ, рдпрд╣ рдЬрд╛рдВрдЪ рдХрд░ рдХрд┐ рдХрдмреВрддрд░ рджреЛ (2) рд╡рд░реНрд╖ рд╕реЗ рдХрдо рдЙрдореНрд░ рдХрд╛ рд╣реИред рдпрджрд┐ рдХрдмреВрддрд░ рдЕрдиреБрдкрдпреБрдХреНрдд рд╣реЛрддрд╛ рд╣реИ рддреЛ except рдмреНрд▓реЙрдХ рд╕рдХреНрд░рд┐рдп рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ, рдЕрдиреНрдпрдерд╛ else рдмреНрд▓реЙрдХ рд╕рдХреНрд░рд┐рдп рд╣реЛрдХрд░ рдЖрдкрдХреЛ рд╕рдВрджреЗрд╢ рд╡рд┐рддрд░рдг рд╣реЗрддреБ рдХрдмреВрддрд░ рдХреЛ prep рд╕реВрдЪреА рдореЗрдВ рдЬреЛрдбрд╝рдиреЗ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИред
try: if purple_pen <= 2: raise UnsuitableSelection except UnsuitableSelection: player.speak("Pigeon unsuitable to deliver") else: prep.append(purple_pen) player.speak("Pigeon Collected")
рд░рдВрдЧреАрди рдХрд╛рд▓реАрдиреЛрдВ рдкрд░ рд╕реНрдерд┐рдд рдкреНрд░рддреНрдпреЗрдХ рдЧрд╣рд░реЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ рдФрд░ рд╕рд╣реА рд░рдВрдЧреАрди рдХрд╛рд▓реАрди рдХреЗ рдЕрдиреБрд░реВрдк рд╕рд╣реА рдЪрд░ рд╕реНрдерд┐рд░рд╛рдВрдХ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдЗрд╕ рдЕрдиреБрдХреНрд░рдо рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░реЗрдВред рдПрдХ рдмрд╛рд░ рдЬрдм рдЖрдкрдиреЗ рдХрдмреВрддрд░ рдФрд░ рдореЗрдореЛ рдПрдХрддреНрд░ рдХрд░ рд▓рд┐рдП, рддреЛ рд╕рдмрд╕реЗ рдиреАрдЪреЗ рд╕реНрдерд┐рдд рд╕реЛрдиреЗ рдХреЗ X рдЪрд┐рд╣реНрди рддрдХ рдЬрд╛рдПрдБ рдФрд░ place() рдлрд╝рдВрдХреНрд╢рди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реБрдП рдмрдирд╛рдИ рдЧрдИ prep рд╕реВрдЪреА рдХреЗ рд╕рд╛рде рдХрдмреВрддрд░реЛрдВ рдХреЛ рд╕рдВрджреЗрд╢ рднреЗрдЬрдиреЗ рдПрд╡рдВ рд╕реНрддрд░ рдкреВрд░рд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рднреЗрдЬ рджреЗрдВред