파이썬 실전 튜토리얼 100일: Day04 - 순환 구조

100일 제로 기초 입문 파이톤 개발, 파이톤 실전 학습 강좌:Day04 - 순환 구조.
순환 구조의 응용 장면
만약에 프로그램에서 우리가 어떤 지령이나 어떤 지령을 중복적으로 집행해야 한다. 예를 들어 프로그램으로 로봇이 축구를 하는 것을 제어해야 한다. 만약에 로봇이 공을 잡고 슛 범위에 들어가지 않았다면 우리는 로봇이 골대 방향으로 달리도록 하는 지령을 계속 내려야 한다.물론 방금 묘사한 것에는 사실 중복되는 동작이 필요할 뿐만 아니라, 우리가 지난 장에서 말한 지점 구조도 있다는 것을 알아차렸을 것이다.다시 간단한 예를 들면, 예를 들어 우리 프로그램에서 1초 간격으로 화면에 'Hello, World' 라는 문자열을 인쇄하고 1시간 동안 지속하려면, 우리는 print('hello, world') 이 코드를 3600번 쓸 수 없을 것이다. 만약 정말 이렇게 해야 한다면 프로그래밍 작업은 너무 지루할 것이다.따라서 우리는 순환 구조를 이해해야 한다. 순환 구조가 있으면 우리는 어떤 일이나 어떤 일이 중복, 중복, 재중복되는 발생을 쉽게 통제할 수 있다.파이톤에서 순환 구조를 구성하는 데는 두 가지 방법이 있는데 하나는 for-in 순환이고 하나는 while 순환이다.
for-in 루프
만약 순환이 실행되는 횟수를 명확히 알고 있거나 용기를 교체해야 한다는 것을 알고 있다면 (뒤에 설명할 것) 순환을 사용하는 것을 추천합니다. 예를 들어 아래 코드에서 $\sum 를 계산하는 것을 추천합니다.{n=1}^{100}n$.

"""
 for    1~100  

Version: 0.1
Author:   
"""

sum = 0
for x in range(101):
	sum += x
print(sum)
for-in 유형,

range는 변하지 않는 수치 서열을 생성할 수 있으며 이 서열은 보통 순환에 사용된다. 예를 들어 다음과 같다.

  • range는 0에서 100의 정수 서열을 만들 수 있다.
  • range(101)는 1에서 99의 정수 서열을 만들 수 있다.
  • range(1, 100)는 1부터 99까지의 홀수 서열을 만들 수 있는데 그 중 2는 보폭, 즉 수치 서열의 증가량이다.

  • 이 점을 알면 우리는 아래의 코드로 1~100 사이의 짝수 구화를 실현할 수 있다.
    
    """
     for    1~100       
    
    Version: 0.1
    Author:   
    """
    
    sum = 0
    for x in range(2, 101, 2):
    	sum += x
    print(sum)
    range(1, 100, 2)순환,

    , 。

    
    """
     for    1~100       
    
    Version: 0.1
    Author:   
    """
    
    sum = 0
    for x in range(1, 101):
    	if x % 2 == 0:
    		sum += x
    print(sum)

    while

    while순환은 while값을 생성하거나 변환할 수 있는 표현식을 통해 순환을 제어하고 표현식의 값은 bool순환이 계속되며 표현식의 값은 True순환이 끝난다.다음은 숫자를 맞히는 작은 게임(컴퓨터에서 1~100 사이의 무작위 수를 내고 사람이 자신이 맞힌 숫자를 입력하며 컴퓨터가 대응하는 힌트 정보를 주고 컴퓨터가 맞힌 숫자를 맞힐 때까지)을 통해 어떻게 사용하는지False 순환을 살펴본다.

    
    """
         
          1~100          
                       /   /   
    
    Version: 0.1
    Author:   
    """
    
    import random
    
    answer = random.randint(1, 100)
    counter = 0
    while True:
    	counter += 1
    	number = int(input('   : '))
    	if number < answer:
    		print('   ')
    	elif number > answer:
    		print('   ')
    	else:
    		print('      !')
    		break
    print('     %d ' % counter)
    if counter > 7:
    	print('          ')
    while 키워드는 순환을 앞당겨 중지하는데 주의해야 할 것은

    ** :** break는 그 순환을 중지할 수 밖에 없다는 점이다. 이 점은 끼워 넣은 순환 구조를 사용하는 데 있어 주의해야 한다.break 외에 또 다른 키워드break는 이번 순환의 후속 코드를 포기하고 순환을 다음 라운드로 직행할 수 있다는 것이다.
    분지 구조와 마찬가지로 순환 구조도 끼워 넣을 수 있다. 즉, 순환 중에도 순환 구조를 구성할 수 있다.아래의 예는 어떻게 덧붙인 순환을 통해 구구단을 출력하는지 보여 준다.

    
    """
           (   )
    
    Version: 0.1
    Author:   
    """
    
    for i in range(1, 10):
    	for j in range(1, i + 1):
    		print('%d*%d=%d' % (i, j, i * j), end='\t')
    	print()
    continue

    1: 。

    
    """
                   
    
    Version: 0.1
    Author:   
    Date: 2018-03-01
    """
    
    from math import sqrt
    
    num = int(input('        : '))
    end = int(sqrt(num))
    is_prime = True
    for x in range(2, end + 1):
    	if num % x == 0:
    		is_prime = False
    		break
    if is_prime and num != 1:
    	print('%d   ' % num)
    else:
    	print('%d    ' % num)

    2: , 。

    
    """
                        
    
    Version: 0.1
    Author:   
    Date: 2018-03-01
    """
    
    x = int(input('x = '))
    y = int(input('y = '))
    if x > y:
    	(x, y) = (y, x)
    for factor in range(x, 0, -1):
    	if x % factor == 0 and y % factor == 0:
    		print('%d %d       %d' % (x, y, factor))
    		print('%d %d       %d' % (x, y, x * y // factor))
    		break

    3: 。

    
    """
             
    
    *
    **
    ***
    ****
    *****
    
        *
       **
      ***
     ****
    *****
    
        *
       ***
      *****
     *******
    *********
    
    Version: 0.1
    Author:   
    """
    
    row = int(input('     : '))
    for i in range(row):
        for _ in range(i + 1):
            print('*', end='')
        print()
    
    
    for i in range(row):
        for j in range(row):
            if j < row - i - 1:
                print(' ', end='')
            else:
                print('*', end='')
        print()
    
    for i in range(row):
        for _ in range(row - i - 1):
            print(' ', end='')
        for _ in range(2 * i + 1):
            print('*', end='')
        print()

     

    좋은 웹페이지 즐겨찾기