리스트(list)
# 만들기 : [], list()
# 읽기 : 변수명[index] <---- 변수로 생각하면된다.
# 변경 : 변수명[index] = 새로운 값
# 추가 : 변수명.insert(i, x), 변수명.append(x), 변수명.extend(o)
# 삭제 : 변수명.remove(x), 변수명.pop(i)
a = [1,2,3]
a[9] = 5
---------------------------------------------------------------------------
IndexError Traceback (most recent call last)
Input In [1], in <cell line: 2>()
1 a = [1,2,3]
----> 2 a[9] = 5
IndexError: list assignment index out of range
# 인덱싱과 슬라이싱
# 인덱싱 : 인덱스를 사용해서 요소를 하나씩 골라내는 것
test_list = [1,2,3,4]
test_list[0] = 0
test_list[1] = 0
test_list[2] = 0
# 슬라이싱 : 인덱스를 사용해서 요소를 여러개 골라내는 것
리스트[x:y] # x~y전까지
리스트[:y] # 0부터 y전까지
리스트[x:] # x부터 끝까지
연산
산술연산(사칙, 특수) | // | 몫 | |
+ | 더하기 | % | 나머지 |
- | 뺴기 | ||
/ | 나누기 | # 문자열 연산 | |
* | 곱하기 | + | 문자열 합치기 |
** | 거듭제곱 | * | 문자열 곱하기 |
# 로또 번호 뽑는 프로그램을 짠다.
앞쪽에서 6개 혹은 뒷쪽에서 6개의 번호를 뽑아서 출력하시오
1. 번호 원본 준비.
numbers = list(range(1,46))
2. 거기서 6개 순서대로 뽑기
print(numbers[:6])
print(numbers[-6:])
print(numbers[9:9+6])
[1, 2, 3, 4, 5, 6]
[40, 41, 42, 43, 44, 45]
[10, 11, 12, 13, 14, 15]
random.randint 사용법
random.randint(a, b)
a <= N <= b를 만족하는 임의의 정수 N을 반환합니다
# 1부터 45가 들어 있는 리스트를 랜덤한 순서로 바꾸자
import random as rnd
# 1. 원본을 준비한다.
numbers = list(range(1,46))
# 이걸 여러번 반복
shuffle_count = rnd.randint(20, 100)
for _ in range(shuffle_count):
# 2. 하나를 랜덤하게 뽑는다.
index = rnd.randint(0,44)
number = numbers.pop(index)
# 3. 뽑은걸 맨 뒤에 다시 넣는다.
numbers.append(number)
print(numbers)
[6, 13, 22, 41, 43, 44, 45, 24, 12, 23, 25, 28, 40, 3, 1, 33, 30, 11, 17, 8, 7, 38, 9, 19, 31, 15, 4, 37, 42, 18, 5, 34, 20, 39, 21, 14, 35, 32, 2, 26, 27, 16, 10, 36, 29]
random.shuffle을 사용하면 간편하게 섞을 수 있다.
import random as rnd
numbers = list(range(1,46))
rnd.shuffle(numbers)
print(numbers)
[35, 42, 14, 5, 34, 38, 6, 40, 22, 26, 9, 36, 25, 2, 4, 31, 7, 41, 10, 17, 13, 37, 21, 44, 30, 27, 23, 18, 28, 29, 20, 39, 24, 45, 1, 19, 12, 32, 8, 11, 16, 43, 33, 3, 15]
# random.shuffle을 사용해서
# 로또 번호를 생성하는 프로그램을 작성하시오.
# 단, 사용자가 몇 게임을 뽑을지 입력할 수 있어야 합니다.
import random as rnd
numbers = list(range(1,46))
game_count = input("뽑을 게임수 : ")
game_count = int(game_count)
for _ in range(game_count):
rnd.shuffle(numbers)
result = numbers[:6]
result.sort() <---- 정렬하는
print(result)
뽑을 게임수 : 5
[10, 13, 15, 35, 39, 42]
[12, 17, 23, 34, 35, 41]
[5, 14, 15, 17, 24, 25]
[4, 7, 10, 16, 18, 38]
[2, 11, 13, 15, 25, 35]
#random.sample
import random as rnd
numbers = list(range(1,46))
rnd.sample(numbers, 6)
[19, 3, 36, 22, 12, 24]
# random.sample을 사용해서
# 로또 번호를 생성하는 프로그램을 작성하시오.
# 단, 사용자가 몇 게임을 뽑을지 입력할 수 있어야 합니다.
import random as rnd
numbers = list(range(1,46))
game_count = input("뽑을 게임수 : ")
game_count = int(game_count)
for _ in range(game_count):
result = rnd.sample(numbers, 6)
print(sorted(result))
뽑을 게임수 : 5
[8, 12, 14, 22, 29, 43]
[4, 6, 7, 24, 25, 43]
[5, 13, 17, 21, 36, 44]
[5, 7, 10, 17, 25, 44]
[7, 11, 17, 30, 34, 36]
딕셔너리(dict)
# 만들기 - dictionary
test = dict()
test = {}
# 값이 있는 것 만들기
# 단어:뜻 쌍으로 구성된다.
test = {
키(key) : 값(value)
"fruit":"apple",
"name":"jake",
"address":"seoul"
}
# 값 읽기
test["fruit"] = "banana"
print(test)
{'fruit': 'banana', 'name': 'jake', 'address': 'seoul'}
# 추가
test.update({"gender":"man"})
test
{'fruit': 'banana', 'name': 'jake', 'address': 'seoul', 'gender': 'man'}
test["abcd"] = 'hahahah'
test
{'fruit': 'banana',
'name': 'jake',
'address': 'seoul',
'gender': 'man',
'abcd': 'hahahah'}
# 삭제
test.pop('gender', "man")
>>> 'man'
test
>>> {'fruit': 'banana', 'name': 'jake', 'address': 'seoul', 'abcd': 'hahahah'}
test.pop('name')
>>> 'jake'
test
>>> {'fruit': 'banana', 'address': 'seoul', 'abcd': 'hahahah'}
# 혹시 그 키값이 있어?
# 키 유무 확인 가능
if 'name' in test:
print(test['name'])
test.pop('name')
else:
print("없는 키값입니다.")
cf) 리스트 경우에는 요소
test_list = [1,2,3,4,5]
if item in test_list:
pass
else:
pass
문제 풀어보기
ex)
1 -> 13번
2 -> 4번
# 카운팅 코드 example
msg = "asdfnwefojsdfjlwsef0jsadfjlasdfn"
count_result = {}
msg에 담겨있는 한글자씩 꺼내서 본다.
for char in msg:
꺼내온 한 글자가 count_result에 들어있는지 확인!
if char in count_result:
만약 들어있으면 최소 1이상의 숫자일테니 거기에 1을 더해준다.
count_result[char] += 1
else:
없으면 처음 나온거니까 1로 저장한다. count_result[a] = 1 / dic[key] = value 이니까!
count_result[char] = 1
print(count_result)
{'a': 3, 's': 5, 'd': 4, 'f': 6, 'n': 2, 'w': 2, 'e': 2, 'o': 1, 'j': 4, 'l': 2, '0': 1}
메뉴 1번
# 정수 하나씩 무제한 입력받는다.
# 입력받은 정수를 카운팅 한다.
# 데이터를 더미로 작성해보자(예시를 작성해보자)
# 메뉴 2번을 고르면 전체 카운팅을 출력하고 프로그램 종료
number_counting = {}
while True:
print("1. 정수 입력하기")
print("2. 카운팅 출력후 프로그램 종료")
menu = input("메뉴 선택 : ")
if menu == "1":
while True:
number = input("정수 입력 : ")
if number == "exit":
break
if number not in number_counting:
number_counting[number] = 1
else:
number_counting[number] += 1
elif menu == "2":
print(number_counting)
break
else:
print("없는 메뉴입니다.")
1. 정수 입력하기
2. 카운팅 출력후 프로그램 종료
메뉴 선택 : 1
정수 입력 : 1
정수 입력 : 2
정수 입력 : 3
정수 입력 : 4
정수 입력 : 5
정수 입력 : 2
정수 입력 : 3
정수 입력 : 4
정수 입력 : 5
정수 입력 : 6
정수 입력 : 7
정수 입력 : 3
정수 입력 : 4
정수 입력 : 2
정수 입력 : 4
정수 입력 :
정수 입력 : 6
정수 입력 : 8
정수 입력 : 9
정수 입력 : 5
정수 입력 : 4
정수 입력 : 12
정수 입력 : 4
정수 입력 : 6
정수 입력 : 86
정수 입력 : 24
정수 입력 : 5
정수 입력 : 33
정수 입력 : 43
정수 입력 : 23
정수 입력 : 42
정수 입력 : 23
정수 입력 : 4
정수 입력 : 2
정수 입력 : 23
정수 입력 : 4
정수 입력 : 2
정수 입력 : exit
1. 정수 입력하기
2. 카운팅 출력후 프로그램 종료
메뉴 선택 : 2
{'1': 1, '2': 5, '3': 3, '4': 8, '5': 4, '6': 3, '7': 1, '': 1, '8': 1, '9': 1, '12': 1, '86': 1, '24': 1, '33': 1, '43': 1, '23': 3, '42': 1}
'Python > Python Programming' 카테고리의 다른 글
Part03 Chapter.01 파이썬 프로그래밍-06. IF (실습) (0) | 2022.07.11 |
---|---|
Part03 Chapter.01 파이썬 프로그래밍-05.IF(이론) (0) | 2022.07.11 |
Python_Basic_02 (0) | 2022.07.07 |
Part 03 Ch01 파이썬 프로그래밍- 04. Data Type (실습) (0) | 2022.07.06 |
Python Basic 01. (0) | 2022.07.06 |