Programming/Python

[python - 해결] 줄바꿈없이 출력, list 쉽게 생성, 원하는만큼만 입력받기

Nobb 2025. 9. 5. 16:27

문제 목록

 1. print() 쓸때마다 줄바꿈되는 문제

    > 해결: print()의 end 속성 ----> 줄바꿈없이 print() 여러번 호출 가능

2. input() 받을때 원하는 것보다 더 많이 받는 상황

    > 해결: 일단 list에 모두 넣고 ":" 로 슬라이싱 ----> 더 받은 부분 잘라내고 쓰면 됨

개선 목록

  a. list 만들때마다 길어짐 (for문 사용)

    > 해결: " Comprehension " 기능 ----> list 생성 간결해짐

b. list 값들 출력할때마다 길어짐 (for문 사용)

    > 해결: " * 언패킹 " 기능 ----> list 요소들 출력 간결해짐

 

 

 

 

 

## 별 여러개 줄바꿈 없이 출력  " end " =============================

출처: 백준 - 2438번 문제 ('별찍기 - 1)

 

##문제 상황 ===============

# print()를 쓸때마다 줄바꿈 되는 문제
for i in range(3)
	print('*')

>> *
*
*

# 해결 =================

# print()에 end 옵션 써줘야함
for i in range(3, end="")	#출력 후 처리가 줄바꿈이 아닌 nothing 됨
	print('*')

>> ***

** 원래 print() > end에 '\n' 들어감.   // 이걸 바꿔주면 print되는 문자열 마지막에 줄바꿈 없애고 다른걸 넣을수도있음

 

 

## 5개만 받아 쓰고 싶다 "슬라이싱 Slicing"====================

N = 5
arr = list(map( int, input().split()) )

arr = arr[:N]	## 원하는 개수까지만 남음

 

 

 

## 원하는 개수만큼 숫자 입력받기 "Comprehension"=============================

N = 3	#입력 받을 개수

## 기존 풀이 ========

A = []
for _ in range(N):		# ( _ :쓸모없는 변수에 사용)
    x = int(input())
    A.append(x)

## 개선 풀이 ========

A = [int(input()) for _ in range(9)]
## >> 새로운 개념 ========

[표현식 for 변수 in 반복객체 if 조건식]  # : comprehension 일반문법
# ex.
[i*i for i in range(5)]			# >> [0,1,4,9,16]
[i for i in range(10) if i%2==0]	# >> [0,2,4,6,8]

>> 반복 객체 쉽게 생성할 수 있음

 

## 리스트 요소들 전부 출력 ====================

arr [1,2,3,4]

## 기존 ====

for i in range(arr.len()):
	print(arr[i], end=" ")

## 언패킹 ====

print(*arr)


>> 둘다 결과값 1 2 3 4