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)
좋은 느낌.
결론
코스를 전부 이수한 곳, 거기 훌륭한 인정증을 받았습니다.
했어!
Reference
이 문제에 관하여(Kaggle Courses 학습 메모 (Python 강좌편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mossycat/items/e173f46d933707239866
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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)の説明として表示される
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)
좋은 느낌.
결론
코스를 전부 이수한 곳, 거기 훌륭한 인정증을 받았습니다.
했어!
Reference
이 문제에 관하여(Kaggle Courses 학습 메모 (Python 강좌편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mossycat/items/e173f46d933707239866
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
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
len("it's ok") #7
len('it\'s ok') #7
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)
좋은 느낌.
결론
코스를 전부 이수한 곳, 거기 훌륭한 인정증을 받았습니다.
했어!
Reference
이 문제에 관하여(Kaggle Courses 학습 메모 (Python 강좌편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다
https://qiita.com/mossycat/items/e173f46d933707239866
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념
(Collection and Share based on the CC Protocol.)
print(1, 2, 3, sep=' < ') #1 < 2 < 3
for i in range(4):
print(i)
#0
#1
#2
#3
for i in range(4):
print(i,end=" ")
#0 1 2 3
def mod5(num):
return num%5
max(100,51,14,key=mod5) #14
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)
좋은 느낌.
결론
코스를 전부 이수한 곳, 거기 훌륭한 인정증을 받았습니다.
했어!
Reference
이 문제에 관하여(Kaggle Courses 학습 메모 (Python 강좌편)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/mossycat/items/e173f46d933707239866텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)