Python入門してみる

Python入門ってタイトルですが、PythonのHowToページではなく、たけけんがPythonを勉強する無常な日常をたんたんと書いていこうという内容なので、分岐の仕方、ループの仕方だったりのサンプルコードを見たらできるグループの人には向いてない内容になるのであしからず。

日記の内容はまいどの自己中なものだが、ここを見ながらおいらも一緒にやろうと思ってしまった人も居ると思うので、それにせっかくアップするのだから参考になる人が居れば幸いだ。

まずはPythonを利用できる環境の作りかたからだけど、・・・たけけんは既に環境は出来上がっているので、環境を作るためのリンクを載せます。

まずは、あなたが使っているパソコンがWindowsならVMwarePlayerとCentOSを用意しよう。と、英語のサイトを翻訳した風に書いてみる。(WindowsからPythonを使いたい人は色々な意味で別のページがいいかも。)

VMwareインストールの参考サイト

Groove Labo
VMware Playerの導入からOSインストール

VMwareが用意できたら、Linuxを準備しよう。
CentOSでいいかなと思う。

CentOSを用意する参考サイト

ネットワークエンジニアとして:ブログ版
CentOS Install to VMware Player

リンク先のアバージョンの確認は全くやってないのでちょっと違うかったらごめん。
でも、たぶんいけるかな。
終わらせれたら下準備は整ったはず。

VMware>CentOSと起動して、Windowsみたいな画面が出てきた人はアプリケーション>アクセサリ>端末と起動しよう。
起動が終わって黒い画面の人はそのまま進めよう。

なんでまたプログラムやるんだとか、固い話は抜きにしよう。

ではここからはじまり~。

Pythonがどんなものかを知る為に次のページへ行った。
あなたもとりあえず次のページを全部読むべし。

参考サイト
日本Pythonユーザ会
Magnus Lie Hetland インスタントハッキング

たけけんは目的がないとなかなか動けない性質なので、まずはここのサイトのサンプルコードをコピペじゃなくて手打ちで書いて、それをとりあえず実行するということをやった。

ではやったことがない人向けにどうやれば実行できるのかだけは書いてみる。

vi kadai01.py
i キーを押して
print "Hello, world!"
ESCキーを押して :wq で保存して終了。
python kadai01.py

これでうまくいってたら Hello, world! と表示されたはず、こんな感じにサンプルコードを書いてどんどん読み進めよう。
余談だけど、ファイル名だけで実行したいって人は kadai01.py のあたまに

#!/usr/bin/python

と書く。日本語を表示、または使いたかったら

# coding: utf-8

と書くとエラーが出ない。
意味が分からん人はしなくてもいいよ。

という事で、参考サイトの説明を読みながら、サンプルコードを書きながら進めていくとなんとなーく、プログラミングというものの超基本的なところは分かってくると思う。
自分の場合は思い出してくるって言い方がいいかもしれない。

読み進めていくと練習問題2個ほどが出てくるので、それをやってみよう。
たけけんもやってみた。
当たり前だけど、まずは自分でやってみるのをおすすめします。
下に進むとネタバレになるので注意だ。

 

1問目
ユーザーから続けて数字の入力を受け付け、合計が100に近付くまでその数字 を足し続けるプログラムを書きなさい。それとは別に、ユーザーから100個の 数字を受け付け合計を表示するプログラムを書きなさい。
※2個目は長くなるので10個の数字にした。

#!/usr/bin/python
# coding: utf-8

# 数字を入れる
kazu = input("好きな数字を入れてね -> ")

while kazu < 100:
    kazu += input("もっと好きな数字を入れてね -> ")

print "入力した数の合計は",kazu,"です"
# kadai01.py 
好きな数字を入れてね -> 10
もっと好きな数字を入れてね -> 20
もっと好きな数字を入れてね -> 30
もっと好きな数字を入れてね -> 40
入力した数の合計は 100 です
#!/usr/bin/python
# coding: utf-8

hako = 0

# 数字を入れる
kazu = input("好きな数字を入れてね -> ")

while hako < 10:
    kazu += int(input("もっと好きな数字を入れてね -> "))
    hako += 1

print "入力した数の合計は",kazu,"です"
# kadai02.py 
好きな数字を入れてね -> 1
もっと好きな数字を入れてね -> 2
もっと好きな数字を入れてね -> 3
もっと好きな数字を入れてね -> 4
もっと好きな数字を入れてね -> 5
もっと好きな数字を入れてね -> 6
もっと好きな数字を入れてね -> 7
もっと好きな数字を入れてね -> 8
もっと好きな数字を入れてね -> 9
もっと好きな数字を入れてね -> 10
入力した数の合計は 55 です

これでも完全じゃなくて、解はでるんだけど空白を入れたり数以外を入れるとエラーになっちゃうとこがクリアされていないのです。
アルファベットを入れると

# ./kadai.py 
好きな数字を入れてね -> a
Traceback (most recent call last):
  File "./kadai.py", line 5, in <module>
    kazu = input("好きな数字を入れてね -> ") 
  File "<string>", line 1, in <module>
NameError: name 'a' is not defined

空白を入れると

# ./kadai.py 
好きな数字を入れてね -> 
Traceback (most recent call last):
  File "./kadai.py", line 5, in <module>
    kazu = input("好きな数字を入れてね -> ") 
  File "<string>", line 0

    ^
SyntaxError: unexpected EOF while parsing

うーん。なかなか上手くいかないもんだ。

2問目
ユークリッドの互除法によって2個の数の最大公約数を求める関数を書きなさ い。解は次の手順で求めます。
1.2個の数を用意し、それをaとbとする。aはbより大きいものとする。
2. 次の操作をbが0になるまで繰り返す。
1.aにbの値を代入する。
2.bに(1.をする前の)aをbで割った余りの値を代入する。
3.最終的なaの値を返す。

#!/usr/bin/python
# coding: utf-8

def keisan(a,b):
  if a > b:
    while b != 0:
      r = a
      a = b
      b = r % b

    return a

  else:
      print "AにはBより大きい数字を入れて下さい。"
      exit()

a = input("a ? ")
b = input("b ? ")

c = keisan(a,b)

print a,"と",b,"の最大公約数は",c,"です。"
# kadai03.py 
a ? 180
b ? 72
180 と 72 の最大公約数は 36 です。

どうでしたか、難しかったですか?
1行でできた!とか、もっと短くできたって人はセンスがあると思うのでもっともっとコードを書いてがんばってください。
たけけんと同じく凡人の人ももっともっとコードを書いて一緒に頑張りましょう。

ということで、次回からは最初から問題をといていく感じで進めていきたいと思います。

Similar Posts:


Leave a Reply

Your email address will not be published. Required fields are marked *