■ math 모듈
import math
math.cos(math.pi/3)
# 0.5000000000000001
math.pi에 의해 π가 호출된다. 위 코드에서는 π를 대입하여 3으로 나누고 그 값을 math.cos()를 사용하여 구하고 있다. pi()가 아닌 pi인 것을 주의하자.
■ JSON형식의 출력
import json
x = {'name':'hiroyuki','date':[1985,1214]}
print(json.dumps(x)) # {"name": "hiroyuki", "date": [1985, 1214]}
JSON은 JavaScript 프로그래밍 언어의 오브젝트 표기법을 베이스로 만들어진 데이터 포맷으로 이 데이터를 넘겨주는 것만으로 JavaScript, PHP, Ruby 등으로 다양한 처리가 가능하다.
JSON 형식의 파일을 만들기 위해서는 사전형과 같이 key:value 짝으로 구성되어 있어야 하며, 요소는 콤마(,)로 구분되어 전체가 {}(중괄호)로 감싸져야한다.
{"name":"hiroyuki","date":[1985,1214]}
JSON의 포맷을 처리하기 위해서는 JSON형식으로 기재된 데이터 포멧을 사용가능한 형식으로 변환(디코드)할 필요가 있다. 이 때 사용하는 메소드가 json.load()메소드이다. 한편 JSON형식으로 변환(인코드)하는 방법도 당연 존재한다. 인코드하기 위해 사용하는 메소드는 json.dumps()메소드이다.
■ 리스트 컴프리헨션(List comprehension, 内包表記)
python의 리스트 컴프리헨션의 기본적인 작성 방법은 다음과 같다.
[ 식 for 임의의 변수명 in 이터러블 오브젝트]
리스트나 튜플 등 '이터러블 오브젝트'의 각 요소를 '임의의 변수명'으로 꺼내 '식'에서 평가, 그 결과가 요소가 되는 새로운 리스트가 반환된다.
[(x, y) for x in [0,1,2] for y in [1,2,3] if x != y]
위와 같은 코드가 있는 경우 출력결과를 어떻게 될까?
출력결과를 결과를 본다면 어떻게 처리됐는가 알 수 있을 것이다.
[(0, 1), (0, 2), (0, 3), (1, 2), (1, 3), (2, 1), (2, 3)]
위와 같은 결과가 된다.
즉, x의 1번째 요소와 y의 1번째의 요소가 처음 호출되고 그 뒤에 x의 1번째 요소와 y의 2번째 요소, 그 다음 x의 첫 번째 요소와 y의 3번째 요소, 그 다음 if의 조건문에 의해 x의 2번째 요소와 y의 1번째 요소가 아닌 x의 2번째 요소와 y의 2번째 요소가 온다. 이런 식으로 결과가 출력되는 것이다.
■ Python에서의 tab보완
tab보완이란 Tab키로 입력 내용을 보완하는 기능을 의미한다. Python의 대화형 인터프리터에서는 tab보완 기능이 있어 변수나 모듈명의 보완기능에 있어서는 인터프리터의 기동시에 자동 유효가 된다.
■ print(), list()와 range()를 합친 형태
print(list(range(5))) # [0, 1, 2, 3, 4]
range()에 의해 0부터 5번째까지의 요소가 호출되고 그것을 list()를 이용하여 리스트로 패킹하여 print하고 있는 간단한 코드이다.
■ reprlib
reprlib를 이용하는 것으로 출력의 길이를 제한할 수 있다. 또한 set함수를 이용하여 유니크한 집합(중복되는 요소는 하나만 나타내는 집합)을 만들 수 있다.
reprlib.repr('111111111111111112222222222222223333333333333333444444444444445555555555')
# "'111111111111...4445555555555'"
reprlib.repr(set('111111111111111112222222222222223333333333333333444444444444445555555555'))
# "{'1', '2', '3', '4', '5'}"
자세한 내용은 여기를 참고하길 바란다.
■ 시퀀스 오브젝트의 각각에 대해서
튜플 : immutable (변경할 수 없다.)
리스트 : mmutable (변경할 수 있다.)
언패킹하여 접근할 수 있다.
※ 언패킹에 대해서는 여기를 참고하길 바란다.
■ def문의 작성법
함수를 작성할 때는 인수로 디폴트 값을 지정해두는 것이 가능하다.
def test_func(title = "no_title",content = "no_content",level = 10):
print(title, end='\n')
print(content, end='\n')
print(level)
인수의 지정하지 않은 경우, 아래와 같이 디폴트로 지정한 값이 리턴된다.
test_func()
# no_title
# no_content
# 10
인수를 지정하면 지정한 값이 리턴된다.
test_func(title = "harry_potter",content = "himitsu_no_heya",level = 30)
# harry_potter
# himitsu_no_heya
# 30
■ dir()
built-in함수()를 사용하는 것으로 모듈이 정의하고 있는 부하를 확인할 수 있다. 즉 모듈이 정의하고 있는 이름을 확인할 수 있다.
■ sort함수와 lambda식에 의한 리스트 정렬
dic = [[1, 'D'], [2, 'B'], [3, 'A'], [4, 'C']]
dic.sort(key=lambda dic: dic[1])
print(dic) # [[3, 'A'], [2, 'B'], [4, 'C'], [1, 'D']]
dic.sort(key=lambda dic: dic[0])
print(dic) # [[1, 'D'], [2, 'B'], [3, 'A'], [4, 'C']]
자세한 내용은 여기를 참고하길 바란다.
■ 포맷 지정자의 이용
"%전체의 폭. 소수점이하의 폭f"의 형식으로 작성되어 있다. 전체의 폭에는 소수점도 포함된다.
print("出力結果:")
print('円周率は%5.3fである。'%math.pi)
print('円周率は%10.9fである。'%math.pi)
# 円周率は3.141592654である。
참고자료는 여기를 확인하길 바란다.
■ 슬라이스의 활용
list = ["a","b","c","d","e","f","g"]
print(x[:-3]) # ["a","b","c","d"]
여기 포스팅에서 자세히 설명되어 있다.
■ 변수 scope
디폴트 값은 함수가 정의된 시점에서의 scope로 평가된다.
i = 5
def func(arg=i):
print(arg)
i = 6
func() # 5
scope란 개념은 굉장히 중요하므로 여기와 여기를 참고하길 바란다.
■ _(언더바)의 활용
1+5
# 6
5+_
# 11
_(언더바)로 최후에 리턴된 값을 변수로 활용할 수 있다.
■ 리스트의 삭제
리스트를 삭제하는 데에는 pop()과 remove()를 사용하지만,
pop()은 삭제 후 삭제되는 것을 리턴하지만, remove()는 리턴하지 않는다.
a
# [2017, 2018, 2019, 2020]
a.pop()
# 2020
a
# [2017, 2018, 2019]
a.remove(2019)
a
# [2017, 2018]
■ range()의 리턴값
for문이나 list등의 이터레이터에 의해 리스트를 작성할 수 있다.
print(range(5)) # range(0, 5)
range(0,5) # range(0, 5)
list(range(5)) # [0, 1, 2, 3, 4]
for i in range(5):
print(i)
# 0
# 1
# 2
# 3
# 4
■ 비교 연산자
■ sys.path에 의한 초기화
참고자료는 여기를 보기를 바란다.
■ 함수의 인자
여기를 참고하였다.
아래의 코드에서 두 번째 인자는 임의의 인자이다.
def func(name, *name2):
print(name)
func('taro') # taro
func('taro','jiro') # taro
func('taro','jiro','saburo') # taro
아래의 경우 인자가 반드시 필요하므로 경우에 따라 에러가 발생한다.
def func_2(name, name2):
print(name)
func_2('taro')
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: func_2() missing 1 required positional argument: 'name2'
func_2('taro','jiro') # taro
func_2('taro','jiro','saburo')
# Traceback (most recent call last):
# File "<stdin>", line 1, in <module>
# TypeError: func_2() takes 2 positional arguments but 3 were given
■ 시퀀스의 비교
시퀀스는 다른 데이터 형임에도 비교가 가능하다.
비교할 때는 **사전적(lexicographical) 순서가 이용된다.
- 제일 처음의 2개의 요소를 비교하고, 그 값이 동일하지 않을 때 그 시점에 비교 결과를 결정한다.
- 비교한 값이 동일하면, 이하 시퀀스의 요소를 차례대로 마지막까지 계속해서 비교한다.
(1, 2, 3) < (1, 2, 4) # True
(1, 3, 3) < (1, 2, 4) # False
(1, 3, 3) < (1, 3, 4) # True
(1, 3, 5) < (1, 3, 4) # False
[1, 2, 3] < [1, 2, 4] # True
[1, 3, 3] < [1, 2, 4] # False
[1, 3, 3] < [1, 3, 4] # True
[1, 3, 5] < [1, 3, 4] # False
문자열에 대해서 사전적인 순서를 붙이는 것은 각각의 문자를 정렬하기 위해 Unicode 코드 포인트의 수를 이용한다.
'C' < 'JAVA' < 'PYTHON' < 'PERL' # False
'C' < 'JAVA' < 'PERL' < 'PYTHON' # True
'java' == 'JAVA' # False
다른 숫자 데이터형을 비교하는 것도 가능하다.
(1, 2, 3, 4) < (1, 2, 4) # True
(1, 2) < (1, 2, -1) # True
(1, 2, 3) == (1.0, 2.0, 3.0) # True
(1, 2, ('aa', 'ab')) < (1, 2, ('abc', 'a'), 4) # True
■ struct 모듈
struct 모듈은 바이너리 데이터를 처리하기 위한 모듈이다.
바이너리 데이터는 bytes형으로 표현되고 struct모듈를 사용하는 것으로 포맷을 지정하여 바이너리 데이터를 작성하거나 바이너리 데이터로부터 숫자 등으로 변환할 수도 있다.
주된 사용은 값의 pack과 unpack이다. pack은 숫자형 데이터 등을 bytes형으로 변환하는 것이다. 값은 콤마(,)로 구분하여 복수로 지정할 수 있다. unpack은 그 반대이다.
data = pack('hhl', 1, 2, 3)
type(data) # <class 'bytes'>
data # b'\x01\x00\x02\x00\x00\x00\x00\x00\x03\x00\x00\x00\x00\x00\x00\x00'
포맷 지정으로 사용된 'h'는 사이즈를 2바이트로, 'I'는 4바이트 값을 표현하는 것이다.
여기 코드를 인용하였다.
■ 인터 페이스 옵션
예를 들어 -m를 사용하여 sys.path로 부터 지정된 모듈 명의 모듈을 찾고, 그 내용을 main 모듈로 실행할 수도 있다.
참고자료는 여기이다.
■ 클린업 처리의 with
예외나 에러에 대한 대응에 클리업 처리가 필요하다.
try문에 정의하는 방법도 있지만, 이미 정의되어 있는 것도 존재한다. 그것이 바로 with이다.
아래의 코드의 경우 파일을 open하였으나 닫는 처리를 하지 않고 있다. 이는 가끔씩 문제를 초래한다.
for line in open("hoge.txt"):
print(line, end="")
따라서 이 코드를 아래와 같이 with로 변경할 수 있다.
with open("hoge.txt") as fl:
for line in fl:
print(line, end="")
■ 연산자의 리턴값
리턴될 때의 형식이 튜플임을 주의할 필요가 있다. 리스트가 아니다.
a = 3
b = 5
c = 3.0 + b, 5 * a
print(c) # (8.0, 15)
■ 중접된 리스트 컴프리헨션(List comprehension, 内包表記)
아래와 같은 3*4의 리스트의 리스트가 있는 경우에
matrix = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12]
]
각 리스트 요소에 대해 반복문을 사용하여 4*3의 매트릭스로 변경하는 것이 가능하다.
[[row[i] for row in matrix] for i in range(4)]
# [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]]
그러나 이 작업을 더욱 간단해주는 것이 zip()함수이다.
list(zip(*matrix))
# [(1, 5, 9), (2, 6, 10), (3, 7, 11), (4, 8, 12)]
애스터리스크(*)로 matrix를 언패킹하여 이용가능하도록 하고 있다.
자세한 내용은 이곳을 참고하길 바란다.
■ 키워드 인수
함수를 호출할 때 반드시 위치 인수가 앞에 키워드 인수를 뒤에 해야한다는 룰이 있다.
이에 대한 내용은 여기를 참고하길 바란다.
■ del문
clear()를 사용하는 것으로 list의 요소를 모두 삭제하는 것이 가능하다.
test_list = ['taro', 'hanako', 'kenta', 'jiro', 'saburo', 'yoko']
test_list.clear()
print(test_list) # []
한편 del문은 아래와 같이 사용할 수 있다.
test_list = ['taro', 'hanako', 'kenta', 'jiro', 'saburo', 'yoko']
del test_list[0]
print(test_list) # ['hanako', 'kenta', 'jiro', 'saburo', 'yoko']
del test_list[2]
print(test_list) # ['hanako', 'kenta', 'saburo', 'yoko']
del test_list[:]
print(test_list) # []
또한 삭제 대상이 사전형의 경우에는 del로 지정하는 것은 index가 아닌 key가 된다.
■ pip의 이용
자주 만나는 것이 install
$ pip install
패키지의 표시
$ pip list
■ 에스케이프(\)코드의 카운트
카운트되지 않는다.
d = 'watashino\nnamaeha\nojisan\t'
print(len(d)) # 25
이스케이프 코드(Escape Code) | 설명 |
\n | 줄바꿈 |
\t | 수평탭 |
\\ | 문자"\" |
\' | 단일 인용 부호(') |
\" | 이중 인용 부호(") |
\r | 캐리지 리턴 |
\f | 폼 피드 |
\a | 벨소리 |
\b | 백 스페이스 |
\000 | Null문자 |
■ round 사용법
어디까지 잘리는지 아래의 예를 보면 알 수 있을 것이다.
from math import pi
[str(round(pi, i)) for i in range(0, 5)]
# ['3.0', '3.1', '3.14', '3.142', '3.1416']
■ or의 활용
왼쪽 객체가 빈 값일 때, 오른쪽 값을 사용한다.
name1,name2,name3,name4= '', '','tanaka','sato'
selected_name = name1 or name2 or name3 or name4
print(selected_name) # tanaka
■ .replace메소드
replace("대체하려는 대상 값", "대체할 변경 값", [반복 횟수]) 의 형태로 정의할 수 있다.
d = 'xxxxAAAxxxxAAAxxxxAAA'
print(d.replace('AAA', 'BBB', 1))
■ 코멘트 행에 대해
가능한 독립하여 기재해야한다는 가이드 라인이 존재한다.
■ 커맨드 라인 인수
Python의 프로그램을 실행할 때 인수를 전달하는 데에 sys모듈의 argv를 이용한다. 또한 입력값은 문자열로 인식된다.
■ open함수의 mode에 대해
mode= | 설명 |
r | 읽기 |
w | 쓰기 (신규 작성) |
a | 추가 작성 |
r+ | 기존 파일의 읽고 쓰기 |
r- | 파일의 읽고쓰기에 사용하는 'open'함수의 모드 |
w+ | 파일의 읽고 쓰기 (신규 작성) |
a+ | 추가 기재, 읽고 쓰기 |
t | 텍스트 모드 |
b | 바이너리 모드 |
■ 연산자의 우선 순위
비교 연산자는 bool 연산자와 함께 사용하는 것이 가능하지만, 우선 순위는 비교 연산자 쪽이 높고 bool 연산자 중에서도 NOT > AND > OR 순서대로 평가 된다.
■ Python 특징에 대해 틀린 설명
( ) Pythonはインタープリタ言語であり、コンパイル等が必要でないため、プログラム開発における時間を節約してくれる。インタープリタは対話的に使うことも可能である。
( ) PythonはWindows、MacOS、Linuxなど多くの環境で動作する。
(v) Pythonでは、文のグルーピングはカッコで囲うことでなくインデントで行われるなど、プログラムを小さく読みやすく書けるという特徴がある。ただ変数や引数の宣言は必要である。
( ) Pythonはフリーのオープンソースソフトウェアである。
( ) Pythonは機械学習やディープラーニング、データ解析、Webアプリケーションなど多くの分野を得意としている。
(v) Pythonは柔軟な配列や集合、ディクショナリといった、非常に高水準のデータ型を組み込みで持つ。データ型の一般性が高いためPythonの対応可能な問題領域はAwkより広いが、Perlと比べると同程度である。
■ Python 인터프리터에 대해 틀린 설명(1)
( ) スクリプトファイルを走らせた後に対話モードに入るには、スクリプトファイル名の前に「-i」を入れるとよい。
( ) プライマリプロンプトの記号は「>>>」である。
( v ) セカンダリプロンプトの記号はデフォルトでは「<<<」である。
( ) インタープリタを対話モードで起動すると、はじめにバージョンと著作権からはじまるメッセージが、その後にプライマリプロンプトが表示される。
( ) プログラムの冒頭で「# coding: (エンコーディング方式)」のようにすると、デフォルト以外のエンコーディングを使うことも可能である。
■ Python 인터프리터에 대해 틀린 설명(2)
( ) 標準入力がttyデバイスに接続された状態で起動した場合は、コマンドを対話的に読み込んで実行するが、引数にファイル名を与えたり、標準入力からファイルを与えて起動した場合は、このファイルに入った「スクリプト」を読み込んで実行する。
(v) インタープリタがスクリプト名(スクリプトのファイル名)と続く引数群を知らされると、これらは文字列のリストとなる。import listitems を実行することで、このリストにアクセスできる。
( ) デフォルトの設定では、プライマリプロンプトの記号は「>>>」、セカンダリプロンプトの記号は「…」である。
( ) インタープリタを対話モードで起動すると、はじめにバージョンと著作権からはじまるメッセージが表示され、その後にプライマリプロンプトが表示される。
( ) プログラムの冒頭で「# coding: (エンコーディング方式)」のようにすると、デフォルト以外のエンコーディングを使うことも可能である。
■ python에 대해 올바른 설명
( ) docstringの1行目では、オブジェクトの目的を丁寧に記述し、母国語の異なるエンジニアが読んだ場合にも誤解が生じないようあえて冗長に説明するべきである。
( ) docstringはコンパクトにまとめ、空行は避けるべきである。
( ) コメント行は独立させず、該当コードについての説明であることが明示されるよう、同じ行に記述すべきである。
(v) 演算子の周囲やカンマの後ろ、カッコの内側にもスペースを入れ読みやすさに配慮すべきである。
( ) 国際的な環境で使用する予定のコードでは、PythonのデフォルトであるUTF-8か、さらにプレーンなASCIIが常に最良である。
■ 데이터의 구성에 대해 틀린 설명 (1)
( ) タプルは変更不能(immutable)、リストと集合は変更可能(mutable)である。
( ) ディクショナリは変更不能(immutable)であるがキーの型は変更可能(mutable)であり、その値は一意でなければならない。
( ) ディクショナリは、全要素が「キー」と「値」のペアであるという点で、リストやタプルと大きく異なる。
(v) 集合には、「順序を持たない」「同一の値の要素を重複して持つことができない」などの特徴がある。
( ) リスト、タプル、集合、ディクショナリには、反復可能(iterable)であるという共通点がある。
■ 데이터의 구성에 대해 틀린 설명 (2)
( ) ディクショナリに対する帰属性判定演算子「in」「not in」による判定において、「含まれるかどうか」の判定の対象は「キー」ではなく「値」である。
( ) 「set = {} 」において{}は空集合を生成する式であり、{}は空辞書を生成することはできない。
( ) リストとタプルは変更可能(mutable)、集合は変更不能(immutable)である。
( ) ディクショナリは変更不能(immutable)であるが、キーの型は変更可能(mutable)であり、その値は一意でなければならない。
(v) リストとタプルは順序を持つ要素の集まりであるという共通点がある。
■ 모듈에 대해 틀린 설명 (1)
( ) モジュールとは、Pythonの定義や文が入ったファイルである。そのファイル名は、モジュール名に接尾辞「.py」を付けたものである。
(v) あるモジュールがインポートされるときにインタープリタが検索する順序は、まずビルトインモジュール、次にsys.path変数で得られるディレクトリ、最後にシンボリックリンクを置いてあるディレクトリである。
( ) sys.pathが初期化されている場所は、入力スクリプトのあるディレクトリ、PYTHONPATH、インストールごとのデフォルトである。
( ) モジュール読み込みの高速化のため、Pythonはコンパイル済みのモジュールを「__pycache__」ディレクトリに、例えば「module.バージョン名.pyc」のような名前でキャッシュする。
( ) Pythonには標準モジュールのライブラリが付属する
■ 모듈에 대해 틀린 설명 (2)
( ) パッケージとは、「ドット区切モジュール名」を使って、Pythonのモジュールを構築する方法である。
( )あるモジュールがインポートされるときにインタープリタが検索する順序は、まずビルトインモジュール、次にsys.path変数で得られるディレクトリである。シンボリックリンクを置いてあるディレクトリはモジュール検索パスに入らない。
(v) sys.pathが初期化されている場所は、入力スクリプトのあるディレクトリ、PYTHONPATHであり、インストールごとのデフォルトは含まれない。
( ) Pythonはソースファイルの最終更新日時をコンパイル済みのバージョンと比較し、再コンパイルが必要か判断する。これは完全に自動的に行われる。
( ) コンパイル済みのモジュールはプラットフォーム非依存なので、ひとつのライブラリを異なるアーキテクチャのシステム間で共有できる。
■ 에러와 예외에 대해 틀린 설명(1)
( ) Pythonのエラーには2つの種類がある。構文エラーと例外である。構文エラーはパース上のエラーとも呼ばれる。
( ) 文や式が構文的に正しくても、実行しようとするときにエラーが生じることがある。実行中に検知されるエラーは例外と呼ばれ、これは必ずしも致命的なものではない。
( ) 例外のほとんどはプログラムでは処理されず、その結果はエラーメッセージに現れる。エラーメッセージの最終行には、NameError、TypeErrorなど例外の型が記されている。
( ) [Ctrl]+[C]キーなどでユーザーがプログラムに割り込みをかけると、KeyboardInterrupt例外が送出される。
(v) パーサ(構文解釈器)は違反のある行を表示し、最後にエラーが検知された点を小さな矢印で示す。エラーは矢印より後のトークンが原因である。
■ 에러와 예외에 대해 틀린 설명 (2)
( ) raise文を用いることで、指定の例外を意図的に発生させることができる。raiseの引数は送出する例外を示すものであり、例外インスタンスでも、Exceptionクラスの派生クラスであるクラス(例外クラス)でも構わない。
( ) 発生した例外に値が付随することもあり、これを例外の引数と呼ぶ。except 節では、例外名の後に変数を指定することができる。この変数は例外インスタンスに結び付けられており、instance.args に例外インスタンス生成時の引数が格納される。
(v) [Ctrl]+[C]キーなどでユーザーがプログラムに割り込みをかけると、KeyError例外が送出される。
( ) パーサ(構文解釈器)は違反のある行を表示し、最初にエラーが検知された点を小さな矢印で示す。エラーは矢印より前のトークンが原因である。
( ) 例外のほとんどはプログラムでは処理されず、その結果はエラーメッセージにあらわれる。エラーメッセージの最終行には、NameError、TypeErrorなど例外の型が記されている。
■ logging모듈의 메시지 우선 순위
( 왼쪽부터 순서대로 우선 순위가 높은 것으로 한다 )
CRITICAL、ERROR、WARNING、INFO、DEBUG
■ 가상환경과 패키지에 대해 틀린 설명
( ) pip install でパッケージ名を指定し、そのパッケージ名の後ろに==とバージョン名を付けると、そのバージョンのパッqiの複数指定も可能である。
( ) pip freezeはその仮想環境にインストールされたすべてのパッケージを、pip install向けの形式で出力する。
( ) pip uninstall にパッケージ名を指定すると、その仮想環境からパッケージを削除できる。削除対象となるパッケージの複数指定も可能である。
(v) 「pip list パッケージ名」で、ある特定のパッケージの詳細情報が表示される。
■ 수치에 관련해서 옳은 설명
( ) 演算を行うための「 + 」や「 - 」などの記号はオペランドと呼ばれ、演算の対象は演算子と呼ばれる。
( ) 切り下げ除算を行って整数解を得たい場合(剰余を捨てたい場合)は「 / 」を使い、剰余のみ得たい場合は「 // 」を使う。
( ) 変数は、定義(値の代入)や宣言がなされないまま使おうとするとエラーとなる。
(v) 整数はintという型を持つ。小数点を伴う数はfloatという型を持つ。除算は常にfloatを返す。
( ) 対話モードでは、最後に表示した式を変数「**」(アスタリスク2つ)に代入してある。
■ 문자열에 대해 옳은 설명
(여기서 '\'는 백슬래쉬로 대체한다.)
( ) 文字列に関する次の記述のうち、正しいものはどれか。なお「\」はバックスラッシュに読み替えること。
( ) バックスラッシュを前置した文字が特殊文字に解釈されるのが嫌な時は、最初の引用符の前に「print(raw'C:\some\name')」のように「raw」を記述する。
( ) 文字列リテラルを複数行にわたり書く一つの方法は、トリプルクオートを使う方法である。最初の改行などの行末文字が文字列に含まれることを避けたい場合は、行末に「-」を置く。
( ) 変数と文字列リテラルの連結、そして変数同士の連結には「.」(ドット)を使う。
( ) 文字列は「*」で繰り返すことができる。「'w' + 3 * 'o'」は対話型インタープリタで出力「wwwo」が得られる。
(v) 対話型インタープリタでは文字列は引用符に囲まれ、特殊文字はバックスラッシュでエスケープされた状態で出力される。print()関数では全体を囲む引用符が除去され、エスケープ文字や特殊文字がプリントされた状態で出力される。
■ 다음 설명 중 틀린 것을 선택
( ) 関数注釈(アノテーション)は関数の__annotations__属性にディクショナリとして格納され、関数のほかの部分にはいかなる影響も及ぼさない。
(v) 例えば「def func(a: int, b:str) -> value」と関数を記述したときにアノテーションに該当するものは「-> value」のみである。
( ) docstringの1行目は、常にオブジェクトの目的の短く簡潔な要約を記述し、大文字で始まりピリオドで終わる行とすべきである。
( ) docstringに2行目以降がある場合、2行目は空行としてようやくと他の記述を視覚的に分離すべきである。
( ) PEP 8では、演算子の周囲やカンマの後ろにはスペースを入れるが、カッコのすぐ内側にはスペースを入れるべきではないとされる。
참고자료
https://www.secat-blog.net/wordpress/learn-python-tab_completion-python_tutorial_ver3_chapter14/
'IT > 자격증' 카테고리의 다른 글
AWS 인증 클라우드 실무자 (AWS 認定クラウドプラクティショナー) - (2) 개념 정리 ; AWS 단어장 (0) | 2020.09.03 |
---|---|
AWS 인증 클라우드 실무자 (AWS 認定クラウドプラクティショナー) - (2) 개념 정리 ; AWS 서비스의 목록(2020/4/26기준) (0) | 2020.09.01 |
AWS 인증 클라우드 실무자 (AWS 認定クラウドプラクティショナー) - (1) 자료수집 (0) | 2020.08.31 |
Python 3 엔지니어 인증 기초 시험(Python 3 エンジニア認定基礎試験) - (3) 시험 결과 및 소감 (0) | 2020.08.27 |
Python 3 엔지니어 인증 기초 시험(Python 3 エンジニア認定基礎試験) - (1) 자료 수집 (0) | 2020.08.17 |