본문 바로가기

Programming

[Python][문법] 기초 - 8. 연습

반응형
#!/usr/bin/env python
# coding: utf-8

# # 연습: 파이썬 기초문법

# ---

# In[ ]:


money = 10000


if money > 3000:
    print('택시타기')
    print('카카오택시 콜')
else:
    print('버스타기')
    print('걸어가기')


# In[ ]:


is_there_money = True
if is_there_money:
    print('택시타기')
else:
    print('버스타기')


# In[ ]:


money = 3000

if money == 3000:
    print('버스타기')
else:
    print('택시타기')


# In[ ]:


age = 60

if age >= 50:
    print('%d살: 50대 이상!' % age)
elif 40 <= age < 50:
    print('{}살: 40대!'.format(age))
elif 30 <= age < 40:
    print('{}살: 30대!'.format(age))
else:
    print('{}살: 20대나 10대군요?'.format(age))


# ---

# In[ ]:


increment = 0

while increment < 10:
    print(increment)
    increment += 1


# In[ ]:


increment = 10

while increment > 0:
    print(increment)
    increment -= 1


# In[ ]:


increment = 10

while True:
    print(increment)
    increment -= 1
    if increment == 0:
        break


# In[ ]:


range(4)


# In[ ]:


for item in range(4):
    print(item)


# In[ ]:


for item in range(1, 4):
    print(item)


# In[ ]:


for item in range(1, 10, 2):
    print(item)


# In[ ]:


for item in ['냉장고', '세탁기', '선풍기']:
    print(item)


# In[ ]:


for item in '세탁기':
    print(item)


# > **Q. 반복문, 조건문을 이용해서 아래 문제를 풀어보세요.**
# > - 놀이공원 입장비를 계산해보세요!
# - 입장비는 나이에 따라 다릅니다.
# - 사용자로부터 입장할 사람의 수를 무한대로 받을 수 있습니다.
# - 사용자가 엔터를 입력하면 끝나고 지금까지 구한 입장비의 총합을 구해서 출력합니다.

# 알고리즘 (개발 순서)
# 1. 먼저 고객의 나이를 받아 변수에 할당해둔다.
# 2. 해당 변수의 값이 빈값이 아닌동안 아래 내용을 계속 실행한다.
# 3. 조건문을 이용해서 해당 변수의 값이 연령대에 따라 total_price에 합산될 수 있도록 분기처리한다.
# 4. 다 합산되었으면 다시 사용자로부터 값을 입력받아 해당 변수에 할당한다.

# In[ ]:


# 가격
BABY_PRICE  = 1000  # 유아
CHILD_PRICE = 2000  # 청소년
ADULT_PRICE = 3000  # 성인


# In[ ]:


# 연령대
BABY_LIMIT  = 2   # 2세 이하는 1000원
CHILD_LIMIT = 18  # 18세 이하는 2000원
ADULT_LIMIT = 60  # 60세 이하는 3000원, 60세 이후부터 무료


# In[ ]:


total_price = 0
age = input('고객의 나이를 입력하세요. (엔터는 종료)')

while age != '':
    age = int(age)
    if age <= BABY_LIMIT:
        total_price += BABY_PRICE
    elif age <= CHILD_LIMIT:
        total_price += CHILD_PRICE
    elif age <= ADULT_LIMIT:
        total_price += ADULT_PRICE
   
    age = input('고객의 나이를 입력하세요. (엔터는 종료)')

print('총 합산 금액은 %d 입니다.' % total_price)


# In[ ]:


a = 100
b = 10
c = 20
a = a + c
a += 1
a++
c++
c#
print(a)


# ---

# In[ ]:


name = "파이썬기본문법"


# In[ ]:


for n in name:
    print(n)


# In[ ]:


for n in name:
    print(n, end='')


# In[ ]:


print('aaa', end = ' ')
print('bbb')


# In[ ]:


for idx, n in enumerate(name):
    print(idx, n)


# In[ ]:


for k, v in [(1,2),(3,4)]:
    print(k, v)


# > **Q. 포수로 시작하는(startswith) 선수를 출력하라**

# In[ ]:


players = ['투수 임찬국', '투수 류제국 ', '내야수 오진환 ', ' 내야수 가르시아', ' 포수 정상호 ']


# In[ ]:


for item in players:
    item = item.strip()
    if item.startswith('포수'):
        print(item)


# > **Q. 오진환 -> 오지환으로 바꾸어 출력해 보세요.**

# In[ ]:


players = ['투수 임찬국', '투수 류제국 ', '내야수 오진환 ', ' 내야수 가르시아', ' 포수 정상호 ']


# In[ ]:


for item in players:
    item = item.strip()
    if item.endswith('오진환'):
        print(item.replace('진', '지'))


# In[ ]:


for item in players:
    item = item.strip()
    if item in ('내야수 오진환'):
        print(item.replace('진', '지'))


# > **Q. 리스트에 있는 원소 중 문자값/Null을 제거한 리스트를 출력하라.**

# In[ ]:


lst = [1, 2, -8, None, 12, 0, 'NaN']


# In[ ]:


for item in lst:
    if item is None:
        lst.remove(item)

print(lst)


# > **Q. 동물을 잡아서 출력하라!**
#
# > hint) 먼저는 문장 속 단어와 단어를 분리시켜야 합니다. 문자열을 공백을 기준으로 분리시키는 명령어가 무엇인지 생각해보세요.

# In[ ]:


sentence = "The quick brown fox jumps over the lazy dog"


# In[ ]:


for item in sentence.split(" "):
    if item in ('fox', 'dog'):
        print('animal:', item)


# > **Q. 포지션과 이름을 구분 지어서 튜플로 저장하고 이를 다시 리스트에 저장해보자.**
#
# > **[('투수', '임찬국'), ('투수', '류제국'), ('내야수', '오진환'), ('내야수', '가르시아'), ('포수', '정상호')]**

# In[ ]:


players = ['투수 임찬국', '투수 류제국', '내야수 오지환', '내야수 가르시아', '포수 정상호']


# In[ ]:


new_players = []
for player in players:
    p = player.split(" ")
    new_players.append((p[0], p[1]))

print(new_players)


# > **Q. 아래 중첩 리스트로 구현된 4층짜리 아파트 호수가 있습니다. **
#
# >
# ```python
# apart = [[101, 102, 103, 104], [201, 202, 203, 204], [301, 302, 302, 303], [401, 402, 403, 404]]
# unsubscribed = [101, 203, 301, 404]
# ```

# In[ ]:


apart = [[101, 102, 103, 104], [201, 202, 203, 204], [301, 302, 302, 303], [401, 402, 403, 404]]
unsubscribed = [101, 203, 301, 404]

for floor in apart:
    for house in floor:
        if house in unsubscribed:
            continue
        else:
            print("Newspaper delivery: ", house)


# #### 리스트 슬라이싱

# In[ ]:


a_list = [1, 2, 3, 4, 5]    # list

a_list[2]    == 3           # 특정 위치의 원소 참조. 참조번호는 0번부터 시작.
a_list[-1]   == 5           # 음수인 경우, 뒤에서부터 접근.
a_list[2:4]  == [3,4,5]     # 참조번호 2부터 4까지를 잘라서(slice) 반환함.
a_list[2:]   == [3,4,5]     # 참조번호 2부터 끝까지를 잘라서(slice) 반환함.
a_list[:2]   == [1,2]       # 처음부터 참조번호 2까지를 잘라서(slice) 반환함.
a_list[2::2] == [3,5]       # 참조번호 2부터 끝까지를 자르되, 2칸씩 건너뛰면서 잘라서(slice) 반환함.


# > **Q. 아래 리스트에서 포지션을 제외하고 이름만 출력해보세요.**
#
# > **['투수 임찬국', '투수 류제국', '내야수 오지환', '포수 정상호']**

# In[ ]:


players = ['투수 임찬국', '투수 류제국', '내야수 오지환', '포수 정상호']


# In[ ]:


for p in players:
    print(p[-3:])


# > **Q. 영어 과목의 점수를 출력해보고 미술 과목을 추가해보자.**

# In[ ]:


marks = {
    '수학': 100,
    '영어': 90,
    '국어': 80
}


# In[ ]:


marks['영어']


# In[ ]:


marks.get('영어')


# In[ ]:


marks['미술'] = 30


# In[ ]:


marks


# In[ ]:


print(marks.get('English', 100))


# In[ ]:


marks['Eng']


# In[ ]:


marks['미술'] = 70
print(marks)


# In[ ]:


marks.keys()


# In[ ]:


marks.values()


# In[ ]:


marks.items()


# > **Q. 포지션별로 선수를 모아보세요.**

# In[ ]:


players = ['투수 임찬국', '투수 류제국', '내야수 오지환', '내야수 가르시아', '포수 정상호']


# {
# '투수': ['임찬국', '류제국'],
# '내야수': [],
# '포수': []
# }

# In[ ]:


by_position = {}

for p in players:
    item = p.split(" ")
    if item[0] not in by_position.keys():
        by_position[item[0]] = []
    by_position[item[0]].append(item[1])

print(by_position)


# > **Q. 사용자에게 입력받은 단어의 점수를 Score Card에 따라 표시해보세요.**

# In[ ]:


alphabets = {
    "D": 5, "E": 4, "F": 1, "G": 8, "H": 1,
    "J": 7, "K": 9, "L": 2, "M": 1, "N": 10, "O": 2, "P": 7, "Q": 6,
    "R": 8, "S": 10, "T": 9, "U": 3, "V": 4, "W": 3 , "X": 6, "Y": 6, "Z": 9
}


# In[ ]:


word = input('단어를 입력하세요.').upper()

score = 0
for char in word:
    score += alphabets.get(char, 0)

print(score)


# > **Q. 3개의 인자값을 받아 평균을 반환하는 함수를 만들어보세요.**

# In[ ]:


def avg(n1, n2, n3):
    return sum([n1, n2, n3]) / 3

print(avg(1, 2, 3))


# > **Q. 미국에 있는 주(State)의 수도는 무엇인지 출력하는 함수 `find_capital`를 만들어보세요.**

# In[ ]:


# 미국의 주의 수도를 찾는 함수를 만드세요.
STATES_CAPITALS = {
    'Alabama': 'Montgomery',
    'Alaska': 'Juneau',
    'Arizona': 'Phoenix',
    'Wyoming': 'Cheyenne',
}

# Write your code below.
def find_capital(name):
    return STATES_CAPITALS.get(name)

print(find_capital('Alabama'))


# ---

# In[ ]:


# end of file


# In[ ]:





반응형
LIST