본문 바로가기

python

2. if, for, while 문

728x90
반응형

9. if 개념 배우기 ( if~else)

 

if 예제:

 

x=1

y=2

if x >= y:

    print('x y보다 크거나 같습니다')

else:

    print('x y보다 작습니다') 

 

설명: 파이썬에서 콜론(:) 쓰는 경우 4가지

         1. if

         2. for loop (for 변수 in 반복시킬 )

         3. while loop

         4. def 함수문

 

if 예제 2) :

a=int(input('숫자를 입력하세요~'))

if a%2==0:

    print('짝수 입니다.')

else:

    print('홀수 입니다.')

 

숫자를 입력하세요~ 라고 뜨고,

1 입력했더니

홀수 입니다. 라고 출력

 

물어보게 하고 싶으면 input 쓰면 된다.

a%2==0 a 2 나눈 나머지 값이 0 이라는 뜻이다.

그래서 if 나머지값 0 이면 짝수

else 나머지값 0 아닌 것을 홀수 라고 한다.

 

 

문제9. 숫자를 두개를 각각 아래처럼 물어보게 하고

아래처럼 출력되게 하시오

 

첫번째 숫자를 입력하세요 ~ 1

두번째 숫자를 입력하세요~ 10

1 10보다 작습니다.

 

첫번째 숫자를 입력하세요 ~ 10

두번째 숫자를 입력하세요~ 1

10 1보다 큽니다.

 

 

a=int(input('첫번째 숫자를 입력하세요'))

b=int(input('두번째 숫자를 입력하세요'))

if a>=b:

    print(b,'', a,'보다 작습니다')   

else:

    print(b,'', a, '보다 큽니다') 

 

*****print에서 싱글쿼테이션과 콤마 알맞게

 

 

문제10. 이름을 물어보게 하고

이름을 입력하면

해당 사원의 월급이 출력되게 하시오

 

이름을 입력하세요~ SCOTT

3000

 

import csv

a=str(input('이름을 입력하세요~'))

file=open("d:\\csv\\emp2.csv",'r')

emp2_csv=csv.reader(file)

for emp2_list in emp2_csv:

    if emp2_list[1]==a:

        print(emp2_list[5])

 

 

문제11. 위의 문제를 다시 수행하는데 scott 대문자/소문자 입력

상관없이 출력되게 하시오

 

import csv

a=str(input('이름을 입력하세요~'))

file=open("d:\\csv\\emp2.csv",'r')

emp2_csv=csv.reader(file)

for emp2_list in emp2_csv:

    if emp2_list[1]==a.upper():

        print(emp2_list[5])

 

a라는 객체안에 upper라는 대문자 함수를 넣겠다.

 

 

10. if 개념 배우기 (if~elif)

 

: 

a=int(input('첫번째 숫자를 입력하세요'))

b=int(input('두번째 숫자를 입력하세요'))

if a>b:

    print(b,'', a,'보다 작습니다')   

elif a==b:

    print(b,'', a, '와 같습니다') 

else:

    print(b,'',a,'보다 큽니다') 

 

*****else a<b:

       하면 에러

 

 

문제12. 이름을 물어보게 하고

이름을 입력해서 해당 사원의 월급이 3000 이상이면

'고소득자 입니다' 라는 메세지 출력,

                                     월급이 2000~3000 사이면

'적당합니다' 라는 메세지 출력,

                                     월급이 2000 이하면

'월급 인상자 입니다' 라는 메세지 출력되게 하시오.

(이중문 하라는데 어찌 아나요)

 

import csv

a=str(input('이름을 입력하세요~'))

file=open("d:\\csv\\emp2.csv",'r')

emp2_csv=csv.reader(file)

for emp2_list in emp2_csv:

    if emp2_list[5]==3000<a:

        print('고소득자 입니다')

    elif emp2_list[5]==2000==a:

        print('적당합니다')       

    else emp2_list[5]==2000>a:       

        print('월급 인상자 입니다')

  

 

 

문제13. 아래의 리스트에 있는 요소()들을 하나씩 뽑아서 출력하시오

['7566', 'JONES', 'MANAGER', '7839', '1981-04-01', '2975', '0', '20']

 

for q in ['7566', 'JONES', 'MANAGER', '7839', '1981-04-01', '2975', '0', '20']:

    print(q)

 

 

 

문제14. 숫자 1번부터 100 까지 세로로 출력하시오

 

for w in range(100):

    print(w+1)

 

for i in range(1,101):

    print(i)

 

 

 ※ for _ in _ loop

   list = [1,2,3,4,5]

   for i in  list:

       print(i)

->리스트 patterns 값을 하나씩 꺼내 pattern(=i) 으로 전달

->리스트의 길이만큼 print(pattern) 실행

 

 

문제15. 아래와 같이 숫자 짝수를 출력하시오

(% 활용)

2

4

6

8

10

 

for k in range(10) :

    if k%2 == 0 :

        print(k+2)

 

for i in range(1,11):

    if i%2==0:

        print(i)

 

 

파이참에서

중버튼--디버그-오른쪽상단 반딧불이그림-에프9 확인

**만약 안나오면 다른입력값 지워보고 시도

 

 

문제16. 아래와 같이 결과를 출력하시오

1

3

5

7

9

for i in range(10):

    if i%2==1:

        print(i)

 

 

11. for 개념 배우기 (for)

파이썬의 for 문의 기본적인 구조는 다음과 같다.

for  변수 in  리스트 (또는 튜플, 문자열, range) :

    수행할 문장1

    수행할 문장2

 

리스트나 튜플, 문자열의 첫번째 요소부터 마지막 요소까지

차례로 변수에 대입되어 "수행할 문장1", "수행할 문장2" 등이

수행된다.

 

문법: for 반복변수 in 순서열(범위):

                             

                          리스트, 튜플, 딕셔너리

                             []       ()      {}

    실행문

 

예제:   for    i     in (1,2,3) :

                 print(i)

 

예제: for   i   in   'i am a boy':

               print(i)

 

in 뒤의 패턴들 만큼, 하나씩, 출력한다.

 

 

 

문제17.

 for loop 문을 이용해서 숫자 1부터 10까지 출력하시오

 

for i in range(10):

    print(i+1)

 

또는

for i in range(1,11):

    print(i)

 

**설명: 2 증가하고 싶다면?

 

for i in range(1,11,2):

    print(i)

 

 

**하나의 문자를 반복해서 출력하고 싶다면?

 

>>> 4 * 'k'


 

  

   4 * '*'


 

 

 

 

문제18. 아래와 같이 결과를 출력해보시오

 

for i in range(1,10,1):

    print(i*'')

 

**별이 9 반복해서 출력되었으니, 패턴의 수는 9.

   별이 1부터 시작해서 1 증가.

   그래서 range(1,        10,        1)

                                        

            시작개수    반복     증가수

 

 

문제19. 숫자를 물어보게 하고, 숫자 10 입력하면

          출력되게 하시오

(if 쓰고 풀어보시오) 

 

숫자를 입력하세요~ 10

 

a=int(input('숫자입력:'))

if a==10:

    for i in range(1,10,1):

        print(i*'')

 

다른답

a=int(input('숫자입력:'))

for i in range(1,a):

    print(i*'')

 

 

***과정 모식도***

 

for i in range(1, 10, 1)                   for i in range(1, 10, 1); print(i * '')

                                                        

i = 0 -> 0+1 =1                                        i = 1*''

i = 1 -> 1+1 =2                                        i = 2*''

       :                                                           :

       :                                                               :

i = 9 ->9+1 =10                                      i = 10*''

 

***숫자가 순차적으로, 패턴 만큼 들어 간다는게 포인트

 

 

문제20. 숫자를 물어보게하고 숫자를 입력하면

 아래와 같이 출력되게 하시오 


숫자를 입력하세요~ 10

 

 

x=int(input('숫자를 입력하시오 : '))

for y in range(x+1, 1, -1):

    print(y*'')

 

다른답

a=int(input('숫자입력'))

for i in range(a,0,-1):

    print(i*'')

 

 

****-1 거꾸로 가라는 .

      그래서 range 거꾸로 순서넣어줌

 

 

 

오답:

a=int(input('숫자를 입력하시오 : '))

for y in range(1,a,-1):

    print(y*'')

 

 

 

문제21.아래와 같이 숫자를 물어보게 하고 출력해서

사각형을 만드시오(댓글로 올리시오) 

 

가로의 숫자를 입력하세요~ 5

세로의 숫자를 입력하세요~ 6

 

a=int(input('가로의 숫자를 입력하세요~') )

b=int(input('세로의 숫자를 입력하세요~') )

for y in range(1, b+1)

    print(a * '')

 

 

***

print i 넣어서 1,2,3,4,5,6 순차적으로 대입이 안되고

range(1, b+1) = range(1, 7) -> 1 부터 시작해서 6 반복해라

                                  라는 for loop 값만 적용해서 출력한다.

***

 

 

문제22. 아래와 같이 출력하시오!

(마지막 문제, 댓글로 올리시오)

 

숫자를 입력하세요~ 5

 


 

a = int(input('숫자를 입력 :'))

for i in range(1, a+1):

    print( (a-i)  *  ' ',  i  *  '★' )

 

다른답

a=int(input('숫자입력'))

for i in range(1, a+1):

    print(' '*(5-i),  i*'')

 

 

문제23. 구구단 2단을 출력하시오

(for in 사용해서)

 

2X1 = 2

2X2 =4

2X3 =6

  :

  :

2X9 =18

 

for i in range(1,10):

    print('2','x',i ,'=',i*2)

 

 

 

문제24. 구구단 2단부터 9단까지 출력하시오

(중첩 for loop문으로)

 

for i in range(1,10):

    print('2','x',i ,'=',i*2)

for i in range(1,10):

    print('3','x',i ,'=',i*3)

for i in range(1,10):

    print('3','x',i ,'=',i*3)

           :

           :

이렇게 일일이 쓰는 방법과

중첩 for loop 쓰는 방법이 있다

 

for i in range(1, 10):   #i= 2,3,4,5,6,7,8,9

   for e in range(1, 10):   #e= 1,2,3,4,5,6,7,8,9

       print(i,'x',e,'=',i*e)

 

i=2 ----->  e=1,2,3,4,5,6,7,8,9

  :

  :

i=9 -----> e=1,2,3,4,5,6,7,8,9

 

위에 있는 i 메인루프

아래 있는 e 보조루프

 

 

 

구구단을 세로가 아닌 가로 출력하게 하기 위해

 알아야 하는 내용

 

SLQ> select lpad(sal,  20, ' ')

          from emp

설명: 월급을 출력하는데 전체 20자리 잡고,

        월급출력되고 남는 공간은 공백을 왼쪽에 채워넣어라.

       ex)  '                3000'

 

 

 

° python> 'k'.ljust(20) 또는  'k'.rjust(20)

 


ljust => 오른쪽에 공백을 채워라(=rpad_sql)

 

 

° python>result

 

result=' '

for i in range(2,10):

    result += str(i)+'  x  '

    print(result) 

 

result=' '

for i in range(2,10):

    result += str(i)+'  x  '

print(result)

 


***위의 4 print 최종 마지막 결과문 만을

뽑는 내용이다.

 

 

° result=' '  : result 널값 넣겠다.

°  +=   :    result 결과와 str 결과를 연결하겠다.

°  +     :   연결하겠다.(덧셈 아님)

 

 

result=' '

for i in range(2,10):

    result += str(i)+'  x  '

print(result)

 

 

 

 

result=' '

for i in range(2,10):

    result = '3'

    print(result)  


파이썬은 항상 오른쪽 실행하고 값을 왼쪽에 넣어줌.

 

 

 

result=' '

for i in range(2,10):

    result = result + '3'

    print(result)    


 

 


프린트의 위치가 메인for loop 같은 선상이라서

메인 루프 한바퀴 값만 뽑는다.

 

 

 

 

 

문제25. 구구단 전체와

          2  

          가로로 출력하시오

 

전체


 

result = ' '

for i in range(2, 10):

    for j in range(1, 10):

        result  +=  str(i)  +  'x'  +  str(j)  +  '='  +  str(i*j)  +  '  '

print(result)

 

 

 

 

2


 

result = ''

for i in range(1,10):

    result += '2 x ' + str(i) + ' = ' + str(2*i) + '   '

print(result)

 

 

 

 

문제26. 구구단 전체를 맞춰서 출력하시오


반장답

result = ''

for a in range(2,10):

    result = ''                 #여기서 끊어줘도 되는구나

    for i in range(2,10):

        result += (str(a).rjust(2) + 'x' + \

                   str(i).rjust(2) + '=' + \

                   str(a*i).rjust(2) + '  ')

    print(result)

 

 

소현답

result = ''

for i in range(2,9+1):

    for j in range(1,9+1):

        result = result + str(i) + ' X ' + str(j) + ' = ' + str(i*j) + '  '

    print(result)

    result = ''   #이걸 비워야 2,3..9 안겹치고 출력됨.

 

*파이참 디버깅 ㄱㄱ

 

result=' '   변수 초기화

(result 안에 혹시 있을 모를 뭔가를 리셋 하는 .

  컵을 비우고 새로운 내용을 담아야 에러가 안생김.)

 

 

 

Print, result 위치에 따른 값이 변화

 

result=' '

for i in range(2, 9+1):

    for j in range(1, 9+1):

        result = result+ str(i)+ 'x' +str(j)+'='+str(i*j)+'   '

    print(result)

    result=' '   

프린트와 맨마지막  result

2번째  for loop문과

같은 라인에 있다.

-> 2번째 루프의 1 반복이 끝나면 print result='비워라 ' 하라는 뜻이다.

--->구구단이 2/3단/4단…/9 별로 끊어져서 출력된다.

 

 

result=' '

for i in range(2, 9+1):

    for j in range(1, 9+1):

        result = result+ str(i)+ 'x' +str(j)+'='+str(i*j)+'   '

        print(result)

    result=' '   

프린트가 2번째  result 같은 선상에 있다.

마지막 result 2번째 for loop문과 같은 선상에 있다.

->Print result+= 값을 타서 출력될 거고,

   마지막 result 때문에 j 한바퀴 돌고 바꿔서 다시 돌것이다.

 

차이를

 

 

 

 

 

 

문제27. 숫자를 물어보게 하고 숫자를 입력하면

   해당 단이 가로로 출력되게 하시오

(그냥  for loop 되고, result 해도 )

 

숫자를 입력하세요 !  2

2 x 1 = 2    2 x 2 = 4    2 x 3 = 6  ........2 x 9 =18

 

a=int(input('숫자를 입력'))

result=' '

for i in  range(1, 9+1):

    result= result + str(a) +' x '+str(i)+' = '+str(a*i)+'   '

print(result)

 

 

a=int(input("숫자입력"))   

for i in range(1,9+1):

    print(a,'x',i,'=',a*i)

   

 

 

 

문제28.(오늘의 점심시간 문제)

아래와 같이 숫자를 물어보게하고 숫자를 입력하면

해당하는 마름모가 출력되게 하시오!

 

숫자를 입력하세요~ 5

 

   

    ★★

   ★★★

  ★★★★

 ★★★★★       <-----5

  ★★★★

   ★★★

    ★★

    

 

 

a=int(input('숫자를 입력하세요~'))

for i in range(1,a+1):

    print((a-i)*' ',i*'')

for i in range(a-1,0,-1):

    print((a-i)*' ',i*'')   

 

a=int(input("숫자5입력"))

for i in range(1,5+1):

    print((a-i)*' ',i*'')

for j in range(4,0,-1):

    print((a-j)*' ',''*j)  

 

 

 

 

12. for 개념 배우기 (for~continue~break)

 

1. continue

"반복문이 실행되는 동안 특정 코드 블럭을

실행하지 않고

다른 코드 블럭만 실행되게 사용하는 문법"

: "0부터 9까지 출력을 하는데

     홀수는 출력하지 마라 ! "

 

for i in range(10):

    if i % 2 == 1:    #2 나눈 나머지값이 1 된다면

        continue      # i 홀수이므로 실행하지 말고

    print(i)            # 다른 코드 블럭만 실행되게 해라

 

continue '제껴라' , '무시하고 계속 해라' 라고 해석할 .

 

 

 

문제29. 숫자 1부터 10까지 출력하는데

 중간에 5 출력되지 않게 하시오

 

for i in range(1,11):

    if i == 5:

        continue

    print(i)

 

 

문제30. 아래의 학생 점수 리스트를 이용해서 60 이상인

학생들에게는 축하 메세지를 보내고

나머지 학생들에게는 아무런 메세지도 전하지 않는

프로그램을 작성하시오!

 

jumsu= [90, 25, 67, 45, 80]

num = 0

for i in jumsu:

    num=num+1

    if i < 60:

        continue

    print("%d 학생 축하합니다. 합격입니다" %num)

 

※문자열 포멧팅 이해하기 (34)

"변하는 값을 포함하는 문자열을 표현하기 위해

 하나의 양식으로 문자열을 만드는 "

 

:

   %s      :  문자열

   %d   : 정수

   %f   : 실수

   %% : %기호

 

 

문제31. 위의 문제의 코드를 수정해서 아래와 같이 결과가

출력되게 하시오

 

결과:

1 학생 90 입니다. 축하합니다. 합격입니다

3 학생 67 입니다. 축하합니다. 합격입니다

5 학생 80 입니다. 축하합니다. 합격입니다

 

소진답

jumsu= [90, 25, 67, 45, 80]

num = 0

for i in jumsu:

    num=num+1

    if i < 60:

        continue

    print("%d 학생" %num + str(i) + "점 축하합니다. 합격입니다")

 

 

jumsu = [ 90, 25, 67, 45, 80 ]

num = 0

for i in jumsu:

    num = num + 1

    if i < 60:

        continue

    print ("%d 학생" %num + "%d 입니다. 축하 합니다. 합격입니다." %i)

 

 

jumsu = [90, 25, 67, 45, 80]

num = 0

for i in jumsu:

    num = y+1

    if i<60:

        continue

    print('%d 학생' %num, i, '점 입니다. 축하합니다.')   

 

**print 안에 서로 다른 여러값 넣을 경우,

  (%, i)

   %지정값은

  해당 로우 바로 뒤에 써줘야 한다.**

 

jumsu = [90,25,67,45,80]

num = 0

for i in jumsu:

    num = num+1

    if i < 60:

        continue

    print("%d 학생 %d점입니다. 축하합니다. 합격입니다." %(num,i) )

 

 

 

 

문제32. 우리반 테이블을 csv 만들어서

파이썬으로 로드해서 출력하시오!

 

import csv

file=open("d:\\csv\\emp7.csv", 'r')   

emp7_csv=csv.reader(file)

for emp7_list in emp7_csv:

    print(emp7_list)

 

 

집컴

import csv

file=open("C:\\Users\kight\Desktop\세희쓰\PYTHON\\emp7.csv", 'r')   

emp7_csv=csv.reader(file)

for emp7_list in emp7_csv:

    print(emp7_list[1])

 

 

 

문제33. 우리반 테이블의 데이터를 출력하는데

 나이가 30 이상인 학생들의 이름을 출력하시오

 

import csv

file=open("d:\\csv\\emp7.csv", 'r')   

emp7_csv=csv.reader(file)

for emp7_list in emp7_csv:

    if int(emp7_list[1]) > 30:

        print(emp7_list[0])

 

 

 

 

문제34.

우리반 테이블의 데이터를 출력하는데

나이가 30 이상인 학생들만 출력하고

아래와 같이 메세지가 출력되게 하시오

 

 

김용원 학생 축하합니다. 늙었습니다.

오세희 학생 축하합니다. 늙었습니다.

   :

   :

김용식 학생 축하합니다. 늙었습니다.

 

import csv

file=open("d:\\csv\\emp7.csv", 'r')   

emp7_csv=csv.reader(file)

for emp7_list in emp7_csv:

    if int(emp7_list[1]) > 30:

        print(emp7_list[0],"학생 축하합니다. 늙었습니다.")

       

 

 

문제35.

우리반 테이블의 데이터를 전체 출력하는데

통계학과 학생들만 빼고 출력하시오

 

import csv

file=open("d:\\csv\\emp7.csv", 'r')   

emp7_csv=csv.reader(file)

for emp7_list in emp7_csv:

    if str(emp7_list[3]) in ('통계학과', '정보통계보험수리학과'):

        continue

    print(emp7_list[0])

 

 

12. for 개념 배우기 (for~continue~break)

"루프에서 중단시키는 역할을 하는 문법"

예제:

 scope = [1,2,3]

for i in scope:

    print(i)

    break

else:

    print('perfect')

 

※설명:  scope 1 출력하고 break 해라

 

 

문제36. 위의 스크립트를 수정해서 1부터 100까지 숫자가

출력되게 하는 loop 문을 만드는데

숫자 물어보게 해서

해당 숫자에서 loop 문이 종료되게 하시오!

(break 사용, 6까지 출력되게!)

 

숫자를 입력 7

a=int(input("숫자를 입력"))       

for i in range(1, 101):

    if i==a :

        break

    print(i)  

 

 

 

13. for 개념 배우기 (for~else)

예제 13

scot=[1,2,3]

for x in scope:

    print(x)

    #break

else:

    print('perfect')   

             

설명: for~else 문에서 else 뒤의 실행코드

              for 반복문을 모두 성공적으로 수행해야만

         실행합니다.

             else: 로의 진입은 for 반복문에서 break 등에 의해 중간에

        중단됨이 없이 정상적으로 실행이 되었을 경우입니다.

 

 

14.  while 개념 배우기(while~continue~break)

 

문법:

while 조건문:

    수행할 문장1

    수행할 문장2

 

설명: 위의 조건문에 만족할 동안에 계속해서

         수행할 문장을 반복하겠다.(while loop )

 

예제:

x=0

while x<10:     #~동안 계속 반복하라

    x= x+1          # x = 1,2,3,4,5,6,7,8,9,10

    if x < 3:

        continue

    print(x)       

    if x > 7:

        break

       

 

 

문제37. while loop 문을 이용해서 숫자1부터 100까지 출력하는

스크립트를 만드는데

숫자를 물어보게하고 해당 숫자만큼 숫자가 출력되게하시오

(break 쓰고/ 안쓰고 2)

 

숫자를 입력  8

 

Break 쓴거

a=int(input("숫자입력"))

x=0

while x <101:

    x=x+1

    if x <= a:

        print(x)

    if x > a:

        break  

 

 

Break 쓴거

a=int(input("숫자를 입력"))

x=0

while x < 100:

    x = x + 1

    if a >= x:

        print(x) 

 

설명: for loop 문으로 있는건

          while loop 문으로 있다.

 

loop 문이 필요한 이유

         실행문을 반복해서 실행하고자 필요하다.

         단순작업을 자동화 시킬 있다.

 

 

 

문제38. 아래와 같이 숫자를 물어보게 하고

 숫자를 입력하면 출력되게 하시오

(While  작성/ if 생략하고 출력하시오) 


"숫자를 입력"  7

 

a=int(input("숫자를 입력"))

x=0

while x<100:

    x= x+1

    if a >= x:

        print(x*'')

 

 

If  생략

x = 0

while x < a :         # x < 7

    x = x + 1           # 1 = 0 + 1

    print(x*'') 

 

    0 < 7

★★  1 < 7

★★★  2 < 7

★★★★  3 < 7

★★★★★  4 < 7

★★★★★★  5 < 7

★★★★★★★  6 < 7

 

 

무한으로 뽑고 싶다면~

while True:

    print('')

또는

while 1:

    print('')

 

 

 

문제39. 아래와 같이 출력되게 하시오

 

숫자입력 7

 

a= int(input('숫자를 입력하세요: '))

x=0

while x<a :

    x=x+1

    print((a-x+1)*'')   

 

 

X=x+1 마지막에도 있다.

a= int(input('숫자를 입력하세요')) 

x = 0

while x < a :  

    print((a-x)*'')

    x=x+1

 

 

선생님 설명&:

a= int(input('숫자를 입력하세요: '))   7

x=0

 

while x<a :  #   0 < 7

    x = x + 1   #  1

    print((a-x)+1*'')  # 7 - 1 = 6 + 1 = 7

                         # 7 - 2 = 5 + 1 = 6

                         # 7 - 3 = 4 + 1 = 5

                         # 7 - 4 = 3 + 1 = 4

                         # 7 - 5 = 2 + 1 = 3

                         # 7 - 6 = 1 + 1 = 2

                         # 7 - 7 = 0 + 1 = 1

 

 

 

 

문제40. 아래와 같이 '' 세모를 출력하시오

숫자를 입력하세요 5


 

x = 0

a = int(input('숫자를 입력하세요 : '))      #5

while x < a:                                                     # x < 5

   x = x + 1                                                       # 1

   print( ( a - x )*' ',x * '')                          # (5-1)*' ', 1*''

 

 

 

문제41.(오늘의 마지막 문제)

(for loop, while loop 상관없음)

(처음엔 숫자지정해서 풀고,

  되면 input 해서 ! )


 

For

for i in range(1,5+1):

    print(' '*7,(5-i)*' ',i*'')

x=0

for i in range(13, 8, -1):

    x=1+x

    if x < 7:    

        print(' '*(x) ,''*i)

x=0

for i in range(8, 14):

    x=1+x

    if x < 13:

        print(' '*(i-2*x), ''*i, ' '*x)       

x=0

for i in range(5,0,-1):

    x=x+1

    print(' '*7 ,' '*x ,i*'', ' '*x) 

 

 

 

 

While

x=0

while x<6:

    x=x+1

    print(' '*7,' '*(6-x),''*x)

x=0   

while x<14:

    x=x+1 

    if x > 7:

        continue

    print(' '*(x), (14-x)*'')

x=7

while x<14:

    x=x+1

    print(' '*(14-x),''*x)   

x=0

while x<6:

    x=x+1

    print(' '*7,' '*x,''*(7-x) )   

 

 

 

**홈페이지 가서

다른 친구들 참고해도 좋음

정말 다양함.

 

 

 

숫자입력 5

a=int(input('숫자입력'))  

b=a+3

for i in range(1,a+1):

    print(' '*7,(a-i)*' ',i*'')

x=0

for i in range(13, b, -1):

    x=1+x

    if x < 7:    

        print(' '*(x) ,''*i)

x=0

for i in range(b, 14):

    x=1+x

    if x < 13:

        print(' '*(i-2*x), ''*i, ' '*x)       

x=0

for i in range(a,0,-1):

    x=x+1

    print(' '*7 ,' '*x ,i*'', ' '*x)  

 

-----------------------아래 참고--------------

a= int(input('숫자를 입력하세요: '))

x=0

while x<a :

    x=x+1

    print((a-x+1)*'')   

 


 

 

 

 

a= int(input('숫자를 입력하세요: '))

x=0

while x<a :

    x=x+1

    print(' '*x,(a-x)*'')  

 


 

 

 

x = 0

a = int(input('숫자를 입력하세요 : '))     

while x < a:                                                    

   x = x + 1                                                      

   print( ( a - x )*' ',x * '')                        

 


 

 

 

a=int(input('숫자를 입력하세요~'))

for i in range(1,5+1):

    print((5-i)*' ',i*'')

for i in range(5-1,0,-1):

    print((5-i)*' ',i*'')   

 


 

-------------------------------------------------

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 


728x90
반응형

'python' 카테고리의 다른 글

5. 시퀀스 자료  (0) 2019.03.24
파이썬vs오라클vs판다스 연산자  (0) 2019.03.24
4. 연산자, TRUE/FALSE  (0) 2019.03.24
3. None, 정수형, 실수형, 복소수형  (0) 2019.03.24
1. 파이썬 변수생성,들여쓰기  (0) 2019.03.24