(進捗に合わせて編集)
pythonをゼロから勉強するにあたって、本当に初心者向けで、わかりやすくて、楽しい教材はないかと探して探して「たのしいプログラミング Pythonではじめよう!」を手に取りました。

教材の進捗に合わせて、各章で学んだことのメモとか、演習問題をといたりとか。

教材のターゲット、ゴール

ターゲット

ゴール

目次:概要

1章 ニョロニョロしない蛇もいるんですよ :
2章 計算と変数 :
3章 文字列、リスト、タプル、そして辞書 :
4章 カメさんでお絵かき :
5章 質問なら「 :
6章 :

環境

OS:mac osx 10.10.4 (yosemite)
python:3.5.2

1章 プログラムの作り方

automaterでIDLE.appを作成
open -a “/Applications/Python 3.5/IDLE.APP” –ARGS -n
hello worldをprint

Python 3.5.2 (v3.5.2:4def2a2901a5, Jun 26 2016, 10:47:25) 
[GCC 4.2.1 (Apple Inc. build 5666) (dot 3)] on darwin
Type "copyright", "credits" or "license()" for more information.
==== No Subprocess ====

WARNING: Running IDLE without a Subprocess is deprecated
and will be removed in a later version. See Help/IDLE Help
for details.

>>> WARNING: The version of Tcl/Tk (8.5.9) in use may be unstable.
Visit http://www.python.org/download/mac/tcltk/ for current information.

>>> print("Hello World")
Hello World
>>> 
Hello World
>>> 

無事にできたね!
warningでてるけど、とりあえず先に進む

2章 計算と変数
変数の扱い方
四則演算の仕方を勉強

3章 文字列、リスト、タプル、そして辞書
あたいの埋め込み
プレースホルダー

8章 クラスとオブジェクトの使い方

ゴール

自分でやってみよう

①踊るキリン

クラスに関数を追加して呼び出してみる。

>>> class giraffes(mammals):
	def left_foot_forward(self):
		print('left foot forward')
	def left_foot_back(self):
		print('left foot back')
	def right_foot_forward(self):
		print('right foot forward')
	def right_foot_back(self):
		print('right foot back')
	def dance(self):
		self.left_foot_forward()
		self.left_foot_back()
		self.right_foot_forward()
		self.right_foot_back()
		self.left_foot_back()
		self.right_foot_back()
		self.right_foot_forward()
		self.left_foot_forward()

		
>>> 
>>> reginald = giraffes()
>>> reginald.dance()
left foot forward
left foot back
right foot forward
right foot back
left foot back
right foot back
right foot forward
left foot forward
>>> 

②干し草熊手

複数のオブジェクトを作り、それぞれ動かしてみる
だいぶめちゃくちゃな動きしてますが。

>>> import turtle
>>>
>>> a = turtle.Pen()
>>> b = turtle.Pen()
>>> c = turtle.Pen()
>>> d = turtle.Pen()
>>> 
>>> a.forward(100)
>>> b.forward(100)
>>> c.forward(100)
>>> d.forward(100)
>>> 
>>> a.left(90)
>>> b.forward(30)
>>> c.forward(30)
>>> d.right(90)
>>> 
>>> a.forward(50)
>>> a.forward(50)
>>> b.left(90)
>>> c.right(90)
>>> d.forward(100)
>>> a.right(90)
>>> a.forward(50)
>>> d.left(90)
>>> d.forward(50)
>>> b.forward(30)
>>> b.forward(30)
>>> b.right(90)
>>> b.forward(20)
>>> c.forward(60)
>>> c.left(90)
>>> c.forward(20)
>>> 

9章 Pythonの組み込み関数

ゴール

メモ

自分でやってみよう

①絶対値の計算

>>> a = abs(10) + abs(-10)
>>> print(a)
20
>>> b = abs(-10) + -10
>>> print(b)
0

②秘密のメッセージ dir関数とhelp関数

>>> print(text)
this if is you not are a reading very this good then way you to have hide done a it message wrong
>>> 
>>> textlist = text.split()
>>> print(textlist)
['this', 'if', 'is', 'you', 'not', 'are', 'a', 'reading', 'very', 'this', 'good', 'then', 'way', 'you', 'to', 'have', 'hide', 'done', 'a', 'it', 'message', 'wrong']
>>> 
>>> textlen = len(textlist)
>>> print(textlen)
22
>>> for x in range(0, textlen, 2):
	print('%s' % textlist[x])

	
this
is
not
a
very
good
way
to
hide
a
message
>>> 

③ファイルのコピー

>>> srcfile = open('/Users/work/python/srcfile')
>>> text = srcfile.read()
>>> print(text)
this is my testfile

>>> dstfile = open('/Users/work/python/dstfile', 'w')
>>> dstfile.write(text)
20
>>> dstfile.close()
>>> 
>>> dstfile = open('/Users/masahiko/work/python/dstfile')
>>> dstfile.read()
'this is my testfile\n'
>>> srcfile.close()

10章 便利に使えるモジュールたち

ゴール

代表的なモジュールと、その機能について学ぶ
copy, keyword, random, sys, time, pickle

メモ

モジュールは、関数、クラス、変数などをまとめたもの

自分でやってみよう

①コピーされた車

ただオブジェクトを変数の割り当てるのと、copyモジュールを使用したオブジェクトのコピーとの挙動の違いを理解する

②お気に入りリストを保存する

リストを作って、pickleモジュールを使ってファイルに保存する

>>> import pickle
>>> fav_list = ['yakiniku', 'unagi', 'oyakodon']
>>> save_file = open('/Users/masahiko/work/python/favorite.dat', 'wb')
>>> pickle.dump(fav_list, save_file)
>>> save_file.close()
>>> 
#IDLEを閉じて、起動し直してからloadする
>>> import pickle
>>> load_file = open('/Users/masahiko/work/python/favorite.dat', 'rb')
>>> load_fav_list = pickle.load(load_file)
>>> load_file.close()
>>> print(load_fav_list)
['yakiniku', 'unagi', 'oyakodon']
>>> 

11章 カメさんでもっとお絵描き

ゴール

turtleモジュールを使いこなそう

メモ

自分でやってみよう

①八角形に挑戦

>>> def hoge(size):
	for x in range(1,9):
		t.forward(size)
		t.left(45)

		
>>> 
>>> hoge(10)
>>> hoge(100)
>>> 

②八角形をカラフルに

色を塗ってみる

>>> def hakkaku(sizse, filled):
	if filled == True:
		t.begin_fill()
	for x in range(1, 9):
		t.forward(100)
		t.left(45)
	if filled == True:
		t.end_fill()

		
>>> 
>>> t.color(1,1,0)
>>> hakkaku(100, True)
>>> t.color(0,0,0)
>>> hakkaku(100, False)
>>> 

③角の数を指定する

角の数から、角度と左回りに回転する回数をだす

>>> def draw(size, points):
	kakudo = 360 / int(points)
	turn = 360 / kakudo
	for x in range(1, int(turn) + 1):
		t.forward(size)
		t.left(kakudo)

		
>>> draw(50, 3)
>>> draw(50, 4)
>>> draw(50, 5)
>>> draw(50, 6)
>>> draw(50, 7)
>>> draw(50, 8)
>>> draw(50, 9)
>>> draw(50, 10)
>>> draw(50, 12)
>>> draw(50, 15)
>>> draw(50, 18)
>>> 

ScreenShot 13

12章 tkinterでもっとすごいグラフィックス

ゴール

メモ

自分でやってみよう

①キャンバスが三角形だらけ

from tkinter import *
import random
tk = Tk()
canvas = Canvas(tk, width=400, height=400)
canvas.pack()

def random_polygon(width, height):
    x1 = random.randrange(width)
    y1 = random.randrange(height)
    x2 = random.randrange(width)
    y2 = random.randrange(height)
    x3 = random.randrange(width)
    y3 = random.randrange(height)
    canvas.create_polygon(x1, y1, x2, y2, x3, y3)

for x in range(0, 10):
    random_polygon(400, 400)

総論