일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 소수출력
- 점프투장고
- Django
- group_by()
- match case
- pycharm
- input함수
- notion
- ReactNative
- python
- 조건문
- 제어문
- 별찍기
- R 데이터 분석
- react
- mutate()
- 자료형
- javascript
- f-string
- vs code
- 동일성 연산자
- inflearn
- sqldf
- while
- sd()
- COUNT()
- 멤버십 연산자
- Swift
- 반복문
- summarise()
- Today
- Total
✏️
220810 | ② Python / 멤버십 연산자, 동일성 연산자 / 제어문: 조건문(if, else, elif), match-case, 반복문(while) 본문
220810 | ② Python / 멤버십 연산자, 동일성 연산자 / 제어문: 조건문(if, else, elif), match-case, 반복문(while)
콩세 2022. 8. 11. 12:35▷자료형 변환 문법 추가 설명
위 링크 타고 들어가면 9일 수업 내용 있는데 자료형 변환에 대해 언급했었음
↓↓↓
▷자료형 변환 - 자동이랑 수동 두가지 방법이 있음
- 일부 서로 다른 자료형을 가진 값끼리 연산하면 자동으로 자료형으로 변환
(뒤에서 더 나옴. https://bean-three.tistory.com/8?category=1297721)
- int() 정수변환함수 / float() 실수변환함수 / str() 문자열변환함수 / bool() 논리형변환함수 사용
위 함수를 사용하여 서로 다른 자료형으로 수동으로 변환 가능
- 함수 식을 해석할때는 항상 등호를 기준으로 오른쪽에 있는걸 먼저, 왼쪽은 마지막에 해석한다.
자료형 변환 문법에는 두가지 종류가 있음
1. 수동변환 = 정수 int, 실수 float, 문자열 str
2. 자동변환(=자동 형 변환)
- ( / ) 나누기 연산자의 경우, 정수와 정수 간에 연산 시 자동으로 실수형으로 변환.
보통은 < 정수 + 정수 = 정수 >로 나오는데, 나누기 연산자에서만 < 정수 + 정수 = 실수 >
- 대부분의 산술 연산자에서, 정수와 실수 간에 연산 시 자동으로 실수형으로 변환
(실수가 좀 더 넓은 범위를 나타낼 수 있기 때문)
ex) print( 10 / 5 ) 하면 2.0 으로 나옴 < 정수+정수=실수
print( 10 + 5.0 ) 하면 15.0 으로 나옴 < 정수+실수=실수
▶멤버십 연산자 : in, not in
- 왼쪽이 오른쪽의 멤버인지, 멤버가 아닌지 검사하는 것.
print ("H" in "Hello") # True
print ("A" in "Hello") # False
괄호 속 왼쪽 문자 H와 A가 오른쪽 Hello에 포함되어있는지를 확인해서
포함되어 있으면 True / 아니면 False
print ("Hello" not in "Hello Python") # False
print ("Hi" not in "Hello Python") # True
괄호 속 왼쪽 문자 Hello와 Hi가 오른쪽 Hello Python에 없다고 말하는 것.
포함되어 있으면 False / 포함되어 있지 않으면 True
* 문자열 입력 여부 검사 예제 : 아무것도 입력하지 않았을때 문자열 길이가 0인 것을 이용
nickname = input("닉네임을 입력하세요: ")
print ("닉네임 입력 여부:", len(nickname) > 0)
닉네임을 입력하세요: 콩세 (입력한 닉네임) 닉네임 입력 여부 : True |
콩세 라는 닉네임을 입력했기 때문에 글자수가 있으니까 True 라고 나온다.
아무것도 입력하지 않고 엔터를 눌렀으면 False가 뜬다.
▶동일성 연산자
동등성 (equality) VS 동일성 (Identity)
동등성
- 변수의 값이 같은지 여부를 검사. (값이 문맥상 같으면 자료형이 달라도 상관없음)
- ==, != 를 사용해서 검사한다.
동일성
- 두 변수가 일치하는지 여부 검사. (값과 자료형 모두가 같은지 여부)
- is, is not을 사용해서 검사한다.
0, 0.0, ' ', " ", """""" => False로 취급할 수 있음.
1, -1, 0.1, 'hello', "False" => True로 취급할 수 있음.
- 값이 같은지 비교 (자료형이 다르더라도 값이 같으면 True)
print(0==0) / 값: 같음, 자료형: 같음(int) => True
print(0==0.0) / 값: 같음, 자료형: int, float => 값은 같으므로 True
print(0==False) / 값: 같음, 자료형: int, bool => 값은 같으므로 True
print(1==True) / 값: 같음, 자료형: int, bool => 값은 같으미로 True
- 값과 자료형 모두 같은지 비교 (값과 자료형이 모두 같아야 True, 하나라도 다르면 False)
print(0 is 0) / 값: 같음, 자료형: 같음(int) => True
print(0 is 0.0) / 값: 같음, 자료형: int, float => 값은 같지만 자료형은 다르므로 False
print(0 is not False) / 값: 같음, 자료형: int, float / is not 이니까 => True
print(1 is not True) / 값: 같음, 자료형: int, float / is not 이니까 => True
ans = 1
if ans == True:
print("실행")
ans의 값은 1이고, 이 값이 True와 같다면 "실행"을 출력하라는 뜻.
1은 int자료형이고 True는 bull자료형 이지만 값이 같기 때문에 "실행"이 뜬다.
ans = 1
if ans is True:
print("실행")
값은 같지만 자료형이 다르기 때문에 "실행"이 뜨지 않는다.
▶제어문 ( control statement )
- 프로그램의 실행 흐름을 제어하는 문장
- 블록 단위로 코드를 실행함
1. 조건문 ( conditional statement)
주어진 값 또는 조건식을 판단해서 선택적으로 실행하는 문장.
- if 문
if (bool값 또는 조건식) :
True일 경우 실행할 코드
...
...
⬇
num = int(input("0을 제외한 숫자를 입력하세요: "))
if num != 0:
print("당신이 입력한 값은", num, "입니다.")
print("잘 입력하셨습니다.")
print("프로그램 종료.")
당신이 입력한 값은 ?입니다. 잘 입력하셨습니다. 프로그램 종료. |
입력한 값이 0이 아니라면(True에 해당된다면) 위 3줄이 출력된다.
0을 입력했다면⬇
프로그램 종료. |
- else 문
num = int(input("0을 제외한 숫자를 입력하세요: "))
if num != 0:
print("당신이 입력한 값은", num, "입니다.")
print("잘 입력하셨습니다.")
else:
print("왜 0을 입력했나요?")
print("프로그램 종료.")
0을 제외한 숫자를 잘 입력하면 = True => 당신이 입력한 값은~, 잘입력하셨~, 프로그램종료가 쭉 출력된다.
0을 입력하면 = False => 왜 0을 입력~, 프로그램종료가 출력된다.
- elif 문 (else if 의 줄임말)
num = int(input("아무 정수나 입력하세요: "))
if num > 100:
print("큰 수를 입력하셨군요?")
if num > 10:
print("적당한 수를 입력하셨네요.")
if num > 0:
print("작은 수를 입력하셨네요.")
else:
print("0 이하를 입력하셨나요?")
print("프로그램 종료")
if문에서 먼저 조건을 제시하고 통과하지 못했으면 = False => 바로 프로그램 종료
elif에서 제시한 조건에 위에서부터 차례대로 대입하고
대입했으면 해당 print문 출력 + 프로그램 종료
elif도 통과하지 못했으면 else로 대입되어 0 이하를~ 출력됨.
2. match-case 문
- Python 10 버전에서 추가된 새로운 문법. 구버전에서 사용 불가.
- 규칙성이 없을 때 쓰기 좋음.
match 변수:
case 값1:
변수와 값1이 일치할 경우 실행할 블록
case 값2:
변수와 값2가 일치할 경우 실행할 블록
...
먼저 변수 하나를 작성하고, case값과 변수가 일치하면 case 아래 블록을 실행한다.
a = 10
match a:
case 10:
print("a는 10입니다.")
case 9:
print("a는 9였군요.")
case 8|7|6:
print("a는 8, 7, 6이네요.")
case _:
print("a는 뭘까요...?")
a는 10이고, a와 일치하는 변수 찾기.
a는 10입니다. 가 출력된다.
만약 a가 9라면 a는 9였군요 출력. ...
모든 케이스에 부합하지 않으면 a는 뭘까요...? 가 출력.
case 8|7|6은 8이거나 7이거나 6일 수 있는 경우, 여러가지 경우일 때 작성하는 방법.
a = 6 이면 a는 8, 7, 6이네요. 가 출력된다.
+) 조건 표현식(삼항 연산자) : 조건문을 응용한 표현식
- x if C else y
- 조건문을 한 줄로 표현하는 문법
- 표현식의 참/거짓 여부를 판별하여 값을 선택적으로 반환
time_now = 5
location = "집" if time_now >= 5 else "교실"
print("어디 있니?")
print(location, "이요.")
조건식 자체가 피연산자가 된다.
if 뒤 조건식이 True이면 앞에 있는 '집'을 / if 뒤 조건식이 False이면 뒤에 있는 '교실'을 출력한다.
집 (값1) / time_now >= 5 (조건식) / 교실 (값2) => 피연산자가 총 3개라서 삼항 연산자 라고 부르는거.
time_now = 5
location = None
if time_now >= 5:
location = '집'
else:
location ='교실'
print('어디 있니?')
print(location, '이요.')
if문으로도 작성할 수 있음.
삼항 연산자를 쓰면 코드를 더 간결하게 쓸 수 있지만
한 눈에 알아보기 힘들다는 단점이 있다.
3. 반복문
일정 횟수만큼, 또는 조건식을 만족하는 동안 블록을 반복 실행하는 문장.
- while
조건식을 만족하는 동안(=True인 동안) 반복되는 문장
num = 0
while num < 10:
print(num)
num += 1
0 1 2 3 4 5 6 7 8 9 |
num은 0이다.
num이 10 미만이라면 반복해서 출력한다.
첫번째로 0을 출력한 후 1을 더해준다.
num이 0에서 1이 되었지만, 아직 10 미만이기 때문에 또 출력한다.
출력 후 계속 1씩 더해준다.
...
9를 출력한 후 1을 더해준다
num이 10이 되었고, 10 미만이 아니기 때문에 출력을 멈춘다.
위 조건식에서 마지막 문장 (num += 1) 처럼 제어해주는 문장이 꼭 필요하다.
제어해주는 문장이 없으면 값이 True가 되고, 무한으로 계속 출력된다.
반복문 for은 220811 ②에 이어서 작성!
'K-Digital Training' 카테고리의 다른 글
220811 | ① Python / 제어문 예제 (추가) : 소수 출력, 별 찍기, 피보나치 수열 (0) | 2022.09.30 |
---|---|
220810 | ③ Python / 제어문 - 조건문(if, elif, else), match-case, 반복문(while) 예제 (0) | 2022.09.29 |
220810 | ① Python / input() 함수 / 자료형 예제 (0) | 2022.08.11 |
220809 | Python / 변수와 자료형 / 연산자 (0) | 2022.08.10 |
220808 | Python 기초 / VS Code (0) | 2022.08.09 |