[코드잇] 프로그래밍과 데이터 in Python

silver0·2022년 8월 21일
0

코드잇

목록 보기
3/8

실습과제

리스트 인덱싱 연습

greetings = ["안녕", "니하오", "곤니찌와", "올라", "싸와디캅", "헬로", "봉주르"]

# 코드를 작성하세요.
i = 0
while i < len(greetings) :
    
    print(greetings[i])
    i+=1

온도 단위 바꾸기

# 화씨 온도에서 섭씨 온도로 바꿔 주는 함수
def fahrenheit_to_celsius(fahrenheit):
    # 코드를 입력하세요.
    return round(((fahrenheit - 32) * 5) / 9, 1)

temperature_list = [40, 15, 32, 64, -4, 11]
print("화씨 온도 리스트: {}".format(temperature_list))  # 화씨 온도 출력

# 리스트의 값들을 화씨에서 섭씨로 변환하는 코드를 입력하세요.
for i in range(len(temperature_list)):
    temperature_list[i] = fahrenheit_to_celsius(temperature_list[i])
    
print("섭씨 온도 리스트: {}".format(temperature_list))  # 섭씨 온도 출력

환전 서비스

# 원화(₩)에서 달러($)로 변환하는 함수
def krw_to_usd(krw):
    # 코드를 입력하세요.
    return round(krw / 1000, 1)


# 달러($)에서 엔화(¥)로 변환하는 함수
def usd_to_jpy(usd):
    # 코드를 입력하세요.
    return round((usd / 8)*1000, 1)


# 원화(₩)으로 각각 얼마인가요?
prices = [34000, 13000, 5000, 21000, 1000, 2000, 8000, 3000]
print("한국 화폐: " + str(prices))
 
# prices를 원화(₩)에서 달러($)로 변환하기
# 코드를 입력하세요.
for i in range(len(prices)):
    prices[i] = krw_to_usd(prices[i])

# 달러($)로 각각 얼마인가요?
print("미국 화폐: " + str(prices))

# prices를 달러($)에서 엔화(¥)으로 변환하기
# 코드를 입력하세요.

for i in range(len(prices)):
    prices[i] = usd_to_jpy(prices[i])

# 엔화(¥)으로 각각 얼마인가요?
print("일본 화폐: " + str(prices))

리스트 함수 활용하기

# 빈 리스트 만들기
numbers = []
print(numbers)

# numbers에 값들 추가
# 코드를 입력하세요
arr = [1, 7, 3, 6, 5, 2, 13, 14]
for i in arr :
    numbers.append(i)
print(numbers)

# numbers에서 홀수 제거
# 코드를 입력하세요
del_arr = []
for i in numbers:
    if i % 2 != 0:
        del_arr.append(i)

for i in del_arr :
    if i in numbers :
        numbers.remove(i)
print(numbers)

# numbers의 인덱스 0 자리에 20이라는 값 삽입
# 코드를 입력하세요
numbers.insert(0, 20)
print(numbers)

# numbers를 정렬해서 출력
# 코드를 입력하세요
numbers.sort()
print(numbers)

리스트에서 값의 존재 확인하기

# value가 some_list의 요소인지 확인
def in_list(some_list, value):
    i = 0
    while i < len(some_list):
        # some_list에서 value를 찾으면 True를 리턴
        if some_list[i] == value:
            return True
        i = i + 1

    # 만약 some_list에서 value를 발견하지 못했으면 False를 리턴
    return False

# 테스트
primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(in_list(primes, 7))
print(in_list(primes, 12))
True
False

파이썬에 이미 이 기능이 내장되어 있다. in이라는 키워드를 쓰면 된다.

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 in primes)
print(12 in primes)
True
False

거꾸로 값이 없는지 확인하려면 in 앞에 not을 붙이면 된다.

primes = [2, 3, 5, 7, 11, 13, 17, 19, 23]
print(7 not in primes)
print(12 not in primes)
False
True

리스트 안의 리스트 (Nested List)

리스트 안에는 또 다른 리스트가 있을 수 있다. 이를 영어로 nested list라고 부른다.

# 세 번의 시험을 보는 수업
grades = [[62, 75, 77], [78, 81, 86], [85, 91, 89]]

# 첫 번째 학생의 성적
print(grades[0])

# 세 번째 학생의 성적
print(grades[2])

# 첫 번째 학생의 첫 번째 시험 성적
print(grades[0][0])

# 세 번째 학생의 두 번째 시험 성적
print(grades[2][1])

# 첫 번째 시험의 평균
print((grades[0][0] + grades[1][0] + grades[2][0]) / 3)
[62, 75, 77]
[85, 91, 89]
62
91
75.0

sort 메소드

sort()는 새로운 리스트를 생성하지 않고 some_list를 정렬된 상태로 바꿔준다.

numbers = [5, 3, 7, 1]
numbers.sort()
print(numbers)
[1, 3, 5, 7]

reverse 메소드

reverse()는 some_list의 원소들을 뒤집어진 순서로 배치합니다.

numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
[1, 7, 3, 5]

index 메소드

index(x)는 some_list에서 x의 값을 갖고 있는 원소의 인덱스를 리턴해준다.

members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수"))
print(members.index("태호"))
1
2

remove 메소드

remove(x)는some_list에서 첫 번째로 x의 값을 갖고 있는 원소를 삭제해준다.

fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)
['딸기', '당근', '수박', '참외', '메론']

for문

구구단

for i in range(1, 10):
    for j in range(1, 10):
        print(f"{i} * {j} = {i*j}")

피타고라스 삼조

for a in range(1, 400):
    for b in range(1, 400):
        c = 400 - a - b
        if a * a + b * b == c * c and a < b < c:
            print(a * b * c)

dict

영어 단어장

# 1. 단어장 만들기
vocab = {
    # 코드를 입력하세요.
    "sanitizer": "살균제",
    "ambition": "야망",
    "conscience": "양심",
    "civilization": "문명"
}
print(vocab)


# 2. 새로운 단어들 추가
vocab["privilege"] = "특권"
vocab["principle"] = "원칙"
# 코드를 입력하세요.
print(vocab)

사전 뒤집기

# 언어 사전의 단어와 뜻을 서로 바꿔주는 함수
def reverse_dict(dict):
    new_dict = {}  # 새로운 사전
    
    # dict의 key와 value를 뒤집어서 new_dict에 저장
    # 코드를 입력하세요.
    for key, item in dict.items() :
        new_dict[item] = key
    
    return new_dict  # 변환한 새로운 사전 리턴


# 영-한 단어장
vocab = {
    'sanitizer': '살균제',
    'ambition': '야망',
    'conscience': '양심',
    'civilization': '문명',
    'privilege': '특권',
    'principles': '원칙'
}


# 기존 단어장 출력
print("영-한 단어장\n{}\n".format(vocab))

# 변환된 단어장 출력
reversed_vocab = reverse_dict(vocab)
print("한-영 단어장\n{}".format(reversed_vocab))

투표 집계하기

# 투표 결과 리스트
votes = ['김영자', '강승기', '최만수', '김영자', '강승기', '강승기', '최만수', '김영자', \
'최만수', '김영자', '최만수', '김영자', '김영자', '최만수', '최만수', '최만수', '강승기', \
'강승기', '김영자', '김영자', '최만수', '김영자', '김영자', '강승기', '김영자']

# 후보별 득표수 사전
vote_counter = {}

# 리스트 votes를 이용해서 사전 vote_counter를 정리하기
for name in votes:
    if name not in vote_counter:
        vote_counter[name] = 1
    else:
        vote_counter[name] += 1

# 후보별 득표수 출력
print(vote_counter)

자릿수 합 구하기

# 자리수 합 리턴
def sum_digit(num):
    # 코드를 입력하세요.
    str_num  = str(num)
    sum = 0
    for digit  in str_num :
        sum += int(digit)
    return sum


# sum_digit(1)부터 sum_digit(1000)까지의 합 구하기
# 코드를 입력하세요.
sum = 0
for i in range(1, 1001):
    sum += sum_digit(i)
print(sum)

팰린드롬

def is_palindrome(word):
    # 코드를 입력하세요.
    re_word = word[::-1]
    
    return re_word == word


# 테스트
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))


코드잇에서 수강하며 학습한 내용을 정리한 글입니다.

profile
작은 일이라도 꾸준히 노력하면 큰 뜻을 이룰 수 있다

0개의 댓글

관련 채용 정보