【無料テキスト公開】Pythonプログラミング研修 第1回

Contents

概要

今回学習する内容は以下のとおりです。

  • 言語紹介
  • コマンド
  • 変数と型
  • String

Pythonの紹介

バージョン

  • Python  - 12/1989
  • Python 2 – 10/2000 2.6 / 2.7
  • Python 3 – 12/2008 互換性がない

特徴

  • 読みやすい
  • { } ; ではなく スペース と タブ
  • 関数型、構造型、オブジェクト指向、など
  • インタープリター言語 (例えば:perl, php など)

Pythonこんな事ができる

  1. Script
  2. Notebook
  3. アプリケーション
  4. モバイルアプリ (android/iOS)
  5. Webサーバー / CGI (uWSGI)


アプリケーションの例


Scriptの例


Notebookの例


アプリケーションの例

Python コマンド

インタープリター言語
=プログラムの上に走る言語

Windowsの場合
コマンド : py
終了 : ctrl + z

MacOSの場合
コマンド : python3.6
終了 : ctrl + d

Linuxの場合
コマンド : python3.6
終了 : ctrl + d

Windows

1. Win + r
2. cmd (enter)
Windowsの場合のコマンド

MacOS

1. Applications -> Utilities -> Terminal
MacOSの場合のコマンド

CentOS

1. Applications -> Utilities -> Terminal

CentOS

コマンド Try!

実際にコマンドを試してみましょう。

次のように、入力した結果はどうなるでしょうか?
結果を推測しながらコマンドを入力してみてください。

  • print(“hello”)
  • 2 ** 8
  • 2 * 8
  • 3.0/2.0
  • 3.0//2.0

コマンドTry!

変数と型

print("hello")

ここで「”hello” = データ」なのですが、この文は次のようにも書くことができます。

s = "hello"
print(s)

この場合は「変数s」に「helloというデータ」を代入し、表示しています。

「型」について、他のプログラミング言語である、CやJavaの例では次のように書いた場合を考えてみましょう。

String s = "hello"
s = 5

この場合は、1行目で「s は文字列」としてhelloを代入しているのにも関わらず、
2行目では「s = 5」と数値を代入しているので、型のエラーとなってしまいます。

しかしPythonでは型を気にする必要がないので、簡潔に次のように書くことができます。

s = "hello"
s = 5

1行目で s の型を宣言していないことが分かったでしょうか?
Pythonでは型を自動的に変更することができます。

変数と型

ここで、大文字のSと小文字sを区別するので、気をつけてください。

変数と型の種類

先ほどは文字列と数値についてお話しましたが、実際に使用できる型について紹介したいと思います。

●組み込み型

  • int …… 1, 2, 3(整数)
    (例)a = 1
  • float …… 2.0, 2.3, 4.5(浮動小数点)
    (例)b = 1.5
  • string …… “hello”(文字列)
    (例)c = “hello”
  • list …… 配列
    (例)d = list(range(5)) e = list(“hello”) f = [1,2,3]
  • bool …… True / False.(論理値)
    (例)g = True ←Tが大文字に注意
  • 関数 …… 関数は渡せます
    (例)h = lambda x : x*x
      h(4)
  • その他

●ユーザー指定型

  • Class

加減乗除

Pythonも、他の言語と同じように加減乗除ができ、概ね書き方は同じです。

  • 足し算  a + b
  • 引き算  a – b
  • かけ算  a * b
  • わり算  a / b
  • 剩余 (あまり)  a % b
  • べき乗  a ** b (a * a * a.. をb回)

また、次のように代入演算子を使うこともできます。

  • a += b  (a = a + b)
  • a -= b  (a = a – b)
  • a *= b  (a = a * b)
  • a /= b  (a = a / b)
  • a %= b  (a = a % b)

ここまではCやJavaなどの言語と同様ですが、Python独自のルールとして、インクリメントはありません。
ではインクリメントを使いたいときはどうすればいいでしょうか?

正解は代入演算子を使って記述します。

  • a += 1  (a++ と同値)
  • a -= 1  (a– と同値)

文字列型

文字列を出力するときに、つぎのコードの場合、どんな結果が出力されるでしょうか。

print("hello"+"world")

この結果は「helloworld」となります。

+ は文字列の場合「結合」を意味しますので、前後の文字列をくっつけます。

print("hello"*3+"world")

この結果は「hellohellohelloworld」となります。
*3 はhelloを3回掛け算(3回繰り返し)の意味になります。

加減乗除のルールは数学と同様、掛け算・割り算が優先されますので、
この場合もhello * 3が先に計算されます。

この結果を変数を使って書き換えると、次のようになります。

x="hello"
y="world"
print(x*3+y)

変数を用いるメリットは、変数の文字や数字を後から変更できるという点があります。

● slice [:] [スタート : エンド]
slice(スライス)を使った文字列抽出を考えてみたいと思います。
次の場合、それぞれの抽出結果はどうなるでしょうか?

x="hello hello hello"
x[:]
x[0:5]
x[-4]

結果は上から
hello hello hello
hello
e
となります。

x[:] は、スタート、エンドの指定がなく、その場合は先頭から末尾までを意味します。
x[0:5]は、0番目から5番目を意味します。
x[-4]は、(先頭から逆方向に)-4移動した位置の値を意味します。

● 大文字・小文字変換
アルファベットの大文字↔小文字を変換するには、.lower() と .upper()を使います。

x="hello hello hello"
x.lower()
x.upper()

● 分解(区切り)
指定した位置で区切るには .split() を使います。

x="red,green,blue"
x.split(',')
r,g,b = x.split(',')

今日の問題#1

このソースコードのエラー箇所を修正して、次の結果になるようにしてください。

# Prints a sentence in a centered "box" of correct width
sentence = input("Sentence: ")
screen_width = 80
text_width   = len(sentence)
box_width    = text_width + 6
left_margin  = (screen_width - box_width) // 2
print()
print(' ' * left_margin + '+'   + '-' * (box_width-2)  +   '+')
print(' ' * left_margin + '| ' + ' ' * text_width
print(' ' * left_margin + '| '  sentence
print(' ' * left_margin + '| ' + ' ' * text_width
print(' ' * left_margin + '+' + '-' * (box_width-2) + '+') 
print()

今日の問題#1

解答はこちらです: https://python.creativeflake.com/Python1/code/1_1a.txt

今日の問題#2

このソースコードのエラー箇所を修正して、次の結果になるようにしてください。

# Prints a sentence in a centered "box" of correct width
sentence = input("Sentence: ")
screen_width = 80
text_width   = len(sentence)
box_width    = text_width + 6
left_margin  = (screen_width - box_width) // 2
print()
print(' ' * left_margin + '+'   + '-' * (box_width-2)  +   '+')
print(' ' * left_margin + '| ' + ' ' * text_width
print(' ' * left_margin + '| '  sentence
print(' ' * left_margin + '| ' + ' ' * text_width
print(' ' * left_margin + '+' + '-' * (box_width-2) + '+') 
print()

今日の問題#2

解答はこちらです: https://python.creativeflake.com/Python1/code/1_1b.txt