모든 대부분의 프로그래밍 언어들이 사용자로부터 무언가를 입력받는 기능을 제공한다. 파이썬 또한 마찬가지이다
입력받는 함수는 '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 |