python 기초 #3
16. 여러가지 메소드들
reverse 메소드
numbers = [5, 3, 7, 1]
numbers.reverse()
print(numbers)
-> [1, 7, 3, 5]
index 메소드
some_list.index(x)는some_list에서 x의 값을 갖고 있는 원소의 인덱스를 리턴해줍니다.
members = ["영훈", "윤수", "태호", "혜린"]
print(members.index("윤수")) -> 1
print(members.index("태호")) -> 2
remove 메소드
some_list.remove(x)는some_list에서 첫 번째로 x의 값을 갖고 있는 원소를 삭제해줍니다.
fruits = ["딸기", "당근", "파인애플", "수박", "참외", "메론"]
fruits.remove("파인애플")
print(fruits)
-> ['딸기', '당근', '수박', '참외', '메론']
17. for반복문 & range메소드
for 반복문
for 변수 in 리스트(또는 튜플, 문자열):
수행할 문장1
수행할 문장2
...
#e.g)
test_list = ['one', 'two', 'three']
for i in test_list:
print(i)
>>>
one
two
three
-----------------
#e.g 2)
marks = [90, 25, 67, 45, 80]
number = 0
for mark in marks:
number = number +1
if mark < 60:
continue
print("%d번 학생 축하합니다. 합격입니다. " % number)
range 함수
간편하고 깔끔. 메모리 효율성 또한 good
파라미터 2개 사용
→ for i in range(start, stop):
print(i)
→ start부터 stop - 1 까지의 범위
파라미터 1개 사용
→ for i in range(stop):
print(i)
→ 0부터 stop - 1 까지의 범위
파라미터 3개 사용
→ for i in range(start, stop, step):
print(i)
→ start부터 stop - 1 까지의 범위, 간격 step
18. 실습과제(인덱스, 원소 출력 & 거듭제곱 & 구구단 & 피타고라스)
numbers라는 리스트가 주어졌습니다.
for문과 range 함수를 사용하여, numbers의 인덱스와 원소를 출력해 보세요.
0 2
1 3
2 5
3 7
4 11
5 13
6 17
7 19
8 23
9 29
10 31
---------------------------------
numbers = [2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31]
for i in range(len(numbers)):
print(i, numbers[i])
04. 거듭제곱
"2의 n제곱"을 출력하는 프로그램을 만들려고 합니다.
코드를 실행하면 아래와 같이 2^0 = 1부터 2^10 = 1024까지 출력되어야 합니다.
2^0 = 1
2^1 = 2
2^2 = 4
.
.
.
2^10 = 1024
----------------------------------
for i in range(11):
print("{}^{} = {}".format(2, i, 2 ** i))
05. for문으로 구구단
구구단 프로그램을 while문이 아닌 for문을 사용해서 만들어 보세요.
코드를 실행하면, 아래와 같이 출력되어야 합니다.
1 * 1 = 1
1 * 2 = 2
1 * 3 = 3
.
.
.
9 * 7 = 63
9 * 8 = 72
9 * 9 = 81
----------------------------------
for i in range(1, 10):
for j in range(1, 10):
print("{} * {} = {}".format(i, j, i * j))
06. 피타고라스 삼조
a < b < c라고 가정할 때 a + b + c = 1000을 만족하는 피타고라스 삼조
(a, b, c)는 단 하나이다. 이 경우, a * b * c 는 얼마인가?
31875000
----------------------------------
for a in range(1, 333):
for b in range(1, 400):
c = 1000 - a - b
if a * a + b * b == c * c and a < b < c:
print(a * b * c)
19. 과제(리스트 뒤집기)
.sort(reverse = True)기능 for문으로 구현하기
----------------------------------
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
# 튜플 사용
for left in range(len(numbers) // 2):
# 인덱스 left와 대칭인 인덱스 right 계산
right = len(numbers) - left - 1
# 위치 바꾸기
numbers[right], numbers[left] = numbers[left], numbers[right]
print("뒤집어진 리스트: " + str(numbers))
-----------------------------------
numbers = [2, 3, 5, 7, 11, 13, 17, 19]
# 일반 함수 사용
for left in range(len(numbers) // 2):
# 인덱스 left와 대칭인 인덱스 right 계산
right = len(numbers) - left - 1
# 위치 바꾸기
numbers[right], numbers[left] = numbers[left], numbers[right]
print("뒤집어진 리스트: " + str(numbers))
20. 사전 & 사전 뒤집기
key-value pair (키 - 값 쌍)
1. 리스트와 달리 순서라는 개념 X.
2. 사전의 키는 정수일 필요 X.
my_condition = {
'공복도': 'hungry',
'정서': 'happy',
'피로도': -3
}
# 새로운 키- 값 추가.
my_condition['허리통증'] = 7
# 값 확인
print(my_condition.values())
>>>dict_values['hungry', 'happy', -3, 7]
# 특정 값 확인
print('hungry' in my_condition.values())
>>>True
# 리스트처럼 값 확인
for value in my_condition.values():
print(value)
>>>hungry
happy
-3
7
# 키 확인
print(my_condition.keys())
>>>dict_keys['공복도', '정서', '피로도', '허리통증']
# 키 확인
for key in my_condition.keys():
print(key)
>>>공복도
정서
피로도
허리통증
# 모든 쌍 출력
for key in my_condition.keys():
value = my_condition[key]
print(key, value)
>>>공복도 hungry
정서 happy
피로도 -3
허리통증 7
>>> # items 사용하여 간소화할 수 잇음
for key, value in my_condition.items():
print(key, value)
# 언어 사전의 단어와 뜻을 서로 바꿔주는 함수
def reverse_dict(dict):
new_dict = {} # 새로운 사전
# dict의 key와 value를 뒤집어서 new_dict에 저장
for key, value in dict.items():
new_dict[value] = 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)
21. Aliasing
alias: 가명
x = [2, 3, 5, 7, 9]
y = x
y[2] = 11
x[4] = 13
print(y)
>>> [2, 3, 11, 7, 13]
-------------------------------------------
x = ["이가훈", "김민주", "최고은", "우설희", "최규호"]
y = list(x)
y[0] = "강귀윤"
x[1] = "김원일"
print(x)
"이가훈", "김원일", "최고은", "우설희", "최규호"
22. Mutable & Sequential
Python 공부 (8) - mutable(가변) 과 sequential(순차적)
mutable type: 리스트, 딕셔너리, 집합 자료형
→값을 변경할 수 있는 기능들이 지원.
ex) 리스트의 append 함수; 집합의 add 함수 등
immutable type: 숫자형, 문자열, 튜플 자료형
23. List VS String
공통점
- 인덱싱
- for 반복문
- 슬라이싱
- 덧셈 연산
- len 함수
차이점
- Mutable(list) VS Immutable(string)
- #24 05. 자릿수 합 구하기
sum_digit
함수를 작성한다.sum_digit(1)
부터sum_digit(1000)
까지의 합을 구해서 출력한다.
# 자리수 합 리턴
def sum_digit(num):
total = 0
str_num = str(num)
for digit in str_num:
total += int(digit)
return total
'''
for digit in str_num:
total += int(digit)
--------- 동일 ---------
for i in range(len(str_num)):
digit = str_num[i]
total += int(digit)
'''
# sum_digit(1)부터 sum_digit(1000)까지의 합 구하기
digit_total = 0
for i in range(1, 1001):
digit_total += sum_digit(i)
print(digit_total)
Author And Source
이 문제에 관하여(python 기초 #3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@nogy21/python-기초-3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)