본문 바로가기
Algorithm/자료구조, 알고리즘

[코딩 + 알고리즘 완주반] 5일차. 조건문, 반복문,List Comprehension, QUIZ

by newnu 2021. 3. 19.
반응형

#조건문

# 조건문

print(type(True)) # <class 'bool'>
print(type(False))

#예1
if True:
    print("Yes")

#예2
if False:
    print("Yes")

#예3
if False:
    print("No")
else:
    print("Yes2")

# 관계연산자
# >, >=, <, <=, ==, !=

a=10
b=0

print(a==b)
print(a!=b)
print(a>b)
print(a>=b)
print(a<b)
print(a<=b)

#참 거짓 종류(True,False)
# 참 : "내용",[내용],(내용),{내용},1, True
# 거짓: "", [], (), {}, 0, False

city = ""

if city:
    print(">>>>True")
else:
    print(">>>>False")

#논리 연산자
# and or not

a=100
b=60
c=15

print('and: ',a>b and b>c)
print('or: ',a>b or c>b)
print('not: ',not a>b)
print(not False)
print(not True)

#산술, 관계, 논리 연산자
# 산술 > 관계 > 논리 순서로 적용

print('ex1 : ', 5+10>0 and not 7+3==10)

score1 = 90
score2 = 'A'
if score1 >=90 and score2 =='A':
    print("합격")
else:
    print("불합격")

#다중조건문
num = 90

if num >=90:
    print("num 등급 A",num)
elif num >=80:
    print("num 등급 B",num)
elif num >=70:
    print("num 등급 C",num)
else:
    print("꽝")

# 중첩 조건문
age = 27
height = 175

if age >=20:
    if height >=170:
        print("A지망 지원 가능")
    elif height >=160:
        print("B지망 지원 가능")
    else:
        print("지원불가")
else:
    print("20세 이상 지원 가능")

#반복문

For, While

시퀀스 타입 반복

continue, break

for - else

자료구조 변환

# 반복문 
# 코딩의 핵심 -> 조건 해결 중요

# 기본 반복문  : for, while

v1 = 1
while v1<11:
    print("v1 is :",v1)
    v1+=1

for v2 in range(10):
    print("v2 is  : ",v2)

for v3 in range(1,11):
    print("v3 is  : ",v3)

# 1~100 합

sum1 = 0
cnt1 = 1

while cnt1<=100:
    sum1 += cnt1
    cnt1 +=1

print('1~100: ',sum1)
print('1~100 : ',sum(range(1,101)))
print('1~100 (2) : ',sum(range(1,101,2)))

# 시퀀스(순서가 있는) 자료형 반복
# 문자열, 리스트, 튜플, 그외 집합, 사전도 가능
#iterable : range,reversed,enumerate,filter,map,zip

names = ["Kim","Park","Cho","Choi","Yoo"]
for name in names:
    print("You are : ",name)

word = "dreams"

for s in word:
    print("Word: ",s)


my_info = {
    "name": "Kim",
    "age" :33,
    "city":"Seoul"

}
for key in my_info:
    print("my_info",key)

for key in my_info.values():
    print("my_info",key)

for key in my_info.keys():
    print("my_info",key)

for k,v in my_info.items():
    print("my_info",k,v)


name = "KennRY"

for n in name:
    if n.isupper():
        print(n.lower())
    else:
        print(n.upper())

# break
numbers = [14,3,4,7,10,24,17,2,33,15,34,36,38]
for num in numbers:
    if num ==33:
        print("found : 33!")
        break
    else:
        print("not found : 33!")

# for-else 구문 (반복문이 정상적으로 수행된 경우 else 블럭 수행 - 마지막 처리)
numbers = [14,3,4,7,10,24,17,2,37,15,34,36,38]
for num in numbers:
    if num ==33:
        print("found : 33!")
        break
    else:
        print("not found : 33!")
else:
    print("Not found 33......")

# continue (다음 차례로 넘어가기)
lt = ["1",2, 5, True, 4.3, complex(4)]

for v in lt:
    if type(v) is float:
        continue
    print("타입 : ",type(v))

name = "Niceman"
print(reversed(name))
print(list(reversed(name)))
print(tuple(reversed(name)))

# 리스트 컴프리핸션

#일반적인 방법
numbers=[]
for n in range(1,101):
     numbers.append(n)
print(numbers)

# 리스트 컴프리핸션
numbers2 = [x for x in range(1,101)]
print(numbers2)

l1 = [x for x in range(1,100) if 조건문]

# QUIZ

# 4. 다음 세 개의 숫자 중 가장 큰수를 출력하세요.(if문 사용) : 12, 6, 18
a= 12
b = 6
c = 18
# 1
if a>b:
    if a>c:
        print(a)
    elif c>a:
        print(c)
else:
    if b>c:
        print(b)
# 2   
best =a
if b>a:
    best = b
if c>b:
    best = c
print('best : ',best)

# 6. 다음 리스트 중에서 '정' 글자를 제외하고 출력하세요.
q3 = ["갑", "을", "병", "정"]
for word in q3:
    if word == "정":
        continue
    else:
        print(word,end='')
print()

# 리스트 컴프리핸션
q5 = [x for x in q3 if x!="정"]

# 7. 1부터 100까지 자연수 중 '홀수'만 한 라인으로 출력 하세요.
for i in range(1,100,2):
    print(i,end=' ')
print()

for n in range(1,101):
    if n%2 !=0:
        print(n,end=',')
print()

# 리스트 컴프리핸션
q6 = [x for x in range(1,101) if x%2 !=0]
반응형