7.2
list1 = [3, 5, 7]
list2 = [2, 3, 4, 5, 6]
for i in list1:
for j in list2:
print(f"{i} * {j} = {i * j}")
print()
7.3
list1 = ["I like", "I love"]
list2 = ["pancakes.", "kiwi juice.", "espresso."]
for i in list1:
for j in list2:
print(i, j)
7.4
t = (10, 20, 30, 40)
t.append(50)
t.remove(40) # 튜플에는 append, remove 속성이 없으며 리스트에만 존재함
t[0] = 0 # 튜플은 값을 변경할 수 없음
7.5
tuple1 = ('A', 'B', 'C')
tuple2 = (1, 2)
result_list = []
for i in tuple1:
for j in tuple2:
result_list.append(i+str(j))
print(result_list)
7.6
s = input("문자열을 입력하세요 : ")
for i in range(len(s) + 1):
print(s[:i])
for i in range(1, len(s)):
print(s[:-i])
7.7 (1)
fruit_list = ["banana", "orange", "kiwi", "apple", "melon"]
longest_number = len(max(fruit_list, key=len))
longest_fruit_list = [i for i in fruit_list if len(i) == longest_number]
print("가장 길이가 긴 문자열 :", end='')
for i in longest_fruit_list:
print(f"{i}", end=', ')
print()
fruit_list = [i for i in fruit_list if i not in longest_fruit_list]
print(fruit_list)
7.7 (2)
fruit_list = ["banana", "orange", "kiwi", "apple", "melon"]
for i in fruit_list:
print(f"{i} : 문자열의 길이 {len(i)}")
7.8
만들다보니 인덱스슬라이싱은 사용하지 않았다. 인덱스 슬라이싱으로 구현할 수 있으면 해보는 것도 좋을 것 같다.
n = int(input("n을 입력하시오 : "))
matrix = [[i * n + j + 1 for j in range(n)] for i in range(n)]
for i in range(n):
if i % 2 == 0:
for j in range(n):
print("{:2d}".format(matrix[i][j]), end=' ')
else:
for j in range(n-1, -1, -1):
print("{:2d}".format(matrix[i][j]), end=' ')
print()
7.9
def overlap(a, b):
max_overlap = min(len(a), len(b))
for i in range(max_overlap, 0, -1):
if a[-i:] == b[:i]:
return a + b[i:]
return a + b
print(overlap("commu", "mummy"))
print(overlap("boxok", "xbox"))
print(overlap("deter", "detery"))
print(overlap("waycom", "ycomget"))
print(overlap("tttttt", "tttttt"))
'따라하며 배우는 파이썬과 데이터과학 > 심화문제' 카테고리의 다른 글
따라하며 배우는 파이썬과 데이터과학 Ch.06 심화문제 (0) | 2023.10.19 |
---|