파이썬 input함수, for 반복문

2023. 5. 18. 13:18·프로그래밍 언어/파이썬 기초

모든 대부분의 프로그래밍 언어들이 사용자로부터 무언가를 입력받는 기능을 제공한다. 파이썬 또한 마찬가지이다

 

입력받는 함수는 'input' 함수이다.

 

 

str = input("키미노 나마에와 : ")
print(str,"님 반갑습니다")

1. input함수가 실행되면서 "키미노 나마에와 : "를 출력한다.

2. 사용자의 키보드 입력을 기다리면서 깜빡깜빡거린다.

3. 사용자가 입력을하면 str = input("키미노 나마에와 : ")를 입력된 값이 대체한다. 즉 입력 값이 str에 들어간다.

4. print함수가 사용자가 입력한 값(str)과 "님 반갑습니다"를 합친 후 출력한다.

 

인풋함수는 무엇을 입력해도 문자열로 반환한다.

 

 

 

n1 = input("아무거나 넣어봐: ")
n2 = input("아무거나 넣어봐: ")
n3 = n1+n2
print(n3)

input함수는 무엇을 넣어도 문자열로 반환하기때문에 위의 코드에서 숫자를 넣어도

산술 덧셈이 아니라 그냥 문장을 더해버린다.

 

즉 위의 코드에서 2와 3을 입력해도 5가 출력되는 것이 아닌 23이 출력된다

 

그렇기에 input함수가 숫자를 인식하기 위해서는 문자열을 숫자열로 바꿔주는 eval함수를 사용하면 된다.

eval함수를 호출하고 문자열을 전달하면 그에 해당하는 숫자열로 반환된다

 

 

 

n1 = eval(input("아무거나 넣어봐: "))
n2 = eval(input("아무거나 넣어봐: "))
n3= n1+n2
print(n3)

eval를 붙이면 2와 3의 합인 5가 제대로 출력된다. eval함수가 문자열을 숫자열로 바꾸었기 때문이다.

 

 

 

result = eval(input("뭐든 넣어요: "))
print(result)

eval함수 이 녀석은 좀 똑똑하다. 우리가 넣은 문장을 스스로 분석해서 반환해 준다

내가 input함수에 2 + 3을 넣었을 때, 2 + 3이라는 문자열을 단순히 숫자열로 변경해서 출력하는 게 아니라,

'아 이거 문자열로 보이지만 숫자구나 그럼 숫자로 계산해서 스르륵 반환해야겠다'라는 식으로 스스로 분석해서 반환해 준다. 

그렇게 5를 반환한다. 

 

즉 입력값을 스스로 분석, 계산 후 결괏값을 반환하는 것이다. 겁나게 똑똑한 녀석이다.

 

eval 이 녀석은 스스로 분석하고 계산하는 녀석이기에, 의도하지 않고 원하지 않은 코드를 실행시킬 수 있다. 그렇기에 악의적으로 코드에 접근하는 사람에 의해 문제가 될 수 있다고 한다. 물론 혼자 쓸 때는 상관이 없다고 한다. 

아무튼 다음번에 eval를 대체할 함수를 배운다고 한다.

 

 

 

 

 

for example in [1,2,3]:

반복문을 만드는 기본 세팅이다. [for + 변수 + in + 반복범위:]  순서이다.

 

 

 

for example in [1,2,3]:
	print(example)
	print("반갑다")

반복범위에서 1을 꺼내서 example에 넣고 아래에 속한 코드를 전부 실행한다.

전부 실행하면 두 번째로 2를 꺼내서 example에 넣고 또 아래에 속한 코드를 전부 실행한다.

그렇게 범위가 끝날 때까지 반복한다.

 

출력 결과로

 

1

반갑다

2

반갑다

3

반갑다

 

가 나올 것이다

 

 

 

sum = 0
for i in [1,2,3,4,5,6,7,8,9,10]:
    sum = sum + i

print(sum)

1부터 10까지 합의 결과가 나오는 코드이다.

for 작동 방식을 생각하며 천천히 이해하고 넘어가면 될 것 같다.

 

 

 

 

 

range()는 범위 지정 함수이다.

range(1,11)이면 [1 ~ (11-1)]까지, 즉 1부터 10까지 라는 소리이다

 

range함수를 이용하면 for 반복문에 하나하나 수를 입력할 필요가 없다

 

sum = 0
for i in range(1,11):
    sum = sum + i

print(sum)

똑같이 1부터 10까지 합의 결과가 나오는 코드이지만

range를 통해 훨씬 간결하게 만들 수 있다

 

 

 

range(0,3)
range(3)

둘 다 3회를 반복하라는 뜻이다.

0부터 시작하면 시작값을 생략해도 된다.

 

 

 

range(1,4)
range(0,3)

또한 단순히 특정코드를 반복시키는 게 목정인 경우 관습적으로 0부터 시작하게 되어있다.

둘 다 3번 반복하는 것이지만 후자가 몇 번 반복인지 직관적으로 알 수 있기 때문이다.

 

 

 

for i in [1,2,3]:
print(i, end = "_")

end = "_"를 쓰면 마지막에 줄바꿈이 아니라, _를 쓴다는 의미이다

그래서 출력하면 1_2_3이 출력된다. 지금은 사용법만 알고 있자. 

 

for i in [1,2,3]:
print(i, end = " ")

end =" " 를 썼다. 공백을 넣었기에, 줄바꿈 대신 공백이 들어간다. 출력하면 1 2 3이 출력된다.

'프로그래밍 언어 > 파이썬 기초' 카테고리의 다른 글

파이썬 '객체'  (0) 2023.05.18
파이썬 인덱싱,슬라이싱 연산  (0) 2023.05.18
파이썬 type 등등  (0) 2023.05.18
파이썬 함수  (0) 2023.05.18
파이썬 print 함수  (0) 2023.05.18
'프로그래밍 언어/파이썬 기초' 카테고리의 다른 글
  • 파이썬 인덱싱,슬라이싱 연산
  • 파이썬 type 등등
  • 파이썬 함수
  • 파이썬 print 함수
tteokbokki-master
tteokbokki-master
공부하며 알아가는 걸 조금씩 정리하고 있어요
  • tteokbokki-master
    용로그
    tteokbokki-master
  • 전체
    오늘
    어제
    • 분류 전체보기
      • 프로그래밍 언어
        • HTML & CSS
        • JavaScript
        • React 기초
        • 파이썬 기초
        • TanStack-Query
        • C언어 기초
        • git
        • 리눅스
        • 코딩테스트 공부
      • 개발 지식
      • 언어학
        • 의미론
      • 회고 및 기록
      • 프로젝트
        • TodoList 만들기
        • 학수고대 프로젝트
      • 기타
        • [JS-0기] 한입 FE 챌린지
        • 서평
  • 인기 글

  • 글쓰기 / 관리
  • hELLO· Designed By정상우.v4.10.3
tteokbokki-master
파이썬 input함수, for 반복문
상단으로

티스토리툴바