고등학교 정보교과서 3. 문제 해결과 프로그래밍 (3) 프로그래밍 Programming ⑤ 배열 Array(List) #2 - 씨마스
리스트 내포(=리스트 내장, 지능형 리스트)
리스트를 생성할 때 for, in, if의 키워드를 사용하여 생성하면 규칙적인 요소를 쉽게 할당할 수 있습니다.
list = [_ for _ in range(3)] # 0부터 2까지 수(0, 1, 2)
list = [_ for _ in range(5) if _ % 2 == 0] # 0부터 4까지 수 중 2로 나눈 나머지가 0인 수(0, 2, 4)
list = [_ for _ in 'hello'] # 'hello' 문자열을 한 글자씩 (h, e, l, l, o)
list = [_ ** 2 for _ in range(5)] # 0부터 4까지 수의 제곱(0, 1, 4, 9, 16)
리스트 내장 메소드
메소드명 | 설명 | 예시 |
append | 리스트에 요소 추가 | list.append() |
sort | 리스트 요소 오름/내림차순 정렬 | list.sort() 오름차순 list.sort(reverse=True) 내림차 |
reverse | 리스트 요소 역순으로 변경 | list.reverse() |
count | 리스트에서 특정 값 개수 구하기 | list.count("Mars") |
index | 리스트에서 특정 요소의 인덱스 구하기 | list.index("Jupiter") |
구구단 중 7단을 1차원 배열에 저장하는 프로그램
전체 코드 보기
더보기
# 구구단 7단을 1차원 배열에 저장하는 프로그램
print('============ 구구단 7단 저장 프로그램 ============')
# 리스트 내포
gugu = [7 * _ for _ in range(1, 10)]
print('리스트 내포\t\t:', gugu)
# 리스트 내장 메소드
gugu = []
for i in range(1, 10) :
gugu.append(7 * i)
print('리스트 내장 메소드\t:', gugu)
128의 모든 약수 구하는 프로그램
전체 코드 보기
더보기
# 128 약수 구하기 프로그램
print('============ 128 약수 구하기 프로그램 ============')
# 리스트 내포
div = [i for i in range(1, 129) if 128 % i == 0]
print('리스트 내포\t\t:', div)
# 리스트 내장 메소드
div = []
for i in range(1, 129) :
if 128 % i == 0 :
div.append(i)
print('리스트 내장 메소드\t:', div)
미키마우스 그리기 프로그램
0, 1로 이루어진 텍스트 파일을 행렬로 읽어 0은 흰 점, 1은 검은 점으로 표시하여 출력해 봅시다.
mickey.txt
더보기
000011111000000
000111111100000
000111111101110
000111111101111
000011111011111
000001111111111
000010100111111
000100000011110
000101010011100
110101010011100
111110000110100
110000000000100
010000000101100
001100001011000
000011111110000
0, 1로 이루어진 15 * 15 행렬을 읽어 2차원 배열로 저장한 후 화면에 표시합니다.
전체 코드 보기
더보기
# mickty 그리기
from turtle import *
speed("fastest")
radius = 10
f = open("resources/mickey.txt")
s = f.read().split("\n")
# 그림그리기 시작
penup()
for row in range(len(s)) :
for col in range(len(s[row])) :
goto(col * radius, - row * radius)
if s[row][col] == "1" :
color("black")
else :
color("white")
dot(radius)
exitonclick() # 화면 클릭시 종료
암호 해독 프로그램
pass.txt
더보기
qwerty
uiopas
dfghjk
xcvbnm
암호
130504231234
전체 코드 보기
더보기
# 암호 해독 프로그램
print('============ 암호 해독 프로그램 ============')
f = open("resources/pass.txt")
s = f.read().split("\n")
pwTable = []
for i in range(len(s)) :
pwTable.append(list(s[i]))
pw = input('암호문 > ')
org = ''
for i in range(0, len(pw), 2) :
r = int(pw[i])
c = int(pw[i + 1])
org += pwTable[r][c]
print('원문 :', org)
나선형으로 숫자 채우기
전체 코드 보기
더보기
print('============ 나선형으로 숫자 채우기 프로그램 ============')
# 빈 배열 5*5 생성
nums = [[None] * 5 for _ in range(5)]
d, r, c, n = -1, 0, -1, 0
for i in range(5, 0, -1) :
d *= -1
for j in range(i) :
c += d
n += 1
nums[r][c] = n
for j in range(i - 1) :
r += d
n += 1
nums[r][c] = n
# 결과 출력
for i in range(5) :
for j in range(5) :
print(nums[i][j], end = '\t')
print()
728x90
'정보교과서' 카테고리의 다른 글
[고등학교 정보교과서] 3-3-6. 함수 #2 - 씨마스 (0) | 2024.04.21 |
---|---|
[고등학교 정보교과서] 3-3-6. 함수 #1 - 씨마스 (0) | 2024.04.20 |
[고등학교 정보교과서] 3-3-5. 배열 #1 - 씨마스 (0) | 2024.04.18 |
[고등학교 정보교과서] 3-3-4. 제어 구조 활용 #2 - 씨마스 (0) | 2024.04.17 |
[고등학교 정보교과서] 3-3-4. 제어 구조 활용 #1 - 씨마스 (1) | 2024.04.16 |