일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | ||||
4 | 5 | 6 | 7 | 8 | 9 | 10 |
11 | 12 | 13 | 14 | 15 | 16 | 17 |
18 | 19 | 20 | 21 | 22 | 23 | 24 |
25 | 26 | 27 | 28 | 29 | 30 | 31 |
- 배열
- programmers
- 자료형
- compose
- 티스토리챌린지
- ContentProvider
- 리스트
- 문자열
- 오블완
- 파이썬
- Hilt
- 파이썬문법
- composelifecycle
- nullpointerexception방지
- Provider
- Python
- Dependency
- disposableeffect
- list
- 백준
- 자바
- Java
- Kotlin
- 자바리스트정렬
- 자바set
- filternotnull()
- 백준파이썬
- android
- 프로그래머스
- jetpack
- Today
- Total
study gomi
Python 입력 받기 심화 (개수 모를 때 / 특정 문자까지 입력 받기 등) 본문
- 코테 연습 할 때 자주 써먹는 것들 모음
- 내가 보려고(공부 하는 중......) 적어두는 글
- 새로운 것이 생기면 그 때 그때 업데이트 할 글
* 입력 받기 기본 - https://taetaegom.tistory.com/11
[Python|파이썬] 기본 문법 - 입력 받기
문자열 입력받기 1. 기본 str = input() print(str) 2. 터미널/파워쉘에서 입력 전에 안내문구 출력하기 str = input("문자열 입력.") print("입력받은 문자열은 {str}".format(str)) 정수 입력 받기 1. 하나 입력 받
taetaegom.tistory.com
1. 특정 문자까지 입력 받기
- 이런 경우 Python에서 제공하는 'sys.stdin'을 활용
(sys.stdin 참고 ↓)
sys.stdin을 사용하면 표준 입력으로부터 문자열을 읽어들일 수 있으며,
이를 이용해 특정 문자가 나타날 때까지 입력을 계속 받을 수 있다.
- ex_콤마('.')가 입력될 때까지 몇 줄이든 입력을 계속 받기
import sys
# 입력을 계속 받는다.
input_string = ""
for line in sys.stdin:
input_string += line
if '.' in line:
break
# 결과 출력
print(input_string)
(코드 설명 참고↓)
- 'sys.stdin'을 사용하여 입력을 계속 읽어드린다.
- 각 줄이 입력될 때마다 'input_string'에 추가됨.
- 만약 입력된 문자열 중에 '.'이 포함되어 있으면 반복문이 종료되어 입력을 멈춤.
- 이 방법을 사용하면 개행문자('\n')가 포함된 문장도 받을 수 있다.
- 단, 스크립트 파일을 실행하는 환경에서 사용해야 함 : 표준 입력으로부터 입력을 받기 때문에 대화형 인터프리터나 Jupyter Notebook과 같은 환경에서는 정상적으로 작동하지 않을 수 있음.
2. 여러 줄을 입력, 그 중 특정문자만 입력되면 종료 (1번의 심화)
- 단순히 특정 문자를 만났을 때 종료하는 것이 아니라 특정 문자만 입력받으면 종료.
- 특정 문자가 포함된 줄은 종료 조건으로 취급하지 않는 경우 (예_백준4949번 https://www.acmicpc.net/problem/4949)
- ex1_입력을 여러 줄 받아서 각 줄이 '.'으로 끝나는 경우 해당 문장을 리스트에 저장하고 입력이 '.'만 들어온 경우 입력을 종료하기
import sys
sentences = []
for line in sys.stdin:
# 개행 문자 제거
line = line.strip()
# '.'만 있는 줄이 들어오면 입력 종료
if line == '.':
break
# 문장 끝에 '.'가 있다면, '.'을 제외하고 리스트에 추가
if line.endswith('.'):
sentences.append(line[:-1])
else:
sentences.append(line)
# 결과 출력
print(sentences)
(코드 설명 참고↓)
- sys.stdin을 활용
- 각 입력된 줄에 대해 개행 문자('\n')를 제거
- 만약 줄이 '.'으로 끝나는 경우 콤마/온점을 제외한 나머지 부분을 리스트에 추가.
- 각 문장들은 순서대로 리스트에 저장됨(꼭 리스트를 쓸 필요는 없지만 편의상)
- '.'만 있는 줄이 들어오면 입력을 종료.
-ex2_ 예시 1과 비슷하게 '.'으로 끝나는 문장 여러개 입력 받다가 단순히 입력이 '.'만 있는 경우 입력 종료
while True:
string = input().rstrip('.')
if not string:
break
# 입력받은 string으로 처리 할 동작 작성..
(코드 설명 참고↓)
- 문장을 입력 받고 rstrip을 이용하여 오른쪽의 '.'을 제거
- 입력이 '.'만 들어왔다면 rstrip('.')을 통해 '.'을 지웠으니 빈 값이 됨.
- 참고_strip, rstrip, lstrip(공백과 문자 제거 함수) : https://pydole.tistory.com/entry/strip-rstrip-lstrip-%EA%B3%B5%EB%B0%B1%EA%B3%BC-%EB%AC%B8%EC%9E%90-%EC%A0%9C%EA%B1%B0-%ED%95%A8%EC%88%98
- if not string에서 걸림 => 종료
3. 입력 개수를 모를 때 정수 n 개 입력 받기
- 그냥 list로 받아서 넣으면 됨 => 입력이 한 개만 들어오든 두,세 개가 들어오든 상관 없다.
x = list(map(int, input().split()))
'basic > python' 카테고리의 다른 글
Python 팩토리얼 함수 - 재귀 (0) | 2024.01.17 |
---|---|
Python 덱(deque)의 rotate 메소드 (0) | 2024.01.16 |
[Python|파이썬] 기본 문법 - 패키지(Package) (0) | 2024.01.14 |
[Python|파이썬] 기본 문법 - 삼항 연산자 (1) | 2024.01.12 |
[Python|파이썬] 기본 문법 - 모듈 (1) | 2024.01.12 |