Skip to content

Instantly share code, notes, and snippets.

@Rokt33r
Last active August 29, 2015 14:02
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save Rokt33r/7e50cbf4950d96dfaf7a to your computer and use it in GitHub Desktop.
Save Rokt33r/7e50cbf4950d96dfaf7a to your computer and use it in GitHub Desktop.
Python Intro(1st week)

Pythonとは

1990年Guido Van Rossumが作ったプログラミング言語である。

紹介

簡潔という美しさ

Pythonは、他の言語と違って、多様性より最も美しい答え一つを好む。 これは、コードの書き方にも適用されて、自分が書いていないコードでも、かなり読みやすい。

There is only one solution

強力な機能

Python!!

パソコンでできる作業のほとんどはPythonで具現できる。 PyPIで以前に誰かが作っておいたPackageも多いので、 生産性もかなり高い。

もちろん、Interpreted language(コンパイルが要らない)なので、単純演算やハードウェアの制御には不利である。 しかし、他の言語で作ったプログラムもモジュールとしてPythonに入れることができるので、その部分だけ他の言語にまかせばいい。

No cost

Free

PythonはOpensourceである。いつでもインタネットがつながっていたらPythonをダウンロードして使うことができるし、 Free softwareでもないので、開発したプログラムを公開しなきゃならない義務もない。

Life is short - You need python.

## 勉強会の方向性 一応、三つの中で一つの方向に進もうと思っている。

設置

この勉強会では一番最新の3.4.1を使って行う(2014/05/28基準)

WindowsやMacの場合

Pythonのホームページでダウンロードして簡単に設置!

ただし、Windowsはまっすぐcmdで使うため環境変数を登録する必要がある。

Linuxの場合(Ubuntu)

sudo apt-get install -y python3

これで設置完了......

起動(CLI)

###CLIとは? Command Line Interfaceという意味で、ターミナルでコマンドを一行ずつおくって起動するプログラムである。

今回はCLIを使ってPythonを使ってみる

python3

LinuxとMacはPython2.7も使うので区別をするためにPython3.*はPython3で実行するようになっている。

ただし、Windows場合はpythonで呼べばいい

python

成功的に設置ができたら、次のような画面になる CLI ここでコードを打てばいい

今回は簡単に

>>123*654

を入力する

したら、80442の結果が出るのが分かる。

では、CLIを消してみよう! これも、OSによって少し差があるので注意!

Linux & Mac

ctrl+d

Windows

ctrl+z


これで、Pythonを使う準備が終わった! じゃ、今から初めて見よう

Data type(データ型) 1

今回はPythonのデータ型について学んでみる。

Number

CやFortranではデータ型の分けがかなり厳しかったと思う。 integerやreal、そして、doubleなど....

Pythonも似ているように数の形が分けられている。 だが、PythonはNumberとして、一括的に管理するのでかなり楽である。 さらに、変数型を決めておかなくてもいい!!

ただし、Python自体が数字を動処理するのかを理解する必要があるので、 それを簡単に説明してから実集に入りましょう。

Number type expression
整数 0, 642, -51
実数 5.17, -12.25, 3.5e12
複素数 5+1j, -4j
8進数 0o25, 0o37
16進数 0xC3 0xFF5

3.5e12 = 3.5*10^12 = 3500000000000

Complex(複素数)

複素数は基本的に内装関数を持ってる。

>>> x = 1+3j
>>> abs(x)
3.1622776601683795
>>> x.real
1.0
>>> x.imag
3.0

これ以外にも多くの機能があるが、cmathというmoduleを呼ぶ必要がある。 詳しい説明はここに!

Operator(演算子)

数字を扱うための+,-,*,/のことをOperator(演算子)という

演算で使われる変数や数字のことはOperand(非演算子)という

そして、Pythonは**%というOperatorも持つ

**は累乗を、%は除余算を意味する。

>>> x = 5
>>> y = 3
>>> x**y
125
>>> x%y
2

String(文字列)

文字の並びであって、Pythonでは次のように書く。

"Life is too short - You need Python"  
'Life is too short - You need Python'  
"""Life is too short - You need Python"""  
'''Life is too short - You need Python'''

" vs '

"'の目立つ差はない。 主に、文字列の中に'が入れたい時

"I'm teaching Python to you"

同じように文字列の中に"が書きたい時

'"Python is great." Choi says.'

では、両方入れたい時はどうすればいいのか この時\を使う。

\Escape codeと呼ばれて、"'にまっすぐ書いたら文法に問題がでることを防ぐために酢買う。 つまり、\の後ろに書いた文字は、完全に文字として認識されるので、何で囲むかを気にする必要がなくなる。

"\"I\'m teaching Python to you.\" Choi says."

改行??

"'で囲んだ文字列に改行を入れたらエラーが出る。 つまり、普通の文字列は一行でまとめなきゃん羅ないようになっていて、改行を入れる場合"'を忘れたと Pythonが思ってエラーを返す。

では、動書けばいいのか。 ここには二つの方法がある。

Escape code\n(改行を意味する)を使う。

\nは改行を意味するので、文字列の中にこれを書けば改行として表示してくれる。

>>> x = 'Life is too short.\nYou need python'
>>> print(x)
Life is too short.
You need python

'''"""を使う。

'''"""を使うと、この中では、普通の改行も読んでくれる。

>>> x = '''Life is to short.
... You need python.'''
>>> print(x)
Life is to short.
You need python.

Escape code

\'\"\n以外にも多くのEscape codeが存在する。

code 説明
\n 改行
\t タブ(水平タブ)
\v 垂直タブ
\b Backspace
\||
' '
" "
\r Carriage return
\f Form feed
\a
\000 NULL

Carriage returnは改行せずに一番前にもどる

>>> x = 'Choi is a girl\rTomo'
>>> print(x)
Tomo is a girl

Form feedは印刷するときに次のページに変えたいときに使う。 そして、音は本当に音が出る。

### 文字の演算

+演算

>>> firstname = 'Dick'
>>> lastname = 'Choi'
>>> print(firstname + lastname)
DickChoi

*演算

>>> laugh = 'haha'
>>> print(laugh*5)
hahahahahahahahahaha

Indexing / Slicing

Indexingは番号で文字列の文字を呼ぶことで、Slicingは一部を取ることである。 配列のように、文字列でも使える。

>>> alphabet = 'abcdefghijklmnopqrstuvwxyz'
>>> print(alphabet[15])
p
>>> print(alphabet[3:5])
de
>>> print(alphabet[:4])
abcd
>>> print(alphabet[20:])
uvwxyz

それ以外のString関数も多いが、必要なときずつ探せばいい!
Pythonに基本的に使えるString関数

##参考 言語によってそれぞれだが、Pythonの+演算はNumber+NumberString+Stringしかできない

つまり、Number+Stringは次のようにエラーを起こす。

>>>someString = 'hello'
>>> someNumber = 12
>>> someString + someNumber
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: Can't convert 'int' object to str implicitly
>>> someString + str(someNumber)
'hello12'

但し、その下に書いたように、数字を文字列に変えたら問題ない

この変えることをCastingと言う。

Data type(データ型) 2

List

Pythonでは配列のことをListと呼ぶ。 FortranかCと違うのは、配列に入れれるもののデータ型に気にする必要がない。

>>> someList = ['a', 'b', 'c', 1, 2, 3]
>>> someList
['a', 'b', 'c', 1, 2, 3]

見ているように文字列と数字が一緒に入れても問題ない。
但し、こんな形でListを使うと、中のデータが文字列であるのか、数字であるのかを気をつけなきゃならない。

Indexing / Slicing

前文字列でやった方法も完全に同じである。

>>> someList = ['a', 'b', 'c', 1, 2, 3]
>>> someList[2]
'c'
>>> someList[3:5]
[1, 2]

単に、配列は文字列とは違って配列自分自身を入れるのも可能である。(多次元配列)

>>> someList = ['a', 'b', 'c', [['Life', 'is', 'short'], 1, 2, 3]]
>>> someList[3][0][0:3]
['Life', 'is', 'short']
>>>

### それ以外の関数

Tuple

Tupleも配列だと思えばいい。だが、中身の修正が絶対できないことに注意。

書き方は[]じゃなくて()で囲む。

>>> myTuple = ('Tupleの', '中に', '入っているデータは', '変えられない')
>>> myTuple[3] = '変えたい'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment

Dictionary

Dictionaryも配列とかなり似ている。違う点はデータに名前をつけていれることができる。

その名前をKeyと言う。

書き方は{}で囲んで、入れるデータの前に付けたいKey:を先に書いておけばいい。

>>> student1 = {'lastname':'Choi', 'firstname':'Dick','email':'fluke8259@gmail.com'}
>>> student1['firstname']
'Dick'

True / False

TrueとFalseは次に出るif文やwhileなどに使われる。

基本的な書き方はTrueFalseである。

けど、Pythonは開発を楽にするため、他のデータ型もTrueやFalseで処理してくれる。

Trueとして扱う

  • 文字が入っている文字列 "some text"
  • 0ではない数字 132, -123
  • 何かが入っているList, Tuple, Dictionary ['Kazufumi', 'Sai', 'Fujii']

Falseとして扱う

  • 空っぽの文字列 ""
  • 空っぽのList, Tuple, Dictionary [], {}, ()
  • None
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment