Contents
概要
今回学習する内容は以下のとおりです。
- 言語紹介
- コマンド
- 変数と型
- String
Pythonの紹介
バージョン
- Python - 12/1989
- Python 2 – 10/2000 2.6 / 2.7
- Python 3 – 12/2008 互換性がない
特徴
- 読みやすい
- { } ; ではなく スペース と タブ
- 関数型、構造型、オブジェクト指向、など
- インタープリター言語 (例えば:perl, php など)
Pythonこんな事ができる
- Script
- Notebook
- アプリケーション
- モバイルアプリ (android/iOS)
- Webサーバー / CGI (uWSGI)
アプリケーションの例
Scriptの例
Notebookの例
アプリケーションの例
Python コマンド
インタープリター言語
=プログラムの上に走る言語
Windowsの場合
コマンド : py
終了 : ctrl + z
MacOSの場合
コマンド : python3.6
終了 : ctrl + d
Linuxの場合
コマンド : python3.6
終了 : ctrl + d
Windows
MacOS
1. Applications -> Utilities -> Terminal
CentOS
1. Applications -> Utilities -> Terminal
コマンド Try!
実際にコマンドを試してみましょう。
次のように、入力した結果はどうなるでしょうか?
結果を推測しながらコマンドを入力してみてください。
- print(“hello”)
- 2 ** 8
- 2 * 8
- 3.0/2.0
- 3.0//2.0
変数と型
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()
解答はこちらです: 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()
解答はこちらです: https://python.creativeflake.com/Python1/code/1_1b.txt