ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • python
    PYTHON 2022. 2. 23. 16:19
    '''
    * 반복문 for ~ in

    - 파이썬의 for문은 시퀀스 자료형 내부의 데이터를 순차적으로 꺼내서
    반복 작업하는 반복문입니다.

    - 시퀀스 자료형이란 여러 개의 값들을 모아놓은 집합 형태를 말하며,
    대표적으로 문자열, 리스트 등이 있습니다.

    리스트란 [] 안에 데이터들을 순차적으로 나열해 놓은 일종의 순차적 배열입니다.

    for 제어변수 in 시퀀스 자료형:
        반복실행문
    '''

    for num in [1,2,3,4,5,6,7,8,9,10]:
        print('반복문', num)

    total = 0
    for n in [1,2,3,4,5,6,7,8,9,10]:
        total += n

    print(total)
     
    '''
    * 내장함수 range()

    - 순차적으로 증가하는 정수의 순차적 자료형을 만들 때,
    대괄호 안에 데이터들을 콤마로 일일히 나열하는 것은 한계가 있기 때문에,
    range()함수를 이용해 보다 쉽게 순차형 반복 범위를 지정할 수 있습니다.

    ex) range(begin, end, step)
    - begin 값은 포함되지만(이상), end 값이 포함되지 않습니다. (미만)
    '''

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

    list2 = list(range(1, 11, 1))

    list3 = list(range(4, 15))
    print(list3)

    # range 함수 괄호 안에 값을 한 개만 두면 end로 인식합니다.
    # begin 값은 자동으로 0으로 처리됩니다.
    list4 = list(range(5))
    print(list4)

    print('-' * 40)

    # 1~100까지의 누적합을 구하느 ㄴ로직
    total = 0;
    for n in range(1, 101):
        total += n

    print('1~100까지의 누적합: ', total)

    '''
    - 정수를 하나 입력받아서 1부터 해당 수까지의
     모든 소수를 가로로 출력하고, 그 소수의 개수를
     출력하시면 됩니다.

     ex) 입력값: 12
        소수: 2, 3, 5, 7, 11
        개수: 5개
    '''
    num = int(input('점수를 입력하세요.'))
    count = 0

    for n in range(1, num+1): # 미만이니까 +1
        cnt = 0 # 소수판별을 위해 나누어 떨어진 횟수를 체크할 변수입니다.
        for i in range(1, n+1):
            if n % i == 0:
                cnt += 1
        # 소수 판별이 끝나고 나서,
        if cnt ==2:
            count += 1
            print(n, end='\n')

    print('\n소수들의 개수:', count, '개')
     
    '''

    '''




    '''
    * 파이썬의 블록구조 표현

    - 타 언어는 중괄호 ({})로 종속 구조를 표현할 때
     파이썬은 중괄호를 작성하지 않습니다.

    - 그 대신 콜론(:)과 들여쓰기로 블록구조를 표현합니다.

    - if문 뿐만이 아니라 코드의 종속구조를 나타내는 모든 문법에서
    (반복문, 함수 선언...) 콜론과 들여쓰기를 사용합니다.
    파이썬의 권장 들여쓰기 횟수는 스페이스바 4회입니다.
    들여쓰기는 모든 횟수가 통일되어야 합니다.
    콜론(:) 이후에는 반드시 줄 개행이 진행되어야 합니다.
    '''
     
    '''
    * 다중 분기 조건문 if ~ elif ~ else

    - 타 언어에서 else if로 작성하는 키워드를
     파이썬에서는 단축해서 elif로 작성합니다.
     문법의 의미는 똑같습니다.

    - 첫번째 조건식의 결과가 False일 경우 아래에 있는
    elif문의 조건식을 새롭게 테스트하여 해당 조건이 True일 경우
    elif에 종속된 코드를 실행합니다.
    개수에 제한은 없습니다.
    '''

    age = int(input('나이: '))

    if age >= 20:
        print('성인입니다.')
    elif age >= 17:
        print('고등학생입니다.')
    elif age >= 14:
        print('중학생입니다.')
    elif age >= 8:
        print('초등학생입니다.')
    else:
        print('미취학 아동입니다.')

    '''
    * 중첩 if문
    중첩 if문은 if 블록 내부에 새로운 if문이 있는 형태입니다.
    첫 번째 조건식의 결과가 True인 경우 한 번 더 조건을 설정할 때 사용합니다.
    '''

    height = float(input('키를 입력하세요: '))

    if height >= 140:
        age = int(input('나이를 입력하세요: '))
        if age >= 8:
            print('놀이기구 탑승이 가능합니다.')
        else:
            print('나이가 8세 미만입니다.')
            print('놀이기구 탑승이 불가합니다.')
    else:
        print('키가 140 미만입니다.')
        print('놀이기구 탑승이 불가합니다.')
     
    '''
    &, and 연산자는 좌항과 우항의 논리값이 모두 True인 경우에만 전체 결과를
    True로 도출합니다.
    '''

    a = 6

    if a > 1 and a < 10:
        print('a는 1보다 크고, 10보다는 작습니다.')
    else:
        print('a는 1~10 사이의 숫자가 아닙니다.')

    # 파이썬은 위의 식을 연결해서도 작성할 수 있습니다.
    if 1 < a < 10:
        print('ok!')

    '''
    |, or 연산자는 좌항과 우항의 논리값이 한 쪽만 True여도
    전체 결과를 True로 도출합니다.
    '''
    '''
    * 단축 평가 연산 (short circuit operate: and, or)
    - 좌항에서 전체 결과가 판명났을 경우,
    우항 연산을 진행하지 않는 연산자입니다.
    '''

    c = 0

    if(c == 0) or (10 / c == 5): # 우항에서 100% 에러가 납니다.
        print('통과!')

    # not 연산자는 논리값을 반전시킵니다.
    '''
    - c언어에서는 정수 0을 False로 해석하고, 0이 아닌 모든 정수를 True로 해석합니다.
    (논리형 타입이 없기 때문입니다.)
    파이썬에서도 C의 논리해석을 그대로 적용시킬 수 있습니다.
    '''

    apple = 0
    if not apple:
        print('사과가 하나도 없습니다.')
    else:
        print('사과가' , apple, '개 있습니다.')

     

     

    '''
    * 반복문 (loop)

    - 반복문은 유사한 명령을 반복해서 실행하는 제어문입니다.
    파이썬의 반복문 키워드는 while, for ~ in 이 있습니다.
    '''

    # while문에 필요한 3요소: 제어변수(begin), 조건식(end), 증감식(step)

    from re import I


    i = 1
    total = 0

    while i <= 10: #end
        total += i
        i += 1 #파이썬은 증감 연산자가 없습니다. (++, --)

    print('1부터 10까지의 누적합: ', total)

    print('-' * 30)

    '''
    - 정수를 2개 (x, y) 입력받아 x부터 y까지의
     누적합계를 while을 사용하여 구하는 코드를 만드세요.
     ex) "x부터 y까지의 누적합계: z"

    - 처음에는 x가 무조건 작은 값이 들어올 것이다 라고 가정하고
     작성하세요.
    그 후, 만약 x가 y보다 더 큰 값이 들어왔을 때는,
    어떻게 대처할 지 생각해 보세요. (while을 2번쓰는 건 아니에요~)
    '''

    x = int(input('정수1: '))
    y = int(input('정수2: '))

    total = 0
    n = x # x가 무조건 작을 것이기 때문에 n이 begin이 될 것입니다.

    while n <= y:
        total += n
        n += 1

    print(x, '~', y, '까지의 누적 합계: ', total)
     

    '''
    * 문자열 대체 메서드 replace()
    - 특정 단어를 모두 찾아서 새로운 단어로 일괄 교체하는 메서드
    '''
    s1 = '파이썬은 문자열을 관리하는 \
        수많은 메서드들을 제공합니다! 파이썬'

    print(s1.replace('파이썬', 'python'))
    print(s1.replace('!', ''))

    s2 = '아침부터 커피를 마셨는데, 점심 먹고 커피를 또 마셨습니다. \
        그런데 저녁에 커피를 또 마시면 오늘 커피를 몇 잔 마신 걸까요?'

    print(s2.replace('커피', '소주', 2))
     
     
    '''
    * 문자열 공백 제거 메서드
    1. lstrip(): 문자열의 왼쪽 공백만 제거
    2. rstrip(): 문자열의 오른쪽 공백만 제거
    3. strip(): 문자열의 양쪽 공백을 제거
    '''
    user_id = input('아이디: ')
    print(user_id + '님 안녕하세요~')
    print(user_id.lstrip() + '님 안녕하세요~')
    print(user_id.rstrip() + '님 안녕하세요~')
    print(user_id.strip() + '님 안녕하세요~')
     
    '''
    * 문자열 알파벳 형태 변경 메서드
    1. lower(): 영문 알파벳을 모두 소문자로 변경합니다.
    2. upper(): 영문 알파벳을 모두 대문자로 변경합니다.

    3. swapcase(): 영문 대소문자를 각각 반대로 변경합니다.
    4. capitalize(): 문장의 맨 첫 글자만 대문자, 나머지는 소문자로 변경합니다.
    5. title(): 각 단어의 맨 첫글자만 대문자, 나머지는 소문자로 변경합니다.
    '''

    s = 'GOOD MORning!!! my name is LEE'

    print(s)
    print(s.lower())
    print(s.upper())
    print(s.swapcase())
    print(s.capitalize())
    print(s.title())
     
    '''

    - split() 메서드는 구분자를 기준으로 문자열을 분할해서
    리스트에 담아서 반환합니다.
    '''
    s1 = '떡볶이 김말이 닭강정'
    print(s1.split()) # 괄호 안을 비우면 공백을 구분자로 하여 분할합니다.

    s2 = '홍길동 | 대한출판사 | 2022년 2월'
    data = s2.split(' | ')
    print('저자: ' + data[0])
    print('출판사: ' + data[1])
    print('출판일: ' + data[2])

     

     

    '''
    * 리스트 (list)

    - 리스트는 여러 개의 값을 집합적으로 저장하기 위해
     사용하는 파이썬의 자료형입니다.

    - 다른 언어의 배열과 유사한 개념이며, 실제로 배열과
    유사한 방식으로 데이터가 관리됩니다.

    - [] (대괄호) 안에 요소를 콤마로 구분하여 나열합니다.
    '''

    x = [5, 6, 10, 'a']
    print(type(x))

    for c in x:
        print(c)

    print('리스트의 길이: ', len(x))
     
    '''
    * 리스트의 내부 요소 다루기

    - 리스트는 시퀀스 자료형이기 때문에 인덱스를 통한 요소들의 관리가 가능합니다.
    - 리스트를 다룰 때는 문자열과 비슷한 방식을 사용합니다.
    '''

    pokemon = ['피카츄', '라이츄', '파이리', '꼬부기' , '버터풀']

    print(pokemon[2])
    print(pokemon[1][2])
    print(pokemon[4][:2])

    # 리스트 슬라이싱 -> 리스트 데이터[begin:end:step]
    nums = [0,1,2,3,4,5,6,7,8,9]

    print(nums[2:5:1])
    print(nums[:4])
    print(nums[1:7:2])

    # 리스트는 인덱싱을 사용하여 변수처럼 내부의 값을 변경할 수 있습니다.
    print('-' * 40)
    print(nums)

    nums[2] = 34
    print(nums)

    nums[3] = nums[8]
    print(nums)

    '''
    - 문자열은 상수 형태로 저장되는 고정형 리스트입니다.
    - 따라서 인덱싱이나 슬라이싱을 통해 값의 복사본을 활용하는 것은 가능하지만,
    영역에 직접 접근해서 내부의 값을 편집할 수는 없습니다. (immutable)
    '''

    s = 'python'
    # s[2] = 'x' (x)

    # unpacking: 리스트 내부 요소를 다시 변수에 저장합니다.
    # pokemon = ['피카츄', '라이츄', '파이리', '꼬부기' , '버터풀']
    '''
    p = pokemon[0]
    r = pokemon[1]
    c = pokemon[2]
    s = pokemon[3]
    b = pokemon[4]
    '''

    # 좌항의 변수의 개수와 우항의 리스트의 요소의 개수가 일치한다면
    # 자동으로 변수에 리스트 내부 요소의 값들이 할당됩니다.
    p, r, c, s, b = pokemon
    print(p,r,c,s,b)

    # 빈 리스트 만들기
    list1 = []

    list2 = list()
    print(list2)


    '''
    * 리스트에 데이터를 추가하는 메서드

    1. append(): 요소를 리스트의 맨 마지막에 추가합니다.
    2. insert(): 요소를 리스트의 특정 위치에 삽입합니다.
    '''

    nums = [1,3,5,7]

    nums.append(9)
    print(nums)
    nums.append('안녕')
    print(nums)

    # insert(index, value)
    nums.insert(3, 4)
    print(nums)

    'PYTHON' 카테고리의 다른 글

    python  (0) 2022.03.01
    python  (0) 2022.02.25
    python  (0) 2022.02.25
    python  (0) 2022.02.23
    Python  (0) 2022.02.21
Designed by Tistory.