파이썬 알고리즘 (7) 썸네일형 리스트형 직각 이등변 삼각형으로 출력하기 이번주 계획 직각 이등변 삼각형으로 출력하기 배열 개념 알아보기 리스트와 튜플 알아보기 이중루프를 응용하면 특수 문자로 표현한 삼각형이나 사각형을 출력할 수 있습니다. print('왼쪽 아래가 직각인 이등변 삼각형을 출력합니다') n int( input('짧은 변의 길이를 입력하세요 :') ) for i in range(n) : for j in range ( i + 1 ) : print ('*', end='' ) print() * * * * * * * * * * * * * * * print('왼쪽 아래가 직각인 이등변 삼각형을 출력합니다') n int( input('짧은 변의 길이를 입력하세요 :') ) for i in range(n) : for _ in range ( n - i - 1 ) : print.. 다중 루프 알아보기 이번주 계획 직사각형의 넓이로 변의 길이 구하기 반목문 건너뛰기와 여러 범위 스캔하기 다중 루프 알아보기 구구단 곱셈표 출력하기 print ( '-' * 27 ) for i in range ( 1, 10 ) : for j in range ( 1, 10 ) : print( f'{i*j:3}', end='' ) print( ) print ( '-' * 27 ) 바깥쪽 for 문은 i값을 1 부터 9 까지 증가 시킵니다. 각 반복은 1행,,,,9행에 해당합니다. 즉, 바깥쪽의 for 문은 세로 방향의 반복문 입니다. 세로 방향 반복문에서 다시 실행되는 안쪽 for 문은 j 값을 1~9 까지 1씩 증가 시킵니다. 즉, 각 행에서 가로 방향의 반복문 입니다. 정리하자면 i 값을 1부터 9까지 증가시키는 열 루프를.. 양수만 입력 받기 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 음수를 입력하면 거절 하게끔 해야 하는 프로그램 ! 이건 뭐 당연한거지만 if 문을 걸어서 0보다 작으면 break를 걸어서 다시 입력 받게 끔 만든 코드이다. print('1부터 n까지의 정수의 합을 구합니다.') while True : n = int( input ('n의 값 : ') ) if( n > 0 ) : break sum = 0 i = 1 for i in tange ( 1, n+1 ) : sum += i i += 1 print ( f'1부터 \{n}까지 정수의 합은 {sum} 입니다.' ) while 문의 조건식에 True 가 들어간 점이, 이는 프로그래머가 의도적으로 while문이 무한 반복 되도록.. 반복 과정에서 조건 판단하기 3 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 # * 을 n 개 출력 하되 w 개마다 줄바꿈 하기 print('*을 출력합니다.') n = int(input('몇 개를 출력할까요 ? : ')) w = int(input('몇 개를 출바꿈할까요 ? : ')) for i in range(n) : print( '*', end='' ) if i % w == w- 1 : print() if n % w : print() i 를 1씩 증가 시키면서 * 를 출력하고 줄바꿈은 i를 w로 나눈 나머지가 w-1 일 때 줄바꿈합니다. 즉, w가 5이면 i가 4, 9, 14 일 때 줄바꿈합니다. 하지만 n이 w가 배수가 아니면 줄바꿈을 for문 밖에서 따로 수행해야 합니다. for.. 반복 과정에서 조건 판단하기 2 이번주 계획 반복 과정에서 조건 판단하기 2 반복 과정에서 조건 판단하기 3 양수만 입력 받기 for문은 반복은 n번, 나눗셈도 n번, if문 판단은 n번 합니다. print('+와 -를 번갈아 출력합니다.') n = int(input('몇 개를 출력할까요? : ') for i in range(n) : if i % 2 : print('-', end='' ) else : print('+', end='' ) print() 위의 코드는 두가지의 문제점이 존재한다. 첫번째, for문이 반복할 때마다 if문을 수행한다는 것 입니다. 즉, n이 50,000 이라면 if 문도 50,000 번 수행됩니다. 두번쨰는 이 프로그램은 상황에 따라 유연하게 수정하기 어렵다는 것 입니다. 만약 i를 1부터 n까지 1씩 증가시키.. 연속하는 정수의 합을 구하기 위해 값 정렬하기 연속하는 정수의 합을 구하기 위해 값 정렬하기 연속하는 정수의 합을 구할 때 시작하는 값이 1이 아닌 정수를 입력 받았다면 range() 함수에 전달할 시작값과 끝값을 오름차순으로 정렬해야 합니다. print('a 부터 b까지 정수의 합을 구합니다.') a = int(input('정수 a를 입력하세요 = ')) b = int(input('정수 b를 입력하세요 = ')) if a > b : a, b = b, a sum = 0 for i in range ( a , b+1 ): sum += i print ('aaa') print(f'{a}부터 {b}까지 정수의 합은 {sum}입니다') 파이썬의 문법에 여러번 놀라는 나는 위에 코드를 보고 if 문에서 한번 더 놀랐다. 예를들어 java, c 는 a, b를 제외.. 세 정수의 최대값 구하기 입력으로 최대값 구하기 print('세 정수의 최대 값을 구합니다.') a = int(input('a 의 값을 입력 : ')) b = int(input('b 의 값을 입력 : ')) c = int(input('c 의 값을 입력 : ')) maximum = a if b > maximum : maximum = b if c > maximum : maximum = c print(f'최대 값은 {maximum} 입니다.' ) 함수로 최대값 구하기 def max3(a, b, c) : max = a if b > max : max = b if c > max : max = c return max print(f'max3(3,2,1) = {max3(3,2,1)}') 이전 1 다음