Practical Programming
An Introduction to Computer Science
Using Python 3
(Pragmatic Programmers)
(Pragmatic Bookshelf)
Paul Gries (著) Jennifer Campbell (著)
Jason Montojo (著) Lynn Beighley (編集)
開発環境
- OS X Yosemite - Apple (OS)
- Emacs (CUI)、BBEdit - Bare Bones Software, Inc. (GUI) (Text Editor)
- Python 3.4 (プログラミング言語)
Practical Programming: An Introduction to Computer Science Using Python 3 (Pragmatic Programmers) (Paul Gries (著)、Jennifer Campbell (著)、Jason Montojo (著)、Lynn Beighley (編集)、Pragmatic Bookshelf)のChapter 14(Object-Oriented Programming)、14.8(Exercises) 2-a, b, c.を解いてみる。
14.8(Exercises) 2-a, b, c.
コード(BBEdit)
sample2.py
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
class Country:
def __init__(self, name, population, area):
self.name = name
self.population = population
self.area = area
def isLarger(self, other):
return self.area > other.area
@property
def population_density(self):
return self.population / self.area
def __str__(self):
return '{0} has a population of {1} and is {2} square km.'.format(
self.name, self.population, self.area)
def __repr__(self):
return "Country('{0}', {1}, {2})".format(
self.name, self.population, self.area)
class Continent:
def __init__(self, name, countries):
self.name = name
self.countries = countries
@property
def total_population(self):
return sum(map(lambda country: country.population, self.countries))
def __str__(self):
return '{0}\n{1}'.format(
self.name,
'\n'.join(map(lambda country: str(country), self.countries)))
if __name__ == '__main__':
print('a.')
canada = Country('Canada', 34482779, 9984670)
usa = Country('United States of Ameria', 313914040, 9826675)
mexico = Country('Mexico', 112336538, 1943950)
countries = [canada, usa, mexico]
north_america = Continent('North America', countries)
print(north_america.name)
for country in north_america.countries:
print(country)
print('b.')
print(north_america.total_population)
print('c.')
print(north_america)
入出力結果(Terminal, IPython)
$ ./sample2.py a. North America Canada has a population of 34482779 and is 9984670 square km. United States of Ameria has a population of 313914040 and is 9826675 square km. Mexico has a population of 112336538 and is 1943950 square km. b. 460733357 c. North America Canada has a population of 34482779 and is 9984670 square km. United States of Ameria has a population of 313914040 and is 9826675 square km. Mexico has a population of 112336538 and is 1943950 square km. $
0 コメント:
コメントを投稿