• 내용
  • 내용
  • 내용
안녕

select에 대해서 배워봅시다

과목

 

증명 기법

1) 직접증명법(연역법)

이미 증명된 하나 또는 둘 이상의 명제를 전제로 하여(논리적으로 직접 연결하여) 새로운 명제를 결론으로 이끌어내는 것

  • 파스칼 삼각형

 

2) 수학적 귀납법

모든 자연수 n에 대해 명제가 성립함을 증명하는 방법

  • 수학적 귀납법 3단계 과정

 

3) 간접증명법

증명해야 할 명제를 증명하기 쉬운 형태로 변형하여 증명하는 방법

① 대우증명법

p→q의 대우인 ~p→~q가 참이라는 것을 이용한 증명법

② 모순증명법

p→~q는 모순이라는 점을 이용한 증명법

③ 반례증명법

전체한정자∀가 사용된 명제함수가 거짓임을 증명하여 반대되는 예시를 찾는 것

④ 구성적 존재증명법

존재한정자∃가 사용된 명제함수가 참임을 증명하는 법

⑤ 비구성적 존재증명법

P(x)를 참으로 만드는 x를 찾지 않고, 우회적으로 명제가 타당함을 보이는 방법

 

4) 그 외

① 전수증명법

경우의 수가 적을 때 모든 경우의 수를 조사하는 방법

② 조합적 증명법

두 집합의 원소 개수가 같다는 것을 증명할 때 사용하는 증명법

  1. 전단증명 : 원소가 n개인 집합 A, m개인 집합 B를 찾은 후 두 집합이 일대일 관계임을 보여 n=m을 정명하는 방법
  2. 중복산정 : 동일한 집합의 원소를 서로 다른 두 가지 방법으로 센 후 각각의 결과값이 동일할 수밖에 없다는 사실을 이용해 증명

④ 컴퓨터를 이용한 증명

증명이 복잡한 경우 컴퓨터 계산의 도움을 얻음

 

문자열 자료형

단일 값을 저장하는 데이터 타입

  1. integer : 정수형
  2. float : 실수형
  3. string : 문자형
  4. boolean : 불리언

여러 개의 값을 저장하는 데이터 타입

  1. list : [ ]
  2. tuple : ( )
  3. dictionary : { }
  4. set : { }

 

 

 

 

문자열 기초

문자열 만들기

"내용"
'내용'
'''내용'''
"""내용"""

 

문자열에 따옴표 포함시키기

"다꼭이's code"
'다꼭이 say, \\"배고프다\\"'

 

여러 줄인 문자열

multiline = "Life is too short/nYou need python"

multiline = '''
Lift is too short
You need python
'''

 

 

 

 

 

문자열 심화

sep=""

  • print 함수의 sep 인자로 ";"를 입력하면 출력되는 값들 사이에 한 칸의 공백대신 세미콜론이 출력됩니다.
print("naver", "kakao", "samsung", sep=";")

# naver;kakao;samsung

end=""

  • 다음 코드를 줄바꿈 없이 출력하고 싶을 때
print("first", end=''); print("second")

# firstsecond

type, 데이터 타입 변환

num_str = "720"

num_int = int(num_str)

print(type(num_int))

 

 

 

 

이스케이프 코드

프로그래밍할 때 사용할 수 있도록 미리 정의해 둔 문자 조합. 출력물을 보기 좋게 정렬하는 용도로 사용

 

 

 

 

문자열 연산

문자열 더해서 연결하기 (Concatenation)

a = "apple"
b = "banana"
print(a+b)

# applebanana

 

문자열 곱하기

print("="*50)

 

len( ) : 문자열 길이 구하기

  • 문자열이 아닌 배열 같은 데에도 쓸 수 있음
a = "Life is too short"
print(len(a))

# 17

 

 

 

 

 

인덱싱 Indexing : a[ ]

※ 파이썬은 0부터 숫자를 센다

a = "Life is short, You need Python"
print(a[3])

# e

a = "Life is short, You need Python"
print(a[-3]) # 뒤에서 세 번째 문자 

# t

 

 

 

 

 

슬라이싱 Slicing : a[0:0]

※ a[0:]을 수식으로 나타내면 다음과 같다 :: 0≤a<3

a = "Life is too short, You need Python"
print(a[:]) # 처음부터 끝까지 나타내기
print(a[19:-7) # a[19]에서부터 a[-8]까지 

 

슬라이싱 응용

문자열 나누기

a = "20200726-Rainy"

date = a[:8]
weather = a[9:]

print(date)
print(weather)

 

문자열 바꾸기

문자열의 요솟값은 바꿀 수 있는 값이 아니기 때문에, 아래처럼은 불가능 (그래서 immutable한 자료형이라고도 불린다)

a = "Pithon"
a[1] = 'y'

print(a)

# 오류 

그래서 아래처럼 슬라이싱 기법을 활용해 새로운 문자열을 만들 수 있음

a = "Pithon"
print(a[:1]+'y'+a[2:])

# Python

 

문자열 오프셋

슬라이싱할 때 시작인덱스:끝인덱스:오프셋 지정 가능

string = "홀짝홀짝홀짝"
print(string[::2])

# 홀홀홀 : 처음부터 끝까지 슬라이싱하고, 2개씩 건너뛰는 것 (024)
string = "PYTHON"
print(string[::-1])

# NOHTYP : 처음부터 끝까지 슬라이싱하고, -1개씩

 

 

 

 

 

포매팅 Formatting

문자열 안의 특정한 값을 바꿔야 할 때

 

포맷 코드를 이용한 대입

정수 대입 %d

a = "I eat %d apple" % 3
print(a)

# I eat 3 apple

문자열 대입 %s

a = "I eat %s apple" % "delicious"
print(a)

2개 이상의 값 넣기 %( , )

name1 = "김민수" 
age1 = 10

print("이름: %s 나이: %d" % (name1, age1))

# 이름: 김민수 나이: 10

 

포맷 코드

 

포맷 코드와 숫자 함께 사용하기

정렬과 공백

print("%10s" %"hi")
	# (공백기호 10개) hi

print("%-10s진수" %"hi")
	# hi (공백기호 10개) 진수 

소수점 표현하기

print("%0.4f" %1.00000000)
	# 1.0000

 

Format 함수를 사용한 포매팅

%를 안 쓰고 { }, .format( ) 이용

format 함수

1) 숫자, 문자열

print("I eat {0} apples".format(3))

2) 숫자 값을 가진 변수

number = 3
print("I eat {0} apples".format(number))

3) 인덱스 : 2개 이상의 값 : {0}, {1} ... 순서대로 지정됨

number = 10
day = "three"
print("I ate {0} apples. so I was sick for {1} days".format(number, day))

4) 이름으로 넣기

# 4. 이름으로 넣기 

print("I ate {number} apples. so I was sick fot {day} days".format(number=10, day=3))

5) 인덱스, 이름 혼용

print("I like {0}. But I don't like {hate}.".format("apple", hate="banana"))

 

 

{0:<n} :: 표현식을 사용한 포매팅

  • 0 대신 다른 숫자 대입하면 오류남???
  • f 문자열에서는 0 대신 문자열을 집어넣음
1. 왼쪽 정렬
"{0:>10}".format("A")
# 'A          '

2. 오른쪽 정렬
"{0:<10}".format("A")
# '          A'

3. 가운데 정렬
"{0:^10}".format("hi")
# '    A    '

4. 공백 채우기 01
print("{0:=^}".format("hi"))
# ====A====

5. 공백 채우기 02
print("{0:!<10}".format("hi"))
# hi!!!!!!!!!!

 

소수점 표현하기

y = 3.00000000
print("{0:0.4f}".format(y))

[자릿수를 10으로 맞출 수도 있음
print("{0:10.4f}".format(y))

 

{ 또는 } 문자 표현하기

중괄호brace 문자를 문자 그대로 사용하고 싶을 경우

print("{{ and }}".format())

 

f-string 포매팅

  • 변수값을 생성한 후 그 값을 참조할 수 있는 기능
name = '다빈이'
age = 12

print(f"나의 이름은 {name}입니다. 나이는 {age}입니다.")
  • f 문자열은 표현식을 지원한다
age = 10

print(f"나는 내년이면 {age+2}살이 됩니다.")
  • 딕셔너리에서의 표현식 이용
d = {'name':"다빈", 'age':12}

print(f"나의 이름은 {d['name']}입니다. 나이는 {d['age']}입니다.")
  • 정렬
# 정렬
print(f'{"hi":<10}')

# 공백 채우기 
print(f"{'hi':=^10}")
  • 소수점
y = 3.000000000
print(f'{y:0.4f}')
  • f 문자열에서 { } 문자 표시하기
print(f'{{ and }}')

 

 

예제

name1 = "김민수" 
age1 = 10
name2 = "이철희"
age2 = 13

print("이름 : {0} 나이 : {1}" .format(name1, age1))
print("이름 : %s 나이 : %d" %(name2, age2))

 

 

 

 

 

 

 

문자열 관련 함수

  • [문자열 변수 이름 뒤].함수명( )
  • 문자열에서만 쓸 수 있는 함수

count : 문자 개수 세기

a = "hobby"
print(a.count('b'))

# b의 개수 
# 2

find, index : 위치 알려주기

  • 찾는 문자가 문자열이 존재하지 않을 경우
    • find : -1을 반환
    • index : 오류
a = "Python is the best choice"
print(a.find('b'))

# 문자열에서 b가 처음 나온 위치
# 14

join : 문자열 삽입

print(",".join('abcd'))

# a,b,c,d

**# 114p Q7 #**

a = ['Life', 'is', 'too', 'short']

result = " ".join(a)
print(result)  # Life is too short

upper, lower : 소문자↔대문자

a = "life is too short"
print(a.upper())

# LIFE IS TOO SHORT

capitalize : 첫 글자 대문자

a = "hello"

print(a.capitalize())

lstrip, rstrip, strip : 왼쪽, 오른쪽, 양쪽 공백 지우기

a = "     NOOoooo...    "
print(a.strip())

# NOOoooo...

ljust, center, rjust : 문자열 정렬

replace : 문자열 바꾸기

a = "Life is too short"
print(a.replace("Life is", "Your legs are"))

# Your legs are too short

split : 문자열 나누기

a = "I like flower and leaf"
print(a.split())

# 공백을 기준으로 문자열 나눔
# ['I', 'like', 'flower', 'and', 'leaf'] 

b = "a:b:c:d"
print(b.split(":"))

# : 기호를 기준으로 문자열 나눔
# ['a', 'b', 'c', 'd'] --> 이것은 리스트다 

endswith, startswith : 특정문자 찾기 (참고 : https://dpdpwl.tistory.com/119)

file_name = "보고서.xlsx"
print(file_name.endswith(("xls", "xlsx")))

#True

file_name = "2020_보고서.xlsx"
print(file_name.startswith("2020"))

#True

 

'스터디 노트 > Python 기초' 카테고리의 다른 글

Python 기초 > 자료형 Unit1-1 숫자형  (0) 2021.12.09

+ Recent posts