본문 바로가기

Python

Python(파이썬) (숫자형,시간, 리스트 타입 기초)

오늘도 파이썬 공부한 내용 정리한 부분 올릴려고 합니다~

 

<숫자형 (number)>

"""
        숫자형 종류
            - 정수형
            - 실수형
            - 복소수형 1 + 2j, 3i  ( 많이 사용안함 )
            - 10진수 123
            - 8진수   0o25
            - 16진수  0x25
"""

# 파이션의 모든 자료형은 객체로 취급한다
# 실행 : alt + shift + F10

""" [ 기초 연산자 ]
        + : 더하기
        - : 빼기
        * : 곱하기
        / : 나누기(실수값 결과)
        // : 나누기(정수값 결과)
        % : 나머지
        ** : 자승 (n제곱)
    
    2. 관계연산자
        <   >   <=  >=  ==  !=
    
    3. 논리연산자
        not     or      and
        
    4. 이진(비트) 연산자
        ~   :  이진 not   
        |   :  이진 or
        &   :  이진 and
        ^   :  이진 xor
        <<  :  shift
        >>  :  shift
        
    5. 대입연산자
        =
        +=  -=  *=  /=  //= %=
        &=  |=  ^=
        >>= <<=
    
    6. 기타연산자 : 딕셔너리, 문자열, 리스트, 튜플 등의 자료형에서 사용
        (*)에러 - is      : 비교하는 객체의 주소가 같으면 true, 다르면 false
        (*)에러 - is not  : 비교하는 객체의 주소가 다르면 true, 같으면 false 
        in      : 요소에 포함되면 true, 없으면 false
        not in  : 요소에 포함되지 않으면 false, 없으면 true
      

    [참고] 증가(++), 감소(--) 연산자 없음         
"""

a = 5
b = 2

print('a + b = ', a + b)
print('a - b = ', a - b)
print('a * b = ', a * b)
print('a / b = ', a / b)
print('a // b = ', a // b)
print('a % b = ', a % b)
print('a ** b = ', a ** b)
print('a ** b = ' + str(a ** b))



""" [ 출력결과 ] 
        a + b = 7
        a - b = 3
        a * b = 10
        a / b = 2.5
        a // b = 2
        a % b = 1
        a ** b = 25
"""

print(4j + 3j)

a = 5
# print(++a)
#print("Hello" is "hello")
print("Hello" == "hello")

print('H' in 'Hello')   # True
print('h' not in 'Hello') # True

y = 8.3/2.7
print(y)
print('실수 : {0}, 정수 : {1}'.format(y, 100)) # 첫번째 {} = y의 값을 넣고 두번쨰 {}는 100의 값을 넣었음.
print('실수 : {}, 정수 : {}'.format(y, 100))
print('실수 : {1}, 정수 : {0}'.format(y, 100))
print('실수 : {0:0.2f}, 정수 : {1}'.format(y, 100))
print('실수 : {0:.2f}, 정수 : {1}'.format(y, 100))


#a = 777
# b = 777
# print(a == b, a is b) # cmd에다 하면 True False, 프로그램을 사용하면 True True가 뜸

a = 3.5
b = int(3.5)
print(a**((a//b)*2))
print(((a-b)*a)//b)
b = (((a-b)*a)%b)
print(b)

 

<시간 (Date)>

 

import datetime
today = datetime.date.today()
print('today is ', today)

from datetime import date
today2 = date.today()
print('today is ', today2)
print('연도: ', today2.year)
print('월: ', today2.month)
print('일: ', today2.day)
print('요일: ', today2.weekday())

from datetime import timedelta
today = date.today()
print('어제: ', today + timedelta(days=-1))
print('어제: ', today + timedelta(days=-7))
print('어제: ', today + timedelta(days=10))

#문자역 -> 날짜형으로 변환
from datetime import datetime
nalzza  = '2020-02-22 : 12:05:12'
mydate = datetime.strptime(nalzza, '%Y-%m-%d : %H:%M:%S')
print(mydate)
print('10일후', mydate + timedelta(days=10))

 

<리스트 (List)>

"""
    [ 리스트 ]
      1- 임의의 객체를 순차적으로 저장하는 집합 자료형
      2- 각 값에 대해 인덱스 부여
      3- 변경가능 (**)
      4- 대괄호 [ ] 사용

      [참고]
      배열은 연속적으로 공간을 저장하는 것이니깐 파이션에는 없다
      파이션에서는 리스트를 사용한다
      배열은 생성시 크기를 지정하지만 리스트트 크기 제한이 없다

      배열의 경우 연속된 메모리 공간에 할당되고,
      리스트의 경우 메모리가 연속적인 공간에 있지 않고 다음 노드를 가리키는 주소값을 가지고 있다.
"""

# --------------------------------------------------------------------
# (1) 리스트 인덱스

arr = []                # 비워져 있는 리스트 생성
arr = list() # 위와 동일
arr = [1,2,3,4,5]
print(arr[3]) #
print(arr[-3]) #



""" [출력결과]
    [1, 2, 3, 4, 5, 10]
    [1, 2, 3, 4, 5, 10, 'hello']
    1
    10
    HELLO
    h
"""
"""
# 이중 리스트 만들고 인덱싱하기
arr.append(10)
print(arr) # 원본수정여부???
arr.append('hello')
print(arr)
print(arr[0])
print(arr[5])
print(arr[6].upper())
arr.append('h')
print(arr[7])
"""


""" [ 연습 ] 아래에서
    a = ['인천','부산',['전라','경상',['판교','부천']]]
    (1) '경상' 요소 추출
    (2) '부천' 요소 추출
    (3) '판'이라는 글자만 추출
"""
a = ['인천','부산',['전라','경상',['판교','부천']]]

print(a[2][1])
print(a[2][2][1])

""" [ 연습 ] 아래에서
    a = ['인천','부산',['전라','경상'],['대전','광주','대구'], '서울','제주']
    (1) '부산'부터 '대구'까지 추출
    (2) '대전'부터 '제주'까지 추출
    (3) '인천'부터 '서울'까지 추출
    (4) '광주'부터 '대구'까지 추출
"""
a = ['인천','부산',['전라','경상'],['대전','광주','대구'], '서울','제주']

print(a[1:4])
print(a[3:6])
print(a[0:5])
print(a[3][1:3])


# --------------------------------------------------------------------
# (2) 리스트 연산자

a = ['독','도','는']
b = ['대한민국','섬']
print( a + b )
print(a * 3)


# --------------------------------------------------------------------
# (3) 리스트 관련 함수들
#           append()    : 요소 추가
#           sort()      : 리스트 정렬
#           reverse()   : 역순으로 뒤집기
#           index()     : 위치 반환
#           insert()    : 리스트에 요소 삽입
#           remove()    : 요소 제거
#           pop()       : 맨 마지막 요소를 꺼내기
#           count()     : 요소 개수 세기
#           extend()    : 리스트에 리스트를 더하기\
#           clear()     : 모든 요소를 제거

"""
    (1) 리스트 a에 0 요소 추가
    (2) 리스트 a에 9를 추가하여 출력 (a요소에는 추가하는 것은 아님)
    (3) 0번째 요소로 1을 추가
    (4) 3번째 요소로 1을 추가
    (5) 리스트 맨 마지막 요소를 꺼낸다
    (6) 요소 1을 삭제 ( 1이 여러개인 경우 맨 앞에 하나만 삭제됨 )
    (7) 리스트 모든 요소를 삭제
"""
a = [7, 2, 3, 5, 6] 
b = [9]
a.append(0)
print(a)
print(a+b)
a.insert(0, 1)
print(a)
a.insert(3, 1)
print(a)
print(a.pop())
a.remove(1)
print(a)
a.clear()
print(a)

# [참고] 리스트에 리스트 구조에서 clear() 하는 경우
a1 = [1]
b1 = [7,6, 5,4,3, a1]
print(a1)
print(b1)
b1.clear()  # 종속관계로 되어 있기에 b1의 내용만 삭제되고 a1은 유지왼다
print(b1)
print(a1)
print()
"""
"""


"""
    (8) 리스트 a의 모든 요소를 역순으로 뒤집기
    (9) 리스트 a 정렬하기
    (10) 리스트 a에 리스트 b를 더하기
    (11) 리스트 a에서 0번째부터 1번째 요소까지 삭제
"""
a = [3,5,4,8,0]
b = [1,2]

a.reverse()
print(a)

a.sort()
print(a)

print(a+b)

a[0:2]
a.remove(3)
print(a)


# --------------------------------------------------------------
#  (4) 리스트 요소 변경
#       - 2번째 요소를 'z'로 변경
#       - 0번째부터 1번째 요소를 'k'와 'o'로 변경
"""
a = [2,5,6,8,0]
a[2] = 'z'
print(a)
a[0:2] = ['k', 'o']
print(a)

#[참고] 복사
a = [2,5,6,8,0]
b = a           # 얕은 복사
print(a, b)
print(a is b)
a[2] = 'AAA'
print(a, b)     # ?????????

a = [2,5,6,8,0]
b = a[:]           # 깊은 복사
print(a, b)
print(a is b)
a[2] = 'AAA'
print(a, b)     # ?????????

from copy import copy
b = copy(a)
print(a, b)     #
"""

리스트 [문제 연습]

2. 리스트 다루기

 

1. 다음 코드의 실행 결과를 쓰시오

a = [0, 1, 2, 3, 4]
print(a[:3], a[:-3])

 

 

2. 다음 코드의 실행 결과를 쓰시오. 

a = [0, 1, 2, 3, 4]
print(a[::-1])

 

 

3. 다음 코드의 실행 결과를 쓰시오. 

first = ["egg", "salad", "bread", "soup", "canafe"]
second = ["fish", "lamb", "pork", "beef", "chicken"]
third = ["apple", "banana", "orange", "grape", "mango"]
order = [first, second, third]
john = [order[0][:-2], second[1::3], third[0]]
del john[2]
john.extend([order[2][0:1]])
print(john)

 

 

4. 다음 코드의 실행 결과를 쓰시오. 

list_a = [3, 2, 1, 4]
list_b = list_a.sort()
print(list_a, list_b)

 

 

5. 다음 코드의 실행 결과를 쓰시오. 

fruits = ['apple', 'banana', 'cherry', 'grape', 'orange', 'strawberry', 'melon']
print(fruits[-3:], fruits[1::3])

 

 

6. 다음 코드의 실행 결과를 쓰시오. 

num = [1, 2, 3, 4]
print(num * 2)

 

 

7. 다음 코드의 실행 결과를 쓰시오. 

a = [1, 2, 3, 5]
b = ['a', 'b', 'c','d','e']
a.append('g')
b.append(6)
print('g' in b, len(b))

 

 

8. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은? 

list_a = ['Hankook', 'University', 'is', 'an', 'academic', 'institute', 'located', 'in', 'South Korea']
list_b=[ ]
for i in range(len(list_a)):
if i % 2 != 1:
list_b.append(list_a[i])
 
print(list_b)

➀ None 

➁ Error

➂ ['Hankook', 'is', 'academic', 'located', 'South Korea']

➃ ['University', 'an', 'institute', 'in']

➄ ['Hankook', 'University', 'is', 'an', 'academic', 'institute', 'located', 'in', 'South Korea']

 

 

9. 다음 코드를 실행한 후, 2018과 "2018"을 각각 입력했을 경우 알맞은 실행 결과끼리 묶인 것은? 

admission_year = input("입학 연도를 입력하세요: ")
print(type(admission_year))

➀<class ‘str’>, <class ‘float’>

➁<class ‘int’’>, <class’str’>

➂<class ‘str’>, <class ‘str’>

➃<class ‘int’>, <class ‘int’>

➄<class ‘float’>, <class ‘int’>

 

 

10. 다음 코드의 실행 결과를 쓰시오. 

country = ["Korea", "Japan", "China"]
capital = ["Seoul", "Tokyo", "Beijing"]
index = [1, 2, 3]
country.append(capital)
country[3][1] = index[1:]
print(country)

 

 

11. 다음과 같이 코드를 작성했을 때 예측되는 실행 결과를 쓰고, 이러한 결과가 나오는 이유에 대해 서술하시오.( is 키워드는 주소를 비교한다 )

>>> a = [5, 4, 3, 2, 1]
>>> b = a
>>> c = [5, 4, 3, 2, 1]
>>> a is b
>>> a is c

 

 

15. 다음과 같이 코드를 작성했을 때, 실행 결과로 알맞은 것은? 

list_1 = [[1, 2], [3], [4, 5, 6]]
a,b,c = list_1
list_2 = a + b + c
print(list_2)

➀ [1, 2, 3, 4, 5, 6] ➁[[1, 2], [3], [4, 5, 6]]➂ 21

➃ Error ➄[[1, 2], [3, 4, 5, 6]]

 

답:

1. [0, 1, 2] [0, 1]
2. [4, 3, 2, 1, 0]
3. ['egg', 'salad', 'bread', 'lamb', 'chicken', 'apple']
4. [1, 2, 3, 4] [1, 2, 3, 4]
5. ['orange', 'strawberry', 'melon'] ['banana', 'orange']
6. [1, 2, 3, 4] [1, 2, 3, 4]
7. false 6
8. 3
9. 3
10. ['korea', 'Japan', 'China', 'S23oul', 'Tokyo', 'Beijing']
11.  1) True: a와 b의 주소값이 같다. 2) False: a와 c의 데이터는 같지만 주소 값은 다르다.
15. 4

 

 

19살 IT 개발자 포돌이였습니다.

-Coding is an Art-

-코딩을 예술이라 생각하는 사람-

 

'Python' 카테고리의 다른 글

Python(파이썬) (set, tuple, dictionary) 기초정리  (2) 2022.09.02
Python(파이썬) (문자열, Boolean) 기초  (5) 2022.06.28
Python 기초  (2) 2022.06.27