- 내용
- 내용
- 내용
전체 글
- html 연습 2023.03.11
- 이산수학 > 3강. 증명 2022.06.11
- Python 기초 > 자료형 Unit1-2 문자열 자료형 2022.06.11
html 연습
이산수학 > 3강. 증명
증명 기법
1) 직접증명법(연역법)
이미 증명된 하나 또는 둘 이상의 명제를 전제로 하여(논리적으로 직접 연결하여) 새로운 명제를 결론으로 이끌어내는 것
- 파스칼 삼각형
2) 수학적 귀납법
모든 자연수 n에 대해 명제가 성립함을 증명하는 방법
- 수학적 귀납법 3단계 과정
3) 간접증명법
증명해야 할 명제를 증명하기 쉬운 형태로 변형하여 증명하는 방법
① 대우증명법
p→q의 대우인 ~p→~q가 참이라는 것을 이용한 증명법
② 모순증명법
p→~q는 모순이라는 점을 이용한 증명법
③ 반례증명법
전체한정자∀가 사용된 명제함수가 거짓임을 증명하여 반대되는 예시를 찾는 것
④ 구성적 존재증명법
존재한정자∃가 사용된 명제함수가 참임을 증명하는 법
⑤ 비구성적 존재증명법
P(x)를 참으로 만드는 x를 찾지 않고, 우회적으로 명제가 타당함을 보이는 방법
4) 그 외
① 전수증명법
경우의 수가 적을 때 모든 경우의 수를 조사하는 방법
② 조합적 증명법
두 집합의 원소 개수가 같다는 것을 증명할 때 사용하는 증명법
- 전단증명 : 원소가 n개인 집합 A, m개인 집합 B를 찾은 후 두 집합이 일대일 관계임을 보여 n=m을 정명하는 방법
- 중복산정 : 동일한 집합의 원소를 서로 다른 두 가지 방법으로 센 후 각각의 결과값이 동일할 수밖에 없다는 사실을 이용해 증명
④ 컴퓨터를 이용한 증명
증명이 복잡한 경우 컴퓨터 계산의 도움을 얻음
Python 기초 > 자료형 Unit1-2 문자열 자료형
문자열 자료형
단일 값을 저장하는 데이터 타입
- integer : 정수형
- float : 실수형
- string : 문자형
- boolean : 불리언
여러 개의 값을 저장하는 데이터 타입
- list : [ ]
- tuple : ( )
- dictionary : { }
- 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 |
---|