*2021. 6. 25. 11:55 에 작성한 글
다시 파이썬이다. 반복만이 살 길!
SyntaxError 문법 에러 방지
print("I\'m \"excited\" to learn Python!")
문장안에 ',"가 있을 경우 '와 "앞에 \를 붙여 준다!
형 변환(Type Conversion/Type Casting)
값을 한 자료형에서 다른 자료형으로 바꾸는 것
int() - 정수형 변환
float() - 소수형 변환
format을 이용한 문자열 포맷팅
#오늘은 2019년 10월 29일입니다.
year = 2019
month = 10
day = 29
print("오늘은" + str(year) + "년" + str(month) + "월" + str(day) + "일입니다."
print("오늘은 {}년 {}월 {}일입니다.".format(year, month, day))
date_string = "오늘은 {}년 {}월 {}일입니다."
print(date_string.format(year, month, day))
format 다루기
num_1 = 1
num_2 = 3
print("{0} 나누기 {1}은 {2}입니다.".format(num_1, num_2, num_1/num_2)
#소수점 둘째자리로 반올림하고 싶으면?
print("{0} 나누기 {1}은 {2:2f}입니다.".format(num_1, num_2, num_1/num_2)
#.2f 에서 f=소수형(floating point) .2 = 소수점 둘째자리로
#round 함수를 쓰고 싶다면?
print("{0} 나누기 {1}은 {2}입니다.".format(num_1, num_2, round(num_1/num_2,2)))
문자열 포맷팅 방법
1.가장 오래된 방식(%기호)
name = "index"
age = 1080
print("제 이름은 %s이고 %d살입니다." % (name, age))
제 이름은 index이고 1080살입니다.
2.현재 가장 많이 쓰는 방식 (format 메소드)
name = "index"
age = 1080
print("제 이름은 {}이고 {}살입니다.".format(name, age))
제 이름은 index이고 1080살입니다.
3.새로운 방식 (f-string)
name = "index"
age = 1080
print(f"제 이름은 {name}이고 {age}살입니다.")
제 이름은 index이고 1080살입니다.
불 대수
불 대수의 값 : 진리값(True or False)
불 대수의 연산 : AND, OR, NOT
AND - x와 y가 모두 참일 때만 x AND y가 참
OR - x와 y 중 하나라도 참이면 x OR y는 참
NOT - 참이면 거짓, 거짓이면 참
불린(Boolean)
한 쪽이라도 참이면 참이다. 참참참!
: 어떤 자료형을 썼는지 확인할 수 있음
print(type(3))
print(type(3.0))
print(type("3"))
<class 'int'>
<class 'float'>
<class 'str'>
*파이썬에서 나눗셈은 항상 정수가 아닌 소수로 표시된다.
추상화
파이썬에서의 등호의 의미
"같다"의 의미 X -> 지정연산자 O
return
: (함수가) 무언가를 돌려주는 것!
retrun문의 역할
값 돌려주기
함수 즉시 종료하기
옵셔널 파라미터
파라미터에 기본값(default value) 설정 가능
옵셔널 파라미터(optional parameter) : 함수 호출할 때 파라미터에 값을 안 넘겨 줘도 되는 기본값
*옵셔널 파라미터는 꼭 마지막에!
Synatacic Sugar
# 다음 두 줄은 같습니다
x = x + 1
x += 1
# 다음 두 줄은 같습니다
x = x + 2
x += 2
# 다음 두 줄은 같습니다
x = x * 2
x *= 2
# 다음 두 줄은 같습니다
x = x - 3
x -= 3
# 다음 두 줄은 같습니다
x = x / 2
x /= 2
# 다음 두 줄은 같습니다
x = x % 7
x %= 7
scope(범위)
: 변수를 사용 가능한 범위
글로벌 변수 : 변수를 정의한 함수 내에서만 사용 가능
로컬 변수 : 모든 곳에서 사용 가능
상수(constant)
스타일
이해하기 쉬운 코드 = 좋은 스타일을 가진 코드
띄어쓰기, 빈줄 : 화이트 스페이스 -> 적절히 활용하면 가독성 높임
파이썬에서 가장 많이 쓰이는 스타일 가이드 = PEP8
https://www.python.org/dev/peps/pep-0008
이름 규칙
모든 변수와 함수 이름은 소문자, 여러 단어일 경우 _로 나눈다.
모든 상수 이름은 대문자, 여러 단어일 경우 _로 나눈다.
의미있는 이름
화이트 스페이스
들여쓰기
들여쓰기는 무조건 스페이스 4개를 사용
함수 정의
함수 정의 위아래로 빈 줄이 두 개씩 있어야 한다.
하지만 파일의 첫 줄이 함수 정의인 경우 해당 함수 위에는 빈 줄이 없어도 된다.
괄호 안
함수 괄호
쉼표
지정 연산자
연산자
기본적으로 연산자 앞뒤로 띄어쓰기 하나씩
하지만 연산의 '우선 순위'를 강조하기 위해서 연산자 앞뒤로 붙이는 것을 권장
코멘트
while 반복문
무언가를 반복하기 위해 사용
while 조건 부분 :
수행부분
조건 부분 - 불린 값으로 계산되는 식
수행 부분 - 반복적으로 실행하고 싶은 명령
실습과제
Q.'while 반복문을 사용하여 1 이상 100 이하의 짝수를 모두 출력해 보세요.'
i = 1
while i <= 50:
print(i * 2)
i += 1
Q.while문을 사용하여, 100 이상의 자연수 중 가장 작은 23의 배수를 출력해 보세요.
i를 23으로 나눈 나머지(i % 23)가 0이 될 때까지 while문을 반복하면 된다.
i = 100
while i % 23 != 0:
i += 1
print(i)
-> 이런 수학 응용적인 머리 굴림이 빠르지(사실,,,전혀 안돼,,,)가 못해 우는 중,,,
if 조건 부분 :
수행 부분
else
elif
실습과제
Q.while문과 if문을 활용하여, 100 이하의 자연수 중 8의 배수이지만 12의 배수는 아닌 것을 모두 출력하세요
이 과제의 질문,,, 추천 229개...ㅋㅋㅋㅋbb
차근 차근 하나씩 해보자
#1부터 100까지 모든 수 출력
i = 1
while i <= 100:
print(i)
i += 1
#여기에 8의 배수이지만 12의 배수는 아닌 것은 8로 나누었을 때 값이 0이지만 12로 나누었을 때 0이 답이 아닌 것!
i % 8 == 0 and i % 12 ! = 0
#최종
i = 1
while i <= 100:
if i % 8 == 0 and i % 12 != 0:
print(i)
i += 1
#참고
#i += 1은 if문 밖에 있어야 무한 루프에서 빠진다
Q.while문과 if문을 활용하여, 1000보다 작은 자연수 중 2또는 3의 배수의 합을 출력하는 프로그램을 써보세요.
i = 1
total = 0
while i < 1000:
if i % 2 == 0 or i % 3 ==0:
total += i
i += 1
print(total)
-> 해설없이 total 구하는 힌트 보고 풀었다... 휴..
Q.정수 n의 약수는 n을 나누었을 때 나누어 떨어지는 수입니다. 만약 정수 i가 정수 n의 약수라면, n을 i로 나누었을때 나머지가 0이 나와야 하는 거죠. 정수 120의 약수를 모두 출력하고, 총 몇개의 약수가 있는지 출력하는 프로그램을 써 보세요...
N = 120
i = 1
count = 0
while i <= N:
if N % i == 0:
print(i) #약수 모두 출력하기
count += i #약수 세기
i += 1
print("{}의 약수는 총 {}개입니다.".format(N, count))
-> 어렸을 때부터 최소공배수 최대공약수 어려워하던 아이는 커서도 똑같습니다.
Q.(ㅠㅠ 미친 문제)
문제 파악할 때 : 1) 상수, 변수 정의 2) 상수 설정 3) 변수 설정 4) while 반복문 5) if-else 문
#상수 정의
INTEREST_RATE = 0.12
APARTMENT_PRICE_2016 = 1100000000
#변수 정의
year = 1988
bank_balance = 50000000
while year < 2016 :
bank_balance = bank_balance * (1+INTEREST_RATE)
year += 1
if bank_balance > APARTMENT_PRICE_2016 :
print("{}원 차이로 동일 아저씨 말씀이 맞습니다.".format(int(bank_balance - APARTMENT_PRICE_2016)))
else :
print("{}원 차이로 미란 아주머니 말슴이 맞습니다.".format(int(APARTMENT_PRICE_2016 - bank_balance)))
Q.피보나치 수열..
Q.구구단
-> 포기는 아니고 보류...
break문
: while문의 조건 부분과 상관없이 반복문에서 나오고 싶다면
continue문
: 현재 진행되고 있는 수행 부분을 중단하고 바로 조건 부분을 확인하고 싶으면
과부화와서 이번 주말 쉬엄쉬엄하려고 했는데
누군가의 성취가 내 마음에 불을 질렀다.
진짜 매 레슨마다 포기하고 싶었는데,,, 꾸역꾸역
이해는 모르겠고 일단 했다 일단 했어 ㅠ
확실한 동기부여, 불태운다 주말🔥
사실 이 말은 Robin Sharma라는 캐나다 작가가 한 말이다.
Chage is hard at first, messy in the middle and gorgeous at the end.
'프로그래밍 기초 in Python' 2.프로그래밍 핵심 개념 in Python|작성자 Index