# your code goes here#!/usr/bin/env python3
import abc
class Strategy(metaclass=abc.ABCMeta):
@abc.abstractmethod
def check_temperature(self, temperature):
pass
class HikeStrategy(Strategy):
def check_temperature(self, temperature):
if temperature >= 20 and temperature <= 40:
return True
else:
return False
class SkiStrategy(Strategy):
def check_temperature(self, temperature):
if temperature <= 0:
return True
else:
return False
class Context:
def __init__(self, temperature, strategy, action_name):
self.temperature = temperature
self.strategy = strategy
self.action_name = action_name
def output_result(self):
print('temperature: ' + str(self.temperature))
print('action name: ' + str(self.action_name))
print('result: ' + str(self.strategy.check_temperature(self.temperature)), end='\n\n')
if __name__ == '__main__':
context = Context(25, SkiStrategy(), 'ski')
context.output_result()
context = Context(25, HikeStrategy(), 'hike')
context.output_result()
context = Context(-20, SkiStrategy(), 'ski')
context.output_result()
context = Context(-20, HikeStrategy(), 'hike')
context.output_result()
IyB5b3VyIGNvZGUgZ29lcyBoZXJlIyEvdXNyL2Jpbi9lbnYgcHl0aG9uMwoKaW1wb3J0IGFiYwoKY2xhc3MgU3RyYXRlZ3kobWV0YWNsYXNzPWFiYy5BQkNNZXRhKToKICAgIEBhYmMuYWJzdHJhY3RtZXRob2QKICAgIGRlZiBjaGVja190ZW1wZXJhdHVyZShzZWxmLCB0ZW1wZXJhdHVyZSk6CiAgICAgICAgcGFzcwoKCmNsYXNzIEhpa2VTdHJhdGVneShTdHJhdGVneSk6CiAgICBkZWYgY2hlY2tfdGVtcGVyYXR1cmUoc2VsZiwgdGVtcGVyYXR1cmUpOgogICAgICAgIGlmIHRlbXBlcmF0dXJlID49IDIwIGFuZCB0ZW1wZXJhdHVyZSA8PSA0MDoKICAgICAgICAgICAgcmV0dXJuIFRydWUKICAgICAgICBlbHNlOgogICAgICAgICAgICByZXR1cm4gRmFsc2UKCgpjbGFzcyBTa2lTdHJhdGVneShTdHJhdGVneSk6CiAgICBkZWYgY2hlY2tfdGVtcGVyYXR1cmUoc2VsZiwgdGVtcGVyYXR1cmUpOgogICAgICAgIGlmIHRlbXBlcmF0dXJlIDw9IDA6CiAgICAgICAgICAgIHJldHVybiBUcnVlCiAgICAgICAgZWxzZToKICAgICAgICAgICAgcmV0dXJuIEZhbHNlCgpjbGFzcyBDb250ZXh0OgogICAgZGVmIF9faW5pdF9fKHNlbGYsIHRlbXBlcmF0dXJlLCBzdHJhdGVneSwgYWN0aW9uX25hbWUpOgogICAgICAgIHNlbGYudGVtcGVyYXR1cmUgPSB0ZW1wZXJhdHVyZQogICAgICAgIHNlbGYuc3RyYXRlZ3kgPSBzdHJhdGVneQogICAgICAgIHNlbGYuYWN0aW9uX25hbWUgPSBhY3Rpb25fbmFtZQoKICAgIGRlZiBvdXRwdXRfcmVzdWx0KHNlbGYpOgogICAgCXByaW50KCd0ZW1wZXJhdHVyZTogJyArIHN0cihzZWxmLnRlbXBlcmF0dXJlKSkKICAgIAlwcmludCgnYWN0aW9uIG5hbWU6ICcgKyBzdHIoc2VsZi5hY3Rpb25fbmFtZSkpCiAgICAJcHJpbnQoJ3Jlc3VsdDogJyArIHN0cihzZWxmLnN0cmF0ZWd5LmNoZWNrX3RlbXBlcmF0dXJlKHNlbGYudGVtcGVyYXR1cmUpKSwgZW5kPSdcblxuJykKCgppZiBfX25hbWVfXyA9PSAnX19tYWluX18nOgogICAgY29udGV4dCA9IENvbnRleHQoMjUsIFNraVN0cmF0ZWd5KCksICdza2knKQogICAgY29udGV4dC5vdXRwdXRfcmVzdWx0KCkKCiAgICBjb250ZXh0ID0gQ29udGV4dCgyNSwgSGlrZVN0cmF0ZWd5KCksICdoaWtlJykKICAgIGNvbnRleHQub3V0cHV0X3Jlc3VsdCgpCgogICAgY29udGV4dCA9IENvbnRleHQoLTIwLCBTa2lTdHJhdGVneSgpLCAnc2tpJykKICAgIGNvbnRleHQub3V0cHV0X3Jlc3VsdCgpCgogICAgY29udGV4dCA9IENvbnRleHQoLTIwLCBIaWtlU3RyYXRlZ3koKSwgJ2hpa2UnKQogICAgY29udGV4dC5vdXRwdXRfcmVzdWx0KCkgICAg