본문 바로가기

python tutorial -3 주석, 수, 문자열, 리스트, end=, 조건/바디 ..

python tutorial part 3

파이썬의 간략한 소개 形式ばらない Python 紹介

 


주석

/ // % **

-3**2 = -(3**2) = -9

_


문자열

print(r' ')

'' '' " "

문자열 변수 + 문자열 변수

" " + 변수

인덱스 / 슬라이싱


리스트

인덱스 / 슬라이싱


print(a, end=',')


루프문 while

조건 / 바디




대화형

입력 : (>>>, ...)

출력 : 프롬프트 없는 줄

 

以下のサンプルでは入力出力はプロンプト(>>> ...)有無区別します:

 


 

주석

# 다음부터 줄 끝까지 

코드 중간부터 시작 할 수 도 있음

문자열 리터럴('', "") 안에는 들어갈 수 없습니다. - 해시 문자로서 #

코드의 의미 해설 - 생략 가능

 

コメント

    ハッシュ文字 # まり物理行わりまできます

    先頭にも空白やコードのにもくことができますが

    文字列リテラルの内部くことはできません

 

 

文字列リテラルのハッシュ文字はただのハッシュ文字です

コメントはコードを明快にするためのものでありPythonはコメントを解釈しません

なのでサンプルコードを実際入力してしてるときはコメントをいても大丈夫です

 


# this is the first comment

spam = 1 # and this is the second comment

# ... and now a third!

text = "# This is not a comment because it's inside quotes."




3.1. 계산 電卓



3.1.1. 숫자

 

인터프리터는 간단한 계산기로 기능

    표현식을 입력하면 값을 출력

    표현식 문법은 간단합니다.

    +, -, *, / 연산자들은 대부분의 다른 언어들 (예를 들어, 파스칼이나 C)처럼 동작

    괄호 ( )는 묶는 데 사용합니다.



インタプリタは簡単電卓のように動作します:

    入力するとその結果表示されます

    文法素直なものです

    演算子 +, -, *, / (Pascal C といった) のほとんどの言語じように動作します;

    丸括弧 (()) をグループ使うこともできます

 

 

>>> 2 + 2

4

>>> 50 - 5*6

20

>>> (50 - 5*6) / 4

5.0

>>> 8 / 5 # division always returns a floating point number

1.6

 

 


int 형  (2, 4, 20) 

float 형  (5.0, 1.6)

 

整数 (2 4 20) int であり

小数部(5.0 1.6) float です

 

 


/  : 나눗셈 (항상 float형 반)

// : 몫(정수부분) : 

% : 나머지

 

除算 (/) 浮動小数点数します

// 演算子整数除算 (小数部てた) 整数値します;

剰余% めます:

 

 

>>> 17 / 3 # classic division returns a float

5.666666666666667

>>>

>>> 17 // 3 # floor division discards the fractional part

5

>>> 17 % 3 # the % operator returns the remainder of the division

2

>>> 5 * 3 + 2 # result * divisor + remainder

17

 

 

 

** : 거듭제곱 

** : 冪乗

 

>>> 5 ** 2 # 5 squared

25

>>> 2 ** 7 # 2 to the power of 7

128

 

우선순위 :  ** > -

-3**2 = -(3**2) = -9

(-3)**2 = 9

 

** - より優先順位いので

-3**2 -(3**2) 解釈され計算結果-9 になります

これをけて 9 たければ(-3)**2 きます

 

 

 

변수에 값 대입

출력은 없음.

 

等号 (=)

変数代入するときに使います

代入っても結果出力されず入力プロンプトが表示されます:

 

 

>>> width = 20

>>> height = 5 * 9

>>> width * height

900

 

 

변수를 정의하지 않고 사용하면 에러

変数"定義" されていない (つまり代入されていない) 場合その変数使おうとするとエラーが発生します:

 

 

>>> n # try to access an undefined variable

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

NameError: name 'n' is not defined

 

 


실수, 정수를 같이 연산하면 결과는 실수로 반환

 

浮動小数点完全にサポートしています

演算対象(オペランド)複数じっている場合演算子整数のオペランドを浮動小数点型変換します:

 

 

>>> 4 * 3.75 - 1

14.0

 

 

대화형 모드에서, 연산 마지막 값은 변수 _ 에 대입

계산을 이어 가기가 좀 더 쉬워짐을 의미

 

対話モードでは最後表示された結果変数 _ 代入されます

このことを利用するとPython 電卓として使うときに計算連続して作業多少楽になります

 

 

>>> tax = 12.5 / 100

>>> price = 100.50

>>> price * tax

12.5625

>>> price + _

113.0625

>>> round(_, 2)

113.06

 

 

이 변수는 읽기만 가능

직접 대입하면 같은 이름의 지역 변수를 새로 만드는 것이 되는데, 이 내장 변수의 기능을 차단 함

 

この変数には読取りだけを明示的代入ってはいけません

そんなことをすれば名前のローカル変数生成され特別動作をする変数してしておかしなことになってしまうかもしれません

 

 

 

Decimal 이나 Fraction 등의 다른 형의 숫자도 지원

Decimal Fraction などの数値型もサポートしています


복소수 : j 나 접미사 사용 \

3+5j

複素数 としてサポートしており j もしくは J 接尾辞使って虚部します 

3+5j

 

 

 

 


3.1.2. 문자열

 

문자열 표현

    작은따옴표('...') 나 큰따옴표("...") 

    특수문자 이스케이핑 :  문자 앞에 \

 

文字列記述する方法複数あり

    単引用符 ('...') もしくは二重引用符 ("...") みます(結果はどちらも文字列)

    引用符\ でエスケープできます:

 

다른 언어들과는 달리, \n 과 같은 특수 문자들은 작은따옴표('...')와 큰따옴표("...")에서 같은 의미

둘 간의 유일한 차이

'...' 안에서 " 를 이스케이핑 할 필요 없음 (하지만 ' 는 필요), 그 역도 성립

 

言語って\n のような特殊文字単引用符 ('...') 二重引用符 ("...") 意味ちます

両者唯一いは単引用符われた箇所では " をエスケープする必要がない (ただし \' はエスケープする必要がある) ことでもまた同様です


큰따옴표를 포함하지 않으면 큰따옴표 사용그 외의 경우는 작은따옴표 사용


出力文字入力とはってえる (っている引用符わることもありますがその つの文字列文字列

文字列単引用符二重引用符まない場合二重引用符われそれ以外場合単引用符われます

  

>>> 'spam eggs' # single quotes

'spam eggs'

>>> 'doesn\'t' # use \' to escape the single quote...

"doesn't"

>>> "doesn't" # ...or use double quotes instead

"doesn't"

>>> '"Yes," they said.'

'"Yes," they said.'

>>> "\"Yes,\" they said."

'"Yes," they said.'

>>> '"Isn\'t," they said.'

'"Isn\'t," they said.'

 

 

 문자열 출력  

대화형 인터프리터

따옴표로 둘러싸여 있음

\ 특수문자도 그대로 \ 특수문자로 출력

 

対話的インタプリタが文字列出力するとき

出力文字列引用符まれ

特殊文字はバックスラッシュでエスケープされます



print(문자열) 함수 :

    따옴표를 생략, 특수 문자 출력 -읽기 쉬운 출력

 

>>> '"Isn\'t," they said.'

'"Isn\'t," they said.'

>>> print('"Isn\'t," they said.')

"Isn't," they said.


>>> s = 'First line.\nSecond line.' # \n means newline

>>> s # without print(), \n is included in the output

'First line.\nSecond line.'

>>> print(s) # with print(), \n produces a new line

First line.

Second line.

 

 

r'...'

날 문자열 (raw string)

특수 문자로 취급 x

 

\ 文字特殊文字として解釈されたくない場合最初引用符r けた raw strings 使えます:

 

>>> print('C:\some\name') # here \n means newline!

C:\some

ame

>>> print(r'C:\some\name') # note the r before the quote

C:\some\name

 

 

삼중 따옴표 ("""...""" '''...''')

여러 줄

자동 줄 바꿈 방지 : 줄 끝에 \


文字列リテラルは複数行にまたがってけます

1 つの方法三連引用符 ("""...""" '''...''') 使うことです

改行文字自動的文字列まれますが行末\ けることでめないようにすることもできます

 

  print("""\

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

""")

 

 

결과 

(첫 줄에 개행문자(줄 바꿈)가 포함되지 않는 것에 주목):

出力 (最初改行文字まれていないことに注意してください):

 

Usage: thingy [OPTIONS]

-h Display this usage message

-H hostname Hostname to connect to

 

 


+ : 이어붙이기

* : 반복

 

+ : 連結させる (くっつけてつにする)

* : 反復させる

 

>>> # 3 times 'un', followed by 'ium'

>>> 3 * 'un' + 'ium'

'unununium'

 

 

문자열은 연속하면 자동으로 이어짐

連続してんでいる複数文字列リテラル (つまり引用符われた文字列) 自動的連結されます


>>> 'Py' 'thon'

'Python'

 


이 기능은문자열을 쪼갤 때 유용함.

この機能文字列改行したいときにとてもます:

 

>>> text = ('Put several strings within parentheses '

... 'to have them joined together.')

>>> text

'Put several strings within parentheses to have them joined together.'

 

 


변수나 표현식에는 해당 x

これは 2 つのリテラルどうしにしてのみ変数にはきません:

 

>>> prefix = 'Py'

>>> prefix 'thon' # can't concatenate a variable and a string literal

File "<stdin>", line 1

prefix 'thon'

^

SyntaxError: invalid syntax


>>> ('un' * 3) 'ium'

File "<stdin>", line 1

('un' * 3) 'ium'

^

SyntaxError: invalid syntax

 

 

변수 + 변수

변수 + 문자열 리터럴

 

変数どうしや変数とリテラルを連結したい場合+ 使ってください:

 

>>> prefix + 'thon'

'Python'

 

 


문자열 인덱스

첫 번째 문자 = 인덱스 0

문자를 위한 별도의 형은 없음

 

文字列は インデックス (添字) 指定して文字取得できます

最初文字のインデックスは 0 になります

文字専用のデータ用意されていません;

>>> word = 'Python'

>>> word[0] # character in position 0

'P'

>>> word[5] # character in position 5

'n'

 

 

음수 인덱스 

끝에서부터 카운트

インデックスには指定できまますこの場合からえていきます:


-0은 0과 같으므로음의 인덱스는 -1에서 시작

-0 は 区別できないのでのインデックスは -1 からまります

 

>>> word = 'Python'

>>> word[-1] # last character

'n'

>>> word[-2] # second-last character

'o'

>>> word[-6]

'P'

 


슬라이싱 - 부분 문자열(substring)

インデックスにスライス もサポートされています

インデックスは一文字づつ取得するのに使いますがスライス は部分文字列取得します:


시작 위치 포함

종료 위치 포함되지 않음.


開始値まれ終了値まれないことに注意してください


 

>>> word[0:2] # characters from position 0 (included) to 2 (excluded)

'Py'

>>> word[2:5] # characters from position 2 (included) to 5 (excluded)

'tho'

 

 

    첫 번째 인덱스 생략 : 0

    두 번째 인덱스 생략 문자열의 길이 (마지막)

     s[:i] + s[i:] = s


スライスのインデックスには便利なデフォルトがあります;

最初のインデックスを省略するとなされます

二番め のインデックスを省略するとスライスする文字列のサイズとみなされます

     s[:i] + s[i:] に 


>>> word = 'Python'

>>> word[:2] + word[2:]

'Python'

>>> word[:4] + word[4:]

'Python'

>>> word = 'Python'

>>> word[:2] # character from the beginning to position 2 (excluded)

'Py'

>>> word[4:] # characters from position 4 (included) to the end

'on'

>>> word[-2:] # characters from the second-last (included) to the end

'on'

 

 


인덱스 : 문자 사이 경계라 생각면 쉬움

    제일 왼쪽 경계 : 0

    n개 문자 - 끝인덱스 n

 

スライスの使をおぼえる方法インデックスが文字文字の あいだ (between) しており

最初文字左端0 になっているとえることです

そうするとn 文字からなる文字列中最後文字右端はインデックス n となります

 

+---+---+---+---+---+---+

|  P  |  y |  t  |  h | o  |  n |

+---+---+---+---+---+---+

0    1    2    3    4    5    6

    -6   -5   -4   -3   -2   -1

 


i 에서 j 범위 슬라이스 :  i , j 경계 사이 문자

 

1行目数字文字列0 から 6 までのインデックスの位置しています;

2行目対応するのインデックスをしています

 

i から j までのスライスはそれぞれ iいた境界から j いた境界までのての文字からっています

 

 

 

슬라이스의 길이는 인덱스 간의 차

- 양수 범위

- 범위 안의 수

ex) word[1:3] 길이 : 2

 

のインデックスの場合スライスされたシーケンスのさは

スライスの両端のインデックスが範囲内にあるかぎりインデックスになります

word[1:3] さは 2 になります

 

 

범위 밖 인덱스 : 에러

ぎるインデックスを使おうとするとエラーが発生します:

      but 범위 밖 인덱스 슬라이스는 처리

 

>>> word[42] # the word only has 6 characters

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

IndexError: string index out of range


>>> word[4:42]

'on'

>>> word[42:]

''

 

 

문자열은 변경 x. (immutable)

문자열 인덱스로 대입하면 에러

 

Python 文字列変更できません -- つまり不変 (immutable) です

って文字列のインデックスで指定したある場所代入うとエラーが発生します: 

>>> word[0] = 'J'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment


>>> word[2:] = 'py'

Traceback (most recent call last):

File "<stdin>", line 1, in <module>

TypeError: 'str' object does not support item assignment



 

다른 문자열이 필요하면, 새로 만들어야 함

文字列文字列必要場合しく文字列作成してください:

>>> 'J' + word[1:]

'Jython'

>>> word[:2] + 'py'

'Pypy'

 



len( ) : 문자열의 길이

組込関数 len( ) 文字列(length) します:

 

>>> s = 'supercalifragilisticexpialidocious'

>>> len(s)

34

 

 



3.1.3. 리스트 リスト(list)

 

리스트


컴파운드 (compound) 자료형 중 가장 융통성

- 표현 : squares = [1, 4, 9, 16, 25]

- 다른 형의 항목들도 가능 / but 대체로 은 형끼리 

 

Pythonくの 複合 (compound) データえており複数をまとめるのに使われます

汎用性いのは リスト(list) コンマ区切りの(要素) びを角括弧んだものとしてされます

リストはなる要素むこともありますが通常要素のみをちます

 

>>> squares = [1, 4, 9, 16, 25]

>>> squares

[1, 4, 9, 16, 25]

 

 

인덱싱 / 슬라이싱

文字列 (てのみのシーケンス (sequence) ) のようにリストはインデックスやスライスができます:

 

>>> squares = [1, 4, 9, 16, 25]


>>> squares[0] # indexing returns the item

1

>>> squares[-1]

25


>>> squares[-3:] # slicing returns a new list

[9, 16, 25]

 

 

모든 슬라이스 : 새 복사본 반환

 

てのスライス操作指定された要素しいリストをします

えばのスライスはリストのしい () コピーをします:

 

>>> squares = [1, 4, 9, 16, 25]

>>> squares[:]

[1, 4, 9, 16, 25]

 


이어붙이기 가능

リストはリストの連結などもサポートしています:

 

>>> squares = [1, 4, 9, 16, 25]

>>> squares + [36, 49, 64, 81, 100]

[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

 

 

문자열 - 불변 (immutable)

리스트 - 가변 (mutable)

不変 (immutable) 文字列とはってリストは可変 (mutable) ですので要素えられます

 

>>> cubes = [1, 8, 27, 65, 125] # something's wrong here

>>> 4 ** 3 # the cube of 4 is 64, not 65!

64

>>> cubes[3] = 64 # replace the wrong value

>>> cubes

[1, 8, 27, 64, 125]

 

 

append( ) 

리스트의 끝에 새 항목 추가

append( ) 使って

リストの末尾しい要素追加できます (このメソッドについてはしくていきます):

 

>>> cubes = [1, 8, 27, 65, 125]

>>> cubes.append(216) # add the cube of 6

>>> cubes.append(7 ** 3) # and the cube of 7

>>> cubes

[1, 8, 27, 64, 125, 216, 343]

 


슬라이스 연산 가능.

    - 대입

    - 리스트 길이 변경

    - 모든 항목 삭제

 

スライスには代入もできます

スライスの代入

リストのサイズを変更したり

てを削除したりもできます:


>>> letters = ['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> letters

['a', 'b', 'c', 'd', 'e', 'f', 'g']

>>> # 대입. 값 변경

>>> letters[2:5] = ['C', 'D', 'E']

>>> letters

['a', 'b', 'C', 'D', 'E', 'f', 'g']

>>> # 빈 값 대입으로 해당 항목 삭제하기

>>> letters[2:5] = []

>>> letters

['a', 'b', 'f', 'g']

>>> # 전체 슬라이싱에 빈값 대입으로 모든 리스트 항목 삭제하기.

>>> letters[:] = []

>>> letters

[]

 

 

len( )

組込関数 len( ) はリストにも使えます:

 

>>> letters = ['a', 'b', 'c', 'd']

>>> len(letters)

4

 

 

리스트 중첩 

리스트를 포함하는 리스트)

リストを(ほかのリストをむリストを) にできます

 

>>> a = ['a', 'b', 'c']

>>> n = [1, 2, 3]

>>> x = [a, n]

>>> x

[['a', 'b', 'c'], [1, 2, 3]]

>>> x[0]

['a', 'b', 'c']

>>> x[0][1]

'b'

 

 


3.2. 프로그래밍으로의 첫걸음 プログラミングへの第一歩

 

피보나치 수열 Fibonacci 数列

 

>>> # Fibonacci series:

... # the sum of two elements defines the next

... a, b = 0, 1

>>> while a < 10:

... print(a)

... a, b = b, a+b

...

0

1

1

2

3

5

8

 

 

다중 대입

a, b = 0, 1 

a, b = b, a+b

우변 먼저 계산 후 대입

 

最初には 複数同時代入 (multiple assignment) っています:

変数 a b それぞれ同時しい0 1 になっています

この代入最後でも使われています代入文ではまず右辺がすべて評価され代入われます

右辺からへと順番評価されます



 

while

조건이 참인 동안 실행 (a < 10)

    - 참 0 이 아닌 모든 정수, 길이가 0이 아닌 시퀀스(문자열, 리스트 등)

    - 거짓 0,  빈 시퀀스

 

while

条件 (ここでは `` a < 10``) である実行(ループし) ます

Python ではC 言語同様ゼロでない整数値となりゼロはです

条件式には文字列値やリストなども使えますそれ以外シーケンスも条件式として使用できます

さが 1 以上のシーケンスはのシーケンスはになります

 

サンプルで使われている条件テストはシンプルな比較です標準的比較演算子C 言語同様です: すなわち< (よりさい)> (よりきい)== (しい)<= (よりさいかしい)>= (よりきいかしい)および != (しくない)です

 

 

바디 (body) 는 들여쓰기 インデント (indent, 字下)로 구분

들여쓰기는 파이썬에서 문장을 묶는 방법

     대화형 프롬프트 : 들여 쓰는 줄에서 (tab)이나 공백(space)을 입력

          텍스트 편집기들은 자동 들여쓰기 기능을 제공

     복합문을 대화형으로 입력할 때는 끝을 알리기 위해 빈 줄을 입력. (해석기의 이해를 위해)

 

ループの 本体 (body) インデント (indent, 字下) されています:

インデントは Python において実行文をグループにまとめる方法です

対話的プロンプトではインデントされた各行入力するにはタブや (複数個) スペースを使わなければなりません実用的にはもっと複雑処理入力する場合はテキストエディタを使うことになるでしょうほとんどのテキストエディタは自動インデント機能っています複合文対話的入力するときには入力完了のしるしとして最後空行入力しますこれはパーザはどれが最後入力なのか判断できないためです基本的なブロックではてのじだけインデントされていなければならないので注意してください

 


 

print( )

주어진 인자 값을 인쇄

다중 인자, 실수의 값, 문자열을 다루는 방식에서 출력하고자 하는 표현식을 그냥 입력하는 것과는 다름.

    문자열은 따옴표 없이 출력

    인자들 간에는 빈칸 삽입

 

print( ) 関数

えられた引数します

出力したいくのとは複数引数浮動小数点量文字列するいます

    文字列引用符無しで出力され

    要素空白挿入されて

 

>>> i = 256*256

>>> print('The value of i is', i)

The value of i is 65536

 



키워드 인자 end = 

출력 끝 개행문자(줄바꿈) 제거

출력문 마지막값

 

キーワード引数 end

出力末尾改行文字出力しないようにしたり

文字列末尾出力したりできます:


>>> a, b = 0, 1

>>> while a < 1000:

... print(a, end=',')

... a, b = b, a+b

...

0,1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,