※ AND, OR, NOT

다른 언어에서 &&, ||, ! 처럼 사용하는 것에 비해 파이썬에서는 다음과 같이 사용한다.

and, or, not

이를 이용한 if문을 다음과 같이 만들 수 있다.

money = 10000
card = True

if money >= 15000 or card:
    print("restauraunt")   # <= 이거 출력
else:
    print("CU")

 

 

※ pass

조건문에서 아무일도 일어나지 않게 설정하고 싶을 때 사용하는 키워드

a = [1, 2, 3]

if 1 in a:
    pass   
else:
    print("not here")

 

 

 

※ 리스트, 튜플, 문자열과 관련된 in 조건문

다른 언어와 달리 파이썬이 갖는 특이한 조건문으로 in과 not in을 이용하는 조건문이 있다.

str = "Python is nice"

if "is" in str:
    print("It's here")   # <= 이거 출력
else:
    print("not here")
a = [1, 2, 3]

if 1 in a:
    print("It's here")   # <= 이거 출력
else:
    print("not here")

 

 

 

 

※ 조건부 표현식

마치 3항연산자처럼 다음과 같은 형식을 갖고 있다.

조건이 참일 때 if  조건문 else 조건이 거짓일 때
a = [1, 2, 3]

print("It's here") if 1 in a else print("not here")

 

 

 

 

 

 

※ while문을 이용한 조건문

prompt = """
1. Add  2. Del  3. List 4. Quit
Enter num: """

num = 0

while num != 4:
    print(prompt)
    num = int(input())

 

 

 

※ for문을 이용한 조건문

§ for문의 기본구조

for i in 리스트, 튜플, 문자열:
    수행문장

Ex-1)

a = ['one', 'two', 'three']

for i in a:
    print(i)

#---출력---#
one
two
three

 

Ex-2)

a = [(1,2), (3,4), (5,6)]
for (first, last) in a:
    print(first + last)

#---출력---#
3
7
11

이는 튜플을 사용한 변수대입 방법과 매우 비슷하다.

(first, last) = (1,2)

 

 

Ex-3)

marks = [90, 25, 67, 45, 80]

number = 0
for mark in marks:
    number = number +1
    if mark >= 60:
        print("%d번 학생은 합격입니다." % number)
    else:
        print("%d번 학생은 불합격입니다." % number)
        
#--------출력--------#
1번 학생은 합격입니다.
2번 학생은 불합격입니다.
3번 학생은 합격입니다.
4번 학생은 불합격입니다.
5번 학생은 합격입니다.

 

 

 

※ for문과 함께 자주 사용하는 range 함수 

§ range(시작 숫자, 끝 숫자)

이때, 끝 숫자는 포함되지 않는다.

 

Ex-1)

add = 0
for i in range(1, 11):
    add = add + i
print(add)  # 55출력

 

Ex-2)

marks = [90, 25, 67, 45, 80]

number = 0 
for mark in marks: 
    number = number +1 
    if mark < 60:
        continue 
    print("%d번 학생 축하합니다. 합격입니다. " % number)

#--------출력--------#
1번 학생 축하합니다. 합격입니다.
3번 학생 축하합니다. 합격입니다.
5번 학생 축하합니다. 합격입니다.

 

marks = [90, 25, 67, 45, 80]
for number in range(len(marks)):
    if marks[number] < 60:
        continue
    print("%d번 학생 축하합니다. 합격입니다." % (number+1))

#--------출력--------#
1번 학생 축하합니다. 합격입니다.
3번 학생 축하합니다. 합격입니다.
5번 학생 축하합니다. 합격입니다.

 

 

Ex-3)

end=" "은 print가 출력할 때 개행처리를 하지 않고 계속 처리하게 한다.

for i in range(2,10):        # 1번 for문
     for j in range(1, 10):   # 2번 for문
         print(i*j, end=" ")
     print()  # 단이 종료되면 결과값을 다음줄에 출력하게 함

#--------출력--------#
2 4 6 8 10 12 14 16 18
3 6 9 12 15 18 21 24 27
4 8 12 16 20 24 28 32 36
5 10 15 20 25 30 35 40 45
6 12 18 24 30 36 42 48 54
7 14 21 28 35 42 49 56 63
8 16 24 32 40 48 56 64 72
9 18 27 36 45 54 63 72 81

 

 

 

 

 

※ 리스트 안에 for문 포함 (리스트 내포)

a = [1,2,3,4]
result = []
for num in a:
    result.append(num*3)

print(result)

#--------출력--------#
[3, 6, 9, 12]

이 코드를 다음과 같이 표현할 수 있다.

a = [1,2,3,4]
result = [num * 3 for num in a]

print(result)

#--------출력--------#
[3, 6, 9, 12]

 

 

만약 짝수 숫자에만 3을 곱하고 싶다면?

리스트 내포 안에 if조건문을 사용!

a = [1,2,3,4]
result = [num * 3 for num in a if num % 2== 0]

print(result)

#--------출력--------#
[6, 12]

 

이는 다음과 같이도 사용할 수 있다.

result = [x * y for x in range(2,10)
          for y in range(1,10)]

print(result)

#--------출력--------#
[2, 4, 6, 8, 10, 12, 14, 16, 18, 3, 6, 9, 12, 15, 18, 21, 24, 27, 4, 8, 12, 16, 20, 24, 28, 32, 36, 5, 10, 15, 20, 25, 30, 35, 40, 45, 6, 12, 18, 24, 30, 36, 42, 48, 54, 7, 14, 21, 28, 35, 42, 49, 56, 63, 8, 16, 24, 32, 40, 48, 56, 64, 72, 9, 18, 27, 36, 45, 54, 63, 72, 81]

+ Recent posts