Kaggle Courses 학습 메모 (Python 강좌편)

개요



Kaggle 공식 Python 튜토리얼 (htps //w w. 꺄gぇ. 코 m / ぇ 아 rn / py 텐)을 놀이 감각으로 수강해 보면 의외로 모르는 Python의 Tips가 흔들렸기 때문에, 되돌아가면 메모 대신에 남겨 둡니다.
무료인데, 코스의 질과 양이 대학의 강의 수준입니다.

docstring에서 함수 설명을 작성할 수 있습니다 (JavaDoc)


def least_difference(a, b, c):
    """Return the smallest difference between any two numbers
    among a, b and c.

    >>> least_difference(1, 5, -5)
    4
    """
    diff1 = abs(a - b)
    diff2 = abs(b - c)
    diff3 = abs(a - c)
    return min(diff1, diff2, diff3)

#help(least_difference)の説明として表示される

VSCode에서 서제스트/마우스오버했을 때 표시되는 설명문도 된다



boolean 이외를 boolean으로 변환했을 때의 거동


print(bool(1)) # 0以外はTrue
print(bool(0)) # 0はFalse
print(bool("asf"))#""(中身のない長さ0の文字列)以外はTrue
print(bool("asf"))#""はFalse
# 一般に,中身が空の時系列データ (strings, lists, listsやtuplesに類するもの)は"Falsey"(Falseっぽいという専門語)
# それ以外は"Truthy"(Trueっぽいという専門語)

int에 대한 boolean 연산


a=1
b=2

a or b#1
b or a#2

a and b#2
b and a#1

0 or a#False

표현식의 평가는 부울로 수행됩니다. 파이썬의 and/or는 단락 평가.

전체 표현식이 True이면 마지막으로 평가 한 값이 False이면 False가 나옵니다.

boolean에 대한 int 연산


a=b=c=True
a+b+c#3

boolean에 int 연산을 하면 int로 돌아온다

문자열 관계



대문자 소문자


claim = 'Pluto is a planet!'
#全部大文字にする
claim.upper()#'PLUTO IS A PLANET!'
#全部小文字にする
claim.lower()#'pluto is a planet!'

문자열 검색


#マッチした場合一番最初のインデックスを返す
claim.index('plan')#11
#先頭の部分文字列マッチ
claim.startwith('Pluto')#True

왼쪽 정렬, 센터링, 오른쪽 정렬


testlist=['a','bbb','ccccc']

for t in testlist:
  print(t.ljust(5)) 
#a    
#bbb  
#ccccc

for t in testlist:
   print(t.center(5))
#  a  
# bbb 
#ccccc

for t in testlist:
  print(t.rjust(5))
#    a
#  bbb
#ccccc

문자열 조건


#以下,空文字はfalseとなる
#含まれる文字が全てアラビア数字
'12345'.isdecimal()#True
#含まれる文字が全て「数字を表す文字」
'四'.isnumeric()#True
#含まれる文字が全て英数字
'm0ssyc4t'.isalpha()#True
#文字列全体が
#全部Ascii文字
'this is ascii'.isascii()#True
'†hîs îß asçîî'.isascii()#False

문자열 길이 정보



문자열 길이는 이스케이프 용 특수 문자를 무시하고 생각합니다."It's ok"'It\'s ok'가 같은 문자열을 가리키는 것을 생각하면 알기 쉽다.
len("it's ok") #7
len('it\'s ok') #7

형식 문자열 관계


str.format()를 사용하는 것이 일반적이지만 개인적으로 f-string이 컴팩트하고 선호됩니다.
다만, f-string은 python3.6~이 아니면 사용할 수 없기 때문에 주의.
who_made_perl='Larry Wall'
who_made_python='Guido van Rossum'
print('Who made perl is {}.'.format(who_made_perl))#Who made perl is Larry Wall.
print(f'Who made python is {who_made_python}.')#'Who made python is Guido van Rossum.'

이 형식은 공식에 따라 다음 형식 지정자의 형식에 따라 해석됩니다.
format_spec     ::=  [[fill]align][sign][#][0][width][grouping_option][.precision][type]
#fill            ... alignする時,埋めるのに使う文字.デフォルトは多分ホワイトスペースになる.
#align           ... 左詰め,中央寄せ,右詰めを選択可能.それぞれ<,^,>
#sign            ... 符号を付けるかどうか."+"で正負かかわらず符号をつけ,"-"で負数のみ符号を付け," "で負数のみ符号をつけ,正数先頭には空白を入れる
# "#"            ... 数値型の先頭に0xとか0bみたな進数表記を付ける.
# "0"            ... ゼロパディングする
#width           ... 最小の幅.
#grouping_option ... 千の位のセパレータに何を使うか.","か"_"が選べる.
#.precision      ... 小数点以下の表示される桁数.
#type            ... データの表現について.出力を2進数,8進数,10進数,16進数にしたい場合,それぞれb,o,d,x(またはX)を用いる.
#                    特殊な場合として,記数表記にしたい場合,e(またはE),
#                    固定小数点表記にしたい場合,f(またはF),
#                    パーセント表示にしたい場合,%とする.

라이브러리 가져오기



가져올 모듈 클래스의 atribute 이름, method 이름은 dir() 메서드에서 확인할 수 있습니다.
import math
dir(math) #['__doc__', '__file__', '__loader__',...,'tau', 'trunc', 'ulp']

자주 사용하는 메소드의 편리한 인수


print 메서드는 구분 기호를 변경할 수 있습니다.
print(1, 2, 3, sep=' < ') #1 < 2 < 3
print 메소드 호출 후 자동으로 입력되는 문자는 end 인수로 정의됩니다. 따라서 기본 인수는 end='\n'이며 print 메소드를 호출 할 때마다 줄 바꿈이 들어 있습니다.
for i in range(4):
  print(i)
#0
#1
#2
#3

이것을 응용하여 print 후에 개행을 시키지 않으려면 end=''로 하면 된다.
for i in range(4):
  print(i,end=" ")
#0 1 2 3 
max 메소드는 key 인수로 지정된 메소드를 map 할 수 있습니다
def mod5(num):
  return num%5

max(100,51,14,key=mod5) #14
round 메서드는 ndigits 인수로 지정된 자릿수로 반올림됩니다.
round(54321.12345,-2) #54300.0

복소수


a=12
a.imag #0
b=12+3j
b.imag #3.0

복소수를 사용해 옛날 풀었다 다시 작성해 보겠습니다. #x2 가운데 정렬 x2 -= chuoux y2 -= chuouy #90도회전 x3= -y2 y3 = x2 #90도회전 x4= -y3 y4 = x3 너무 잡다. 만약 이렇게 혼잡하게 해도, 최소한 x3, y3의 페어는 구조체이므로 클래스 나름대로 정리해 취급하고 싶다. 수정 후 결과는 여기 .
#x2を中央揃えする
b-=chuou

#90度回転
c=b*(1j)
d=c*(1j)

좋은 느낌.

결론



코스를 전부 이수한 곳, 거기 훌륭한 인정증을 받았습니다.


했어!

좋은 웹페이지 즐겨찾기