본문 바로가기

IT

6. 파이썬 - while문, for문, range

while문

'''
while문
정수를 하나 입력받아 1부터 입력받은 정수까지의 누적합계를 while을 이용하여 구하는 코드를 만들어라.

쉽게 보면 while문은 제어변수, 조건식, 증감식 이 3가지만 기억하면 된다.
'''
number = int(input("정수:"))

sum = 0
num = 1 # 제어변수(begin) 
while  num <= number: #조건식(end)
    sum += num
    num += 1 # 증감식(step)
print("1부터 입력받은 정수까지의 누적합 ", sum)


--------------------결과------------------------
정수:10
1부터 입력받은 정수까지의 누적합  55

 

 

for문

'''
for문 (시퀀스 사용)
for문은 시퀀스 자료형 내의 데이터를 순차적으로 꺼내서 반복작업하는 반복문이다. 
시퀀스 자료형이란 여러 개의 값들을 모아놓은 집합이며 대표적으로 리스트, 문자열 등이있다.
리스트란 []안에 데이터들을 나열해 놓은 일종의 배열이다.

ex) for 제어변수 in 시퀀스 자료형 데이터 : 
        반복 실행할 코드
        
'''

nums = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
print()

for stu_num in nums:
    print(stu_num, "번 학생 성적처리!!")
    
    ---------------------결과-----------------------
1 번 학생 성적처리!!
2 번 학생 성적처리!!
3 번 학생 성적처리!!
4 번 학생 성적처리!!
5 번 학생 성적처리!!
6 번 학생 성적처리!!
7 번 학생 성적처리!!
8 번 학생 성적처리!!
9 번 학생 성적처리!!
10 번 학생 성적처리!!

 

 

내장함수 range

'''
내장함수 range(begin, end, step)
순차적으로 증가하는 정수 리스트를 만들 때 대괄호 안에 데이터를 콤마로 일일히 나열하기보다는
range함수를 사용하여 쉽게 리스트를 생성할 수 있다.

ex) range(시작값, 끝값, 증감값)
- 시작값은 포함하지만 끝값은 포함하지 않는다.
'''
    
print("-" * 40)
a = list(range(1, 11, 1)) #1, 2, 3, 4, 5, 6. 7, 8, 9, 10 까지 나옴
print(a)

b = list(range(4, 15)) # 증감값 생략시 1로 처리
print(b)

c = list(range(1, 11, 3))
print(c)

# range에 값을 하나만 주면 끝값으로 처리, 시작값을 0으로 처리
d = list(range(6)) #range(0, 6, 1)
print(d)

print("-" * 40)
sum = 0
for n in range(1, 101, 1):
    sum += n
print("1~100까지의 합", sum)


print("-------------------------------------")
'''
1. 퀴즈 
while문으로 작성된 코드를 for문으로 수정해봐라
count = 0
n = 1
while n < 9876:
    if n % 13 == 0
        count += 1
    n += 1
print("13의 배수의 개수:", count)
'''
count = 0
for n in range(1, 9876):
    if n % 13 == 0:
        count += 1
print("13의 배수의 개수: ", count)


'''
2.퀴즈
정수 x와 y를 입력받아 x부터 y까지의 누적합을 처리하는 코드를 
for문과 range()를 이용하여 구성해보세요.
'''
print("-----------------")
x = int(input("x : "))
y = int(input("y : ")) 

sum = 0
for n in range(x, y+1 , 1) :
    sum += n
    n += 1
print("x부터 y까지의 합 : ", sum)

---------------------------결과----------------------------------

----------------------------------------
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
[4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14]
[1, 4, 7, 10]
[0, 1, 2, 3, 4, 5]
----------------------------------------
1~100까지의 합 5050
-------------------------------------
13의 배수의 개수:  759
-----------------
x : 10
y : 20
x부터 y까지의 합 :  165