728x90
반응형

참고자료: https://wikidocs.net/21

 

03-2 while문

`[동영상 강의]` : [점프 투 파이썬 03-2 while문](https://www.youtube.com/watch?v=sganLBgH-oc&list=PLGSQkvB9T6rvn…

wikidocs.net

 


# 반복문 while

# while 문의 기본 구조

while 조건문:
    수행할_문장1
    수행할_문장2
    수행할_문장3
    ...




treeHit = 0
while treeHit < 10:
    treeHit = treeHit +1
    print("나무를 %d번 찍었습니다." % treeHit)
    if treeHit == 10:
        print("나무 넘어갑니다.")


나무를 1번 찍었습니다.
나무를 2번 찍었습니다.
나무를 3번 찍었습니다.
나무를 4번 찍었습니다.
나무를 5번 찍었습니다.
나무를 6번 찍었습니다.
나무를 7번 찍었습니다.
나무를 8번 찍었습니다.
나무를 9번 찍었습니다.
나무를 10번 찍었습니다.
나무 넘어갑니다.


# treeHit = treeHit + 1은 프로그래밍을 할 때 매우 자주 사용하는 기법이다. 

treeHit 값을 1만큼씩 증가시킬 목적으로 사용하며 treeHit += 1처럼 작성해도 된다.


# while 문 만들기

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

number = 0
while number != 4:
    print(prompt)
    number = int(input())

'''
1. Add
2. Del
3. List
4. Quit

Enter number:
'''

# number = int(input())는 사용자의 숫자 입력을 받아들이는 것


# while 문 강제로 빠져나가기 :  break

coffee = 10
money = 300
while money:
    print("돈을 받았으니 커피를 줍니다.")
    coffee = coffee -1
    print("남은 커피의 양은 %d개입니다." % coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지합니다.")
        break


# coffee.py
coffee = 10
while True:
    money = int(input("돈을 넣어 주세요: "))
    if money == 300:
        print("커피를 줍니다.")
        coffee = coffee -1
    elif money > 300:
        print("거스름돈 %d를 주고 커피를 줍니다." % (money -300))
        coffee = coffee -1
    else:
        print("돈을 다시 돌려주고 커피를 주지 않습니다.")
        print("남은 커피의 양은 %d개 입니다." % coffee)
    if coffee == 0:
        print("커피가 다 떨어졌습니다. 판매를 중지 합니다.")
        break


# while 문의 맨 처음으로 돌아가기 : continue
a = 0
while a < 10:
    a = a + 1
    if a % 2 == 0: continue
    print(a)

1
3
5
7
9


# 위는 1부터 10까지의 숫자 중 홀수만 출력하는 예이다. a가 10보다 작은 동안 a는 1만큼씩 계속 증가한다. 

a % 2 == 0(a를 2로 나누었을 때 나머지가 0인 경우)이 참이 되는 경우는 a가 짝수일 때이다. 

즉, a가 짝수이면 continue 문을 수행한다. 

이 continue 문은 while 문의 맨 처음인 조건문(a < 10)으로 돌아가게 하는 명령어이다. 

따라서 위 예에서 a가 짝수이면 print(a) 문장은 수행되지 않을 것이다.



# 무한 루프(endless loop)

while True: 
    수행할_문장1 
    수행할_문장2
    ...


while True:
    print("Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.")

'''
Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
Ctrl+C를 눌러야 while문을 빠져나갈 수 있습니다.
'''





728x90
반응형
728x90
반응형

참고자료: https://wikidocs.net/20

 

03-1 if문

`[동영상 강의]` : [점프 투 파이썬 03-1 if문](https://www.youtube.com/watch?v=usIsZ3CCqkQ&list=PLGSQkvB9T6rvnDop…

wikidocs.net

 

 

# 조건문 if문

# ‘돈이 있으면 택시를 타고 가고, 돈이 없으면 걸어간다.’
money = True
if money:
    print("택시를 타고 가라")
else:
    print("걸어 가라")

 

 


# if문의 기본 구조

if 조건문:
    수행할_문장1
    수행할_문장2
    ...
else:
    수행할_문장A
    수행할_문장B
    ...


# 들여쓰기 주의!
    

조건문 다음에 콜론(:)을 잊지 말자!
if 조건문 뒤에는 반드시 콜론(:)이 붙는다. 어떤 특별한 의미가 있다기보다는 파이썬의 문법 구조이다.

앞으로 배울 while이나 for, def, class도 역시 문장의 끝에 콜론(:)이 항상 들어간다.

초보자들은 이 콜론(:)을 빠뜨리는 경우가 많으므로 특히 주의하자.

파이썬이 다른 언어보다 보기 쉽고 소스 코드가 간결한 이유는 

바로 콜론(:)을 사용하여 들여쓰기를 하도록 만들었기 때문이다. 

하지만 이는 숙련된 프로그래머들이 파이썬을 처음 접할 때 제일 혼란스러워하는 부분이기도 하다. 

다른 언어에서는 if 문에 속한 문장들을 {}로 감싸지만, 파이썬에서는 들여쓰기로 해결한다는 점을 기억하자.

 



# 비교연산자

 

비교연산자 설명
x < y x가 y보다 작다.
x > y x가 y보다 크다.
x == y x와 y가 같다.
x != y  x와 y가 같지 않다.
x >= y x가 y보다 크거나 같다.
x <= y x가 y보다 작거나 같다.



x = 3
y = 2
x > y
True

x < y
False

x == y
False

x != y
True

 


# 만약 3000원 이상의 돈을 가지고 있으면 택시를 타고 가고, 그렇지 않으면 걸어가라.

money = 2000
if money >= 3000:
    print("택시를 타고 가라")
else:
    print("걸어가라")
#걸어가라

 

 

 

 


# and, or, not

 

연산자 설명
x or y  x와 y 둘 중 하나만 참이어도 참이다.
x and y x와 y 모두 참이어야 참이다.
not x x가 거짓이면 참이다.



# 돈이 3000원 이상 있거나 카드가 있다면 택시를 타고 가고, 그렇지 않으면 걸어가라.

money = 2000
card = True
if money >= 3000 or card:
    print("택시를 타고 가라")
else:
    print("걸어가라")
#택시를 타고 가라

 


# in, not in

 

 

in not in
x in 리스트 x not in 리스트
x in 튜플 x not in 튜플
x in 문자열 x not in 문자열

 



# 리스트
1 in [1, 2, 3]
True
1 not in [1, 2, 3]
False


# 튜플
'a' in ('a', 'b', 'c')
True
'j' not in 'python'
True


# 만약 주머니에 돈이 있으면 택시를 타고 가고, 없으면 걸어가라.

pocket = ['paper', 'cellphone', 'money']
if 'money' in pocket:
    print("택시를 타고 가라")
else:
    print("걸어가라")
#택시를 타고 가라

 


# 조건문에서 아무 일도 하지 않게 설정하고 싶다면? pass

# 주머니에 돈이 있으면 가만히 있고, 주머니에 돈이 없으면 카드를 꺼내라.
pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket:
    pass 
else:
    print("카드를 꺼내라")

 



# 다양한 조건을 판단하는 elif

# 주머니에 돈이 있으면 택시를 타고 가고, 

주머니에 돈은 없지만 카드가 있으면 택시를 타고 가고, 

돈도 없고 카드도 없으면 걸어가라.

pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
    print("택시를 타고가라")
else:
    if card:
        print("택시를 타고가라")
    else:
        print("걸어가라")
#택시를 타고가라

# 위 코드를 더 간단히 쓰면,

pocket = ['paper', 'cellphone']
card = True
if 'money' in pocket:
    print("택시를 타고가라")
elif card: 
    print("택시를 타고가라")
else:
    print("걸어가라")
#택시를 타고가라

# 즉, elif는 이전 조건문이 거짓일 때 수행된다. if, elif, else를 모두 사용할 때 기본 구조는 다음과 같다.

if 조건문:
    수행할_문장1 
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
elif 조건문:
    수행할_문장1
    수행할_문장2
    ...
    ...
else:
    수행할_문장1
    수행할_문장2
    ... 


# if 문을 한 줄로 작성하기
if 'money' in pocket:
    pass 
else:
    print("카드를 꺼내라")


# 한줄로 변경하면
pocket = ['paper', 'money', 'cellphone']
if 'money' in pocket: pass
else: print("카드를 꺼내라")
# if 문 다음에 수행할 문장을 콜론(:) 뒤에 바로 적었다. else 문 역시 마찬가지이다.


# 조건부 표현식
# score가 60 이상일 경우 message에 문자열 "success", 아닐 경우에는 문자열 "failure"를 대입하는 코드이다.

if score >= 60:
    message = "success"
else:
    message = "failure"

# 조건부 표현식
message = "success" if score >= 60 else "failure"
# 변수 = 조건문이_참인_경우의_값 if 조건문 else 조건문이_거짓인_경우의_값



728x90
반응형
728x90
반응형

중국어회화 (10)


餐厅服务员:你们现在点菜吗?
cāntīngfúwùyuán :nǐ men xiàn zài diǎn cài ma ?
식당점원: 지금 주문하시겠습니까?

 


珍妮弗:是的,请给我来一份火腿三明治。
Zhēnnīfú: shì de ,qǐng gěi wǒ lái yī fèn huǒ tuǐ sān míng zhì 。
제니퍼: 네, 저는 1인분의 햄 샌드위치 주세요.

*火腿(huǒtuǐ) 햄



米娜:来两份。
mǐnà: lái liǎng fèn 。
미나: 2인분이요!

 

 


餐厅服务员:好的,你们想喝点什么?
cāntīngfúwùyuán :hǎo de ,nǐ men xiǎng hē diǎn shénme ?
식당점원: 네, 음료는 어떤걸로 하시겠어요?



珍妮弗:请给我来杯橙汁。
Zhēnnīfú: qǐng gěi wǒ lái bēi chéng zhī 。
제니퍼: 저는 (한 잔의) 주스 주세요.



米娜:我来杯牛奶。
mǐnà: wǒ lái bēi niú nǎi 。
미나: 저는 우유요.

*牛奶(niúnǎi) 우유



餐厅服务员:两份火腿三明治,一杯橙汁,一杯牛奶。
cāntīngfúwùyuán :liǎng fèn huǒ tuǐ sān míng zhì ,yī bēi chéng zhī ,yī bēi niú nǎi 。
식당점원: 2인분의 햄 샌드위치, 주스 한 잔, 우유 한잔.



珍妮弗:是的。
Zhēnnīfú: shì de 。
제니퍼: 네.

 



餐厅服务员:好的。我马上去取。
cāntīngfúwùyuán :hǎo de 。wǒ mǎ shàng qù qǔ 。
식당점원: 네. 제가 곧 가져다 드릴게요.

*马上(mǎ shàng) 곧. 즉시. 바로. 금방
*去取(qùqǔ) 찾아가다

 



收银员:用餐还顺利吧?
shōuyínyuán :yòng cān hái shùn lì ba ?
계산원: 음식은 괜찮으셨습니까?

*顺利(shùnlì) 순조롭다. 일이 잘 되어가다

 



珍妮弗:很好,谢谢。
Zhēnnīfú: hěn hǎo ,xiè xiè 。
제니퍼: 네. 감사합니다

 


收银员:你们总共消费了25,000元。
shōuyínyuán :nǐ men zǒng gòng xiāo fèi le 25,000yuán 。
계산원: 총 25,000위안 입니다. (당신들은 총 25,000위안을 소비했습니다)

*消费(xiāofèi) 소비하다
*两万五千(liǎng wàn wǔ qiān) <읽는 법 표기>



珍妮弗:给你。
Zhēnnīfú: gěi nǐ 。
제니퍼: 여기요.



收银员:谢谢。欢迎下次光临。
shōuyínyuán :xiè xiè 。huān yíng xià cì guāng lín 。
계산원: 고맙습니다.다음번에 또 오세요.(다음번 광림을 환영합니다)

*欢迎(huānyíng) 환영하다
*光临(guānglín) 광림하시다 [남이 찾아오는 일을 높여 이르는 말]



728x90
반응형

'Language Study > Chinese' 카테고리의 다른 글

중국어 회화 (12)  (1) 2024.01.30
중국어 회화 (11)  (2) 2024.01.26
중국어 회화 (9)  (1) 2024.01.22
중국어 회화 (8)  (0) 2024.01.20
중국어 회화 (7)  (0) 2024.01.16
728x90
반응형

2장 되새김문제 p.116~p.119

 

# 1. 평균 점수 구하기
a, b, c = 80, 75, 55
d = a+b+c
e = d / 3
print(e)
70.0

# 2. 홀수,짝수 판별하기
# 자연수 13이 홀수인지, 짝수인지 판별할 수 있는 방법에 대해 말해 보자.
a = 13 % 2
print(a)
# 짝수로 나누었을때 나머지가 있으면 홀수이다.


# 3. 주민등록번호 나누기
# 홍길동 씨의 주민등록번호는 881120-1068234 이다. 

홍길동 씨의 주민등록번호를 연월일(YYYYMMDD)부분과 그 뒤의 숫자 부분으로 나누어 출력해보자.
pin = "881120-1068234"
yyyymmdd = pin[:6]
num = pin[7:]
print(yyyymmdd)
print(num)


# 4. 주민등록번호 인덱싱
# 주민등록번호 뒷자리의 맨 첫 번째 숫자는 성별을 나타낸다. 

주민등록번호에서 성별을 나타내는 숫자를 출력해보자.
pin = "881120-1068234"
print(pin[7])

# 5. 문자열 바꾸기
# 다음과 같은 문자열 a:b:c:d가 있다. 문자열의 replace함수를 사용하여 a#b#c#d로 바꿔 출력해보자.
a = "a:b:c:d"
b = a.replace(":","#")
print(b)

# 6. 리스트 역순 정렬하기
# [1,3,5,4,2] 리스트를 [5,4,3,2,1]로 만들어 보자.
a = [1, 3, 5, 4, 2]
a.sort()
a.reverse()
print(a)

# 7. 리스트를 문자열로 만들기
# ['Life', 'is', 'too', 'short'] 리스트를 Life is too short 문자열로 만들어 출력해 보자.
a = ['Life', 'is', 'too', 'short']
result = a.join()  # --> 답: result = " ".join(a)
print(result)


# 8. 튜플 더하기
# (1,2,3) 튜플에 값 4를 추가하여 (1,2,3,4)를 만든 후 출력해 보자.
a = (1,2,3)
a = a + b(4) # --> 답: a = a + (4,)
print(a)
# a 튜플에 (4,)라는 튜플을 더하면 된다. 단, 이 때 만들어지는 a+(4,)의 결과는 a 값이 변경되는 것이 아니라(튜플은 그 값을 변경할 수 없다) 새로운 튜플이 생성되고 그 값이 a 변수에 대입되는 것임을 유념하자.

# 9. 딕셔너리의 키
# 다음과 같은 딕셔너리 a가 있다.
# a = dict()
# a
# {}

# 다음 중 오류가 발생하는 경우를 고르고, 그 이유를 설명해 보자.
# a['name'] = 'python'
# a[('a',)] = 'python'
# a[[1]] = 'python' --> 딕셔너리의 키로 변하는 값을 사용할 수 없기 때문이다. 여기서 키로 사용된 [1]은 리스트 이므로 변하는 값이다. 다른 예에서 키로 사용된 문자열, 튜플, 숫자형은 변하지 않는 값이므로 딕셔너리의 키로 사용이 가능하다.
# a[250] = 'python'


# 10. 딕셔너리 값 추출하기
# 딕셔너리 a에서 'B'에 해당하는 값을 추출해 보자.
a = {'A':90, 'B':80, 'C':70}
result = a.pop(1) # --> 답: result = a.pop('B')
print(a)
print(result)

# 11. 리스트에서 중복 제거하기
# a 리스트에서 중복 숫자를 제거해 보자.
a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
aSet = set(a)
b = list(aSet)
print(b)

# 12. 파이썬 변수
# 파이썬은 다음처럼 동일한 값에 여러 개의 변수를 선언할 수 있다.
# 다음과 같이 a,b 변수를 선언한 후 a의 두 번째 요솟값을 변경하면 b값은 어떻게 될까?
# 그리고 이런 결과가 나타나는 이유를 설명 해보자.
# a = b = [1, 2, 3]
# a[1] = 4
# print(b)

# b = [1,2,3] 객체의 주소값이 다르기 때문에
# --> 답: [1,4,3]이 출력된다. a와b 변수는 모두 동일한 [1,2,3]이라는 리스트 객체를 가리키고 있기 때문이다.

728x90
반응형
728x90
반응형

참고자료: https://wikidocs.net/18

 

02-8 자료형의 값을 저장하는 공간, 변수

`[동영상 강의]` : [점프 투 파이썬 02-8 자료형의 값을 저장하는 공간, 변수](https://www.youtube.com/watch?v=yQ7j3hVmrwc&list=P…

wikidocs.net

 

# 변수
a = 1
b = "python"
c = [1, 2, 3]
# 변수_이름 = 변수에_저장할_값

a = [1, 2, 3]
b = a

print(id(a))
4303029896
print(id(b))
4303029896

print(a is b)  # a와 b가 가리키는 객체가 같을까?
True

# b 변수를 생성할 때 a 변수의 값을 가져오면서 a와는 다른 주소를 가리키도록 만들기

# [:] 이용하기
a = [1, 2, 3]
b = a[:]
a[1] = 4
print(a)
[1, 4, 3]
print(b)
[1, 2, 3]

# copy 모듈 이용하기
from copy import copy
a = [1, 2, 3]
b = copy(a) # = b = a[:]

print(b is a)
False

a = [1, 2, 3]
b = a.copy()
b is a
False


# 변수를 만드는 여러가지 방법

# 튜플에 대입하기
a, b = ('python', 'life')
(a, b) = 'python', 'life'

# 리스트로 변수 만들기
[a, b] = ['python', 'life']
a = b = 'python'

# 변수 값을 서로 바꾸기
a = 3
b = 5
a, b = b, a
print(a)
5
print(b)
3

728x90
반응형

'Data Analysis & Engineer > Python' 카테고리의 다른 글

python 제어문: 조건문 if문  (0) 2024.01.24
python 2장 되새김문제  (1) 2024.01.22
python 자료형: 불  (0) 2024.01.15
python 자료형: 집합  (2) 2024.01.14
python 자료형: 딕셔너리  (1) 2024.01.12

+ Recent posts