카테고리 없음

파이썬 문제_1

멍주다배 2024. 12. 6.

간단한 파이썬 문제들 중 몰랐던 개념, 어려웠던 문제, 남기고 싶은 코드 정리하기

end= " "

  • 리스트 요소를 하나씩 프린트 하는 것이 아니라 원하는 문자로 이어서 출력하기
#1부터 44까지 짝수만 출력

for i  in range(1, 45):
    if i % 2 == 0:
        print(i, end=" ")		#요소 사이에 공백으로 프린트

#결과: 2 4 6 8 10 12 14 16 18 20 22 24 26 28 30 32 34 36 38 40 42 44 

#end="," 하면 ,로 요소를 구분할 수 있음. 하지만 맨 마지막에도 똑같이 출력되니 주의
#2,4,6,8,10,12,14,16,18,20,22,24,26,28,30,32,34,36,38,40,42,44,

피보나치 수열

  • 첫째 및 둘째 항이 1이며 그 뒤의 모든 항은 바로 앞 두 항의 합인 수열
#피보나치 수열에서 14개만 출력

n, a, b = 1, 1, 1
print(f"{a} \n{b}")

while n < 14:
    a, b = b, a+b
    print(b)

    n+=1
    
#결과
# 1 
# 1
# 2
# 3
# 5
# 8
# 13
# 21
# 34
# 55
# 89
# 144
# 233
# 377
# 610

list(map(자료형, 값))

  • 자료형 변환 후 리스트로 출력
    • list()는 반복 가능한 객체를 리스트로 변환할 때 사용 가능
    • 반복 가능한 객체(iterator): 'for 루프를 통해 요소를 하나씩 가져올 수 있는 객체'를 의미, map(), range(), zip(), filter(), 문자열, 튜플 등이 있음
#사용자에게 3개의 숫자를 받고, 그 중 가장 큰 수 출력

user_input_nums = list(map(int, input("숫자 3개를 입력하세요(,로 구분): ").split(',')))
#input(): 사용자 입력 받기
#.split(','): 입력받은 문자열을 쉼표 기준으로 나눔
#map(int, 값): 리스트의 각 문자열 요소를 정수로 변환
#list(): 리스트로 변환

max(user_input_nums)
#결과: 100

.sort(key, reverse)

  • 정렬, 기본은 오름차순이고 reverse = True하면 내림차순
    • sorted(리스트, key, reverse): 정렬하는 것은 같음
    • sort는 원래 리스트를 변경, sorted는 새로운 리스트를 반환
#사용자에게 3개의 숫자를 받아, 오름차순 정렬하여 출력

user_input_nums = list(map(int, input("숫자 3개를 입력하세요(,로 구분): ").split(',')))

user_input_nums.sort()
user_input_nums

sum( iterable, start)

  • 요소 모두 더하기, start로 초기값 가능
number = [[1, 2], [3, 4], [5, 6]]

#중첩 리스트 내 요소를 더한 후 리스트 내 요소 더하기
sum([sum(n) for n in number])		#[sum(n) for n in number] 결과: [3, 7, 11]
#결과: 21

#리스트 내 모든 요소를 가져와 하나씩 더하기
total_sum = 0
for sublist in number:
    for num in sublist:
        total_sum += num

print(total_sum)
#결과: 21
#초기값 설정하기
numbers = [1, 2, 3]
result = sum(numbers, 10)	#초기값 10

result
#결과: 16

#문자열을 정수형으로 변환 후 합 구하기
str_numbers = ["10", "20", "30"]
result = sum(map(int, str_numbers))		

result
#결과: 60

두 개 리스트 요소 더하기

#같은 길이의 리스트 요소 더하기
list1 = [1, 2, 3]
list2 = [4, 5, 6]

#zip() 사용
result = [x + y for x, y in zip(list1, list2)]
result
#결과: [5, 7, 9]

#numpy 사용
result = np.add(list1, list2)
print(result.tolist())
#결과: [5, 7, 9]

#요소 하나씩 각각 다 더하기
result = [x + y for x in list1 for y in list2]
result
#결과: [5, 6, 7, 6, 7, 8, 7, 8, 9]

#두 리스트의 길이 맞춘 후 더하기
list1 = [1, 2, 3]
list2 = [4, 5]

length = max(len(list1), len(list2))
list1.extend([0] * (length - len(list1)))	길이가 짧으면 0으로 확장
list2.extend([0] * (length - len(list2)))

result = [x + y for x, y in zip(list1, list2)]
print(result)
#결과: [5, 7, 3]