[파이썬] 연산자 문법, for, if 제어문
by mini_min[파이썬] 연산자 문법, for, if 제어문
✔️ 연산자 문법
: print() 안에서 연산 가능
a =11
b = 2
print(a+b)
print(a-b)
print(a*b)
print(a/b) #5.5
print(a//b) #5
print(a%b) # 1
print(a**b) #121
#두정수 ? 10 5
a, b = input("두 정수?").split()
a = int(a)
b = int(b)
print(a+b)
print(a-b)
print(a*b)
print(a//b)
print("{}+{}={}".format(a,b,a+b))
print("{}-{}={}".format(a,b,a-b))
print("{}*{}={}".format(a,b,a*b))
print("{}//{}={}".format(a,b,a//b))
a = 10
a += 10
a -= 10
a *= 10
a /= 10
📓 항등 연산자
#항등 연산자
print(a is b) #true
print(a is c) #false
print(a is not c) #true
📓 멤버 연산자 : 포함 여부를 판단한다. in , not in
#멤버 연산자 : 포함 여부 판단
a = [2,3,4,5,6,7]
print(a)
print()
print(1 in a) #1이 있냐 물어보는거 : false
print(3 in a) #1이 있냐 물어보는거 : true
print(1 not in a) # true
print(3 not in a) # false
📓 멤버 연산자 포함 여부 확인
#멤버 연산자 : 포함여부 판단
members = ["kim", "lee", "hong", "jung", "choi"]
while True:
name = input("검색할 이름[엔터:종료] ? ")
if not name: break
print("회원" if name in members else "손님", "입니다.")
📓 bin(인자) : 2진수 문자열로 변환
📓 비트 연산자 : >> , << , &, |, ^, ~
a = 0b10101010
b = 0b01110011
print(a,b) # 170 115
print(bin(a),bin(b)) # 2진수 문자열로
print("a & b :" , a&b, ", " , bin(a&b)) # 34 , 0b100010
print("a | b :" , a|b, ", " , bin(a|b)) # 251 , 0b11111011
print("a ^ b :" , a^b, ", " , bin(a^b)) # 217 , 0b11011001
print("~a :" , ~a, ", " , bin(~a)) # -171 , -0b10101011
print("a >> 2 : " , a>>2, ", " , bin(a>>2)) # 42 , 0b101010
print("a << 2 : " , a<<2, ", " , bin(a<<2)) # 680 , 0b1010101000
📓 윤년, 평년 찍기
a = int(input("년도?"))
s = "홀수" if a%2 else "짝수"
print("{0}년은 {1}년도 입니다".format(a, s))
#윤년, 평년 찍기
a = int(input("년도?"))
s = "윤년" if a%4 and a%100 or a%400 else "평년"
print("{0}년은 {1}입니다.".format(a,s))
#isLeapYear
isLeapYear = a%400==0 or a%4==0 and a%100!=0
s = "윤년" if isLeapYear else "평년"
print(f'{a}년은 "{s}"입니다.')
📓 if 문 : 들여쓰기를 잘해야한다. 중요 또 중요!
if / elif / else
n = int(input("점수 ?"))
s = ""
if n>=90:
s = "A"
elif n>=80:
s = "B"
elif n>=70:
s = "C"
elif n>=50:
s = "D"
else:
s = "F"
print(f"{n} : {s}")
print("------")
📓 3개의 숫자 입력받아 적은수에서 큰수 출력하기
# 세 개의 숫자를 입력 받아 적은수에서 큰수로 출력
a,b,c = map(int, input("세 개의 정수 입력 ? ").split())
temp = ""
if a > b: a, b = b, a
if a > c: a, c = c, a
if b > c: b, c = c, b
print(a,b,c)
📓 두 수 입력받아 사칙연산하기
# 두 수와 연산자를 입력 받아 사칙연산
# 두 수 ?
a,b = map(int, input("두 수?").split())
op = input("연산자 ?")
s = ""
if op=="+": s=a+b
if op=="-": s=a-b
if op=="*": s=a*b
if op=="/": s=a/b
print(f'{a} {op} {b} = {s}')
📓 while 문, while True 를 주면 무한루프문을 만들 수 있다.
s = 0
n = 0
while n < 10:
n+=1
s+=n
print("결과 : {}".format(s))
# 무한루프
while True:
num = int(input("정수[종료:0] ? "))
if not num: break
if num % 2:
print(f"{num} : 홀수입니다.")
else:
print(f"{num} : 짝수입니다.")
📓 년도와 월을 입력 받아 월의 마지막 날짜 구하기
# 년도와 월을 입력 받아 월의 마지막 날짜를 구하기
# 무한 루프 이용. 단 년 또는 월이 0이면 종료
# 마지막 날짜는 컬렉션 타입을 사용하지 않고 조건 표현식으로 구하기
# 년도에 2022 월에 12 입력한 경우 출력
# 2022년 12월 마지막 날짜는 31일
while True:
y =int(input("년도 ?"))
m =int(input("월 ?"))
if not y or not m: break
last = (29 if y%400==0 or y%4==0 and y%100 else 28) \
if m==2 else(30 if m%2 else 31)\
if m>=8 else (31 if m%2 else 30)
print(f"{y}년 {m}월의 마지막날짜는 {last}일 입니다.")
📓 똑같은 문제 : list 이용하여 출력하기
# 년도와 월을 입력 받아 월의 마지막 날짜를 구하기
# 무한 루프 이용. 단 년 또는 월이 0이면 종료
# list 이용
# 년도에 2022 월에 12 입력한 경우 출력
# 2022년 12월 마지막 날짜는 31일
while True:
y=int(input("년도 ?"))
m=int(input("월 ?"))
if not y or not m: break
day = [31,28,31,30,31,30,31,31,30,31,30,31]
day[1] = 29 if y%400==0 or y%4==0 and y%100 else 28
print(f"{y}년 {m}월의 마지막 날짜는 {day[m-1]}입니다.")
📓 수를 입력받아 약수와 갯수 구하기
# 수를 입력 받아 약수와 약수의 개수를 출력한다.
# 입력 받은 수가 0이면 종료
# 실행 예
# 수 ? 30
# 1 2 3 5 6 10 15 30
# 개수 : 8개
while True:
num = int(input("입력수 ? "))
if not num :break
if num < 0:continue
i = 1
cnt = 0
print("약수 :", end=' ')
while i<=num :
if num%i ==0:
cnt+=1
print(i, end=' ')
i+=1
print(f"\n개수 : {cnt}")
📓 ✨ 피보나치 수열 구하기
# 1부터 피보나치수를 20개 출력
# 단, 한줄에 5개 출력하고 수는 7칸으로 출력
# 1 1 2 3 5
a = 0
b = 1
row = 0
for cnt in range(20):
c = a
a = b
b = c + b
row += 1
print(('%7d')%a, end='')
if row % 5 == 0: print()
# while 문 써도 ㄱㅊㄱㅊ
# print("{:7d}".format(a), end="")
# 1부터 피보나치수를 20개 출력
# 단, 한줄에 5개 출력하고 수는 7칸으로 출력
# 1 1 2 3 5
a1 = 1
a2 = 1
row = 0
for cnt in range(20):
row += 1
print(('%7d')%a1, end='')
a1,a2 = a2, a1+a2
if row % 5 == 0: print()
# while 문 써도 ㄱㅊㄱㅊ
# print("{:7d}".format(a), end="")
📓 2 ~ 100 사이의 수 중에서 소수를 한 줄에 5개씩 출력하기
# 2 ~ 100 사이의 수 중에서 소수를 한줄에 5개씩 출력
num = 2
cnt = 0
while num < 100:
i = 2
flag = True
while i <= num // 2:
if num % i == 0:
flag = False
break
i += 1
if flag:
print(("%3d")%num, end= " ")
cnt += 1
if cnt % 5 == 0: print()
num += 1
📓 range(인자) : 숫자 리스트를 자동으로 만들어주는 함수이다.
for 문과 함께 자주 사용되는 함수로 파라미터의 숫자에 해당되는 범위의 값을 반복 가능한 객체로 만들어 반환한다.
1~3개의 파라미터를 가진다.
range(처음시작, 끝나는수, step)
print(range(5)) # range(0, 5)
print(type(range(5))) # <class 'range'>
print(list(range(5))) # [0, 1, 2, 3, 4]
print(tuple(range(5))) # (0, 1, 2, 3, 4)
print(set(range(5))) # {0, 1, 2, 3, 4}
for i in range(5):
print(i, end=' ') # 0 1 2 3 4
print()
print(list(range(5,10))) # start ~ stop-1 [5, 6, 7, 8, 9]
print(list(range(1,10,2))) # start, stop, step [1, 3, 5, 7, 9]
print(list(range(10,0,-2))) # start, stop, step [10, 8, 6, 4, 2]
📓 enumerate() : 수를 열거한다.
리스트가 있는 경우 순서와 리스트의 값 (순서, 값) 을 전달하는 기능을 가진다.
순서가 있는 자료형 (list, set, tuple. dictionary, string)을 입력받아 인덱스 값을 포함하는 enumerate 객체를 반환한다.
보통 for 문과 함께 자주 사용된다.
data = enumerate((1,2,3))
print(data, type(data))
for i,value in data:
print(i, ":", value)
print()
data = enumerate({1,2,3})
for i,value in data:
print(i, ":", value)
print()
data = enumerate([1,2,3])
for i,value in data:
print(i, ":", value)
print()
d = {"이름":"김자바", "나이":20}
data = enumerate(d)
for i, key in data:
print(i, ":", key)
print()
data = enumerate("자바 파이썬")
for i, value in data:
print(i, ":", value)
print()
📓 for 문장
for 변수 in Collection_Data : 형식
아래 처럼 대부분의 컬렉션 유형의 데이터를 출력할 수 있다. string도 글자 하나하나 변수에 담아서 출력가능
for i in (1,2,3):
print(i, end=' ')
print()
for i in {1,2,3}:
print(i, end=' ')
print()
for i in [1,2,3]:
print(i, end=' ')
print()
d = {"name":"김자바", "age":20}
for i in d:
print(i, ":", d[i])
print()
for i in "Phython":
print(i, end=' ')
print()
for i in []:
print(i)
else:
print("데이터가 없습니다.")
📓 [식 for 변수 in Collection_data if 조건]
# [식 for 변수 in Collection_data if 조건]
list1 = [i**2 for i in range(1,11)]
print(list1)
list1 = [i for i in range(1,11) if i%2]
print(list1)
list1 = [i for i in range(1,11) if not i%2]
print(list1)
list1 = [i*j for i in range(1,10)
for j in range(1,10)]
for i in range(0, len(list1)):
print("{:3d}".format(list1[i]), end=' ')
if(i+1)%9 ==0: print()
📓 for 문으로 구구단 출력하기
# 2~9단까지 구구단
# for 문장을 3번 써서 2,3,4,5 / 6,7,8,9 단 나오도록
for i in range(1,10):
for j in range(2,10):
print(f"{j} * {i} = {i*j}\t", end='')
print()
'Python' 카테고리의 다른 글
[파이썬] 클래스 2 (0) | 2022.12.25 |
---|---|
[파이썬] 클래스 (0) | 2022.12.18 |
[파이썬] 함수 (0) | 2022.12.18 |
[파이썬] 별찍기, selection sort, bubble sort (0) | 2022.12.18 |
[파이썬] 기본 문법 (0) | 2022.12.12 |
블로그의 정보
개발자 미니민의 개발로그
mini_min