20230306 KDT 수업일지

2023. 3. 6. 17:19학습일지

728x90

1.input 함수

  • 사용자(개발자)에게 데이터를 입력받을 수 있는 함수
  • 데이터를 문자형으로 입력받음
name = input('이름을 입력하세요')  - 이름을 입력하세요김사과
print('%s님 안녕하세요!' % name) - 김사과님 안녕하세요!
name, age, weight ='김사과'2050.5
print(name, age, weight)       - 김사과 20 50.5
#split(): 매개변수로 전달된 문자를 기준으로 데이터를 나눠서 저장시켜주는 역할
name, age, weight = input('이름, 나이, 몸무게를 차례대로 입력하세요: ').split(' ')
- 이름, 나이, 몸무게를 차례대로 입력하세요 : 김사과 20 50.5
ex) split(' / ')라면 김사과/20/50.5
#int(): 문자열을 숫자(정수)타입으로 변환
num1 = input('첫번째 숫자를 입력하세요:')
num2 = input('두번째 숫자를 입력하세요:')
print('결과:'int(num1)+int(num2))
-첫번째 숫자를 입력하세요 :10
 두번째 숫자를 입력하세요 :5
 결과 : 15

문제

  • 국어점수, 영어점수, 수학점수를 입력받아 총점, 평균을 구하는 프로그램을 작성해보자
#국어점수, 영어점수, 수학점수 = input( '국어점수, 영어점수, 수학점수를 차례대로 입력하시오:').split
#num1 = input('국어 점수를 입력하세요:')
#num2 = input('영어 점수를 입력하세요:')
#num3 = input('수학 점수를 입력하세요:')
#print('결과 :',int(num1)+int(num2)+int(num3)//3 ) # 문자로 결합 후, int()를 통해 숫자로 변환
kor, eng, math = input'국어, 영어, 수학점수를 차례대로 입력하세요:').split(' ')
print('총점:'int(kor)+int(eng)+int(math))
print('평균:',(int(kor)+int(eng)+int(math))/3)
결과 

국어, 영어, 수학점수를 차례대로 입력하세요:30 30 30

총점: 90

평균: 30.0

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

str1='오늘은 파이썬 3일차 수업입니다'('' ''도 동일한 답 나옴)
print(str1) - 오늘은 파이썬 3일차 수업입니다
 
str3 = ' 류지: "오늘은 파이썬 3일차 수업입니다"'
print(str3)
str4 = " 류지: '오늘은 파이썬 3일차 수업입니다'"
print(str4)
 
 - 류지: "오늘은 파이썬 3일차 수업입니다"
    류지: '오늘은 파이썬 3일차 수업입니다'
 
str5= '''류지:
오늘은 파이썬 3일차
수업입니다 '''
print(str5)

류지:

오늘은 파이썬 3일차

수업입니다

 

1. 문자열 인덱싱

  • 문자열의 번호를 매겨 특정문자를 찾을 수 있는 기능
str = '문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능'
print(str)
 
-문자열에 번호를 매겨 특정 문자를 찾을 수 있는 기능
print(str[0])
print(str[1])
print(str[12])
print(str[-1])
print(str[-2])

2. 문자열 슬라이싱

  • 문자열에서 원하는 범위를 수출하는 기능
str = '문자열에서 원하는 범위를 추출하는 기능'
print(str)
- 문자열에서 원하는 범위를 추출하는 기능
  
print(str[0:5]) #0부터 5가 되기 전까지 (5 포함 X)
print(str[7:13])
print(str[:13])#처음부터 13직전까지
print(str[6:])#6부터 끝까지
- 문자열에서
  하는 범위를
  문자열에서 원하는 범위를
  원하는 범위를 추출하는 기능

3. 문자열 함수

str = '문자열 함수는 문자열과 관련된 여러가지 기능들을 담고 있다'
#'.'을 사용한건 함수의 기능을 사용하겠다는 뜻
 
# count() : 문자열에서 매개변수로 전달된 문자열의 출현 횟수를 반환
str.count('문')
-
print(str.count('문자'))
print(str.count('문장'))
2
  0
#find(): 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환
print(str.find('문')) #index번호가 0
print(str.find('함')) #index번호가 4
print(str.find('쀍')) #없으면 -1
print(str.rfind('문'))#끝에서부터 문자열이 나오는 위치를 반환
- 0
  4

 

 -1
  8
#index(): 매개변수로 전달된 문자열이 처음 나오는 위치를 인덱스로 반환(찾이 못할 경우 에러!)
print(str.find('문')) #index번호가 0
print(str.find('함')) #index번호가 4
print(str.find('함')) #index번호가 없으면 -1 ValueError : substring not found
#replace(): 특정 문자열은 치환
print(str.replace('기능','함수'))
print(str.replace('기능','함수'))  

문자의 함수는 문자열과 관련된 여러가지 함수를 담고있다

#uper():문자열을 모두 대문자로 변환
#lower():문자열을 모두 대문자로 변환
str = 'APPLE apple Apple'
print(str.upper())
print(str.lower())

- APPLE APPLE APPLE

  apple apple apple

#strip() : 문자열의 양쪽 공백을 제거
#lstrip() : 문자열의 왼쪽 공백에 제거
#rstrip() : 문자열의 오른쪽 공백을 제거
str ='                Hello                 Python '
print(str)
print(str.strip())
print(str.lstrip())
print(str.rstrip())

print(str.replace(' '''))

-           Hello           Python

  Hello           Python

  Hello           Python

            Hello           Python

  HelloPython

#join() :문자열에 특정 문자열을 삽입
str = 'Hello'
print('😜'.join(str))
-H😜e😜l😜l😜o
 
-----------------------------------------------------------------------------------------------------------------------------------------------------------------

1. 자료구조(Data Structure)

  • 코드상에서 데이터를 효율적으로 처리하기 위해 데이터 특징에 따라 체계적으로 구조화하여 저장

2. 리스트(list)

  • 여러가지 데이터 및 데이터타입을 콤마로 구분하여 대괄호로 감싼 자료구조
a =10
print(a) - 10
li1 = [1,3,5,7,9]
print(li1) - [1, 3, 5, 7, 9]
 
li2 = list([1,3,5,7,9])
print(li2) - [1, 3, 5, 7, 9]
li3 = ['김사과','반하나','오렌지','이메론']
print(li3) - ['김사과', '반하나', '오렌지', '이메론']
 
li4 = [1,50.5,'김사과',True#각자 타입이 다른 데이터를 저장
print(li4) - [1, 50.5, '김사과', True]
li5 = [1,2,'파이썬',['김사과','오렌지']]
print(li5) - [1, 2, '파이썬', ['김사과', '오렌지']]

2.리스트 인덱싱

li1 = [1,3,5,7,9]
print(li1)
print(li1[0])
print(li1[-1])
print(li1[0]+li1[-1])

- [1, 3, 5, 7, 9]

   1

   9

  10

 

li2 = ['김사과','오렌지','반하나',['🤦‍♀️','🤦‍♂️','🤷‍♀️','🤷‍♂️']]
print(li2[0])
print(li2[-1])
print(li2[-1][-2])

- 김사과

   ['🤦\u200d♀️', '🤦\u200d♂️', '🤷\u200d♀️', '🤷\u200d♂️']

   🤷‍♀️

li3 = [1,2,3, ['김사과','오렌지','반하나',['🤦‍♀️','🤦‍♂️','🤷‍♀️','🤷‍♂️']]]
print(li3[2])
print(li3[-2])
print(li3[-1])
print(li3[-1][-2])
print(li3[-1][-1][-1])

- 3

  3

  ['김사과', '오렌지', '반하나', ['🤦\u200d♀️', '🤦\u200d♂️', '🤷\u200d♀️', '🤷\u200d♂️']]

  반하나

  🤷‍♂️

 

 
 

3. 리스트 슬라이싱

li4 = [10,20,30,40,50]
print(li4)
print(li4[0:3])
- [10, 20, 30, 40, 50]
  [10, 20, 30]
 
li5 = li4
print(li5)
li5[0] = 100
print(li5)
print(li4)
- [100, 20, 30, 40, 50]
  [100, 20, 30, 40, 50]
  [100, 20, 30, 40, 50]
li6 = [10,20,30,['김사과','오렌지','반하나'],40,['💖','💕']]
print(li6[2:6])
print(li6[5][:1])

-[30, ['김사과', '오렌지', '반하나'], 40, ['💖', '💕']]

  ['💖']

 

4. 리스트 연산자

li7 = [102030]
li8 = [405060]
print(li7 + li8) #리스트 연결연산[10, 20, 30, 40, 50, 60]
print(li8 + li7) #리스트 연결연산[40, 50. 60, 10, 20, 30]

# print(li7- li8) # TypeError:unsuppor ted operand type(s) for -:'list' and 'list'
- [10, 20, 30, 40, 50, 60]  
  [40, 50, 60, 10, 20, 30]
print(li7 * 3# 반복 [10, 20, 30, 10, 20, 30, 10, 20, 30]
- [10, 20, 30, 10, 20, 30, 10, 20, 30]
li9 = [102030]
print(li9[0] + li9[2])# TypeError:unsuppor ted operand type(s) for -:'list' and 'list

- 40

5. 리스트의 수정 및 삭제

li10 = [10,20,30]
li10[1] = 100
print(li10)

- [10, 100, 30]

#슬라이싱을 이용하여 리스트 데이터를 추가한 경우 리스트에 데이터만 포함
li10[1:2] = ['😜','😍','😂']
print(li10)

- [10, '😜', '😍', '😂', 30]

 

li10 = [102030]
#인덱싱을 이용하여 리스트 데이터를 추가한 경우 리스트 안에 리스트를 포함
li10[1] = ['😜','😍','😂']
print(li10)

-[10, ['😜', '😍', '😂'], '😍', '😂', 30]

print(li10[1:3])

-[['😜', '😍', '😂'], '😍']

li10[1:3] = [ ] #빈 리스트를 저장하면 요소가 삭제됨
print(li10)
- [10]
del li10[0#인덱스 0번 요소 삭제
print(li10)
- []

6. 리스트 함수

li11 = [102030]

#append():리스트의 요소 맨 마지막 자리에 데이터를 추가
print(li11)

li11.append(100)
print(li11)
- [10, 20, 30]
  [10, 20, 30, 100]
 
#extend() :리스트에 요소를 추가
print(li11)
li11.extend([50])
print(li11)
li11.extend([1000,2000])
print(li11)

- [10, 20, 30, 100, 50]

  [10, 20, 30, 100, 50, 50]

  [10, 20, 30, 100, 50, 50, 1000, 2000]

 

# inplace 연산
li11 =  [1020 ,30 ]
li11 = li11 = [40 , 50# li11+=[40,50]
print(li11)

- [40, 50]

 

li12 =[10,20,30,40,50]
#pop() :리스트에[ 맨 마지막으로 저장된 데이터를 반환하고 해당 데이터는 삭제
print(li12)
print(li12.pop())
print(li12)
temp = li12.pop()
print(temp)
print(li12)
- [10, 20, 30, 40, 50]
  50
  [10, 20, 30, 40]
  40
 
li13 = [10203040502040]

#remove() : 매개변수로 전달된 데이터를 제거,같은 데이터가 여러개 있는 경우 처음 출현하는 데이터만 제거

print(li13)

li13.remove(20)
print(li13)
print(li13.remove)

li13,remove(20)
print(li13)
 
li14 = [102030]

#insert() : 리스트의 특정위치(인덱스)에 데이터를 삽입
li14.insert(1100#인덱스 1번위치에 100 삽입
print(li14)
- [10, 100, 20, 30]
 
print(li14)

#index() : 리스트에 저장된 데이터가 있을 경우 위치를 인덱스로 반환, 없으면 에러
print(li14.index(100))
print(li14, index(50)) #ValueError : 50 is not in list
-
---------------------------------------------------------------------------
NameError                                 Traceback (most recent call last)
<ipython-input-45-1c48c0bdb2c4> in <module>
      3 #index() : 리스트에 저장된 데이터가 있을 경우 위치를 인덱스로 반환, 없으면 에러
      4 print(li14.index(100))
----> 5 print(li14, index(50)) #ValueError : 50 is not in list

NameError: name 'index' is not defined
[10, 100, 20, 30] 1
li15 = [100,50,70,60,20]

#reverse() : 리스트에 저장된 데이터를 반대 순서로 반환
li15.reverse()
print(li15)

li16 = ['김사과','오렌지','반하나','이메론']
li16.reverse()
print(li16)
- [20, 60, 70, 50, 100]
  ['이메론', '반하나', '오렌지', '김사과']
 
li17 = [104030209050]

#sort()리스트에 저장된 데이터를 오름차순 또는 내림차순으로 정렬
li17.sort() #오름차순
print(li17)

#sort(reverse=True) #내림차순
li17.sort(reverse=True)
print(li17)

li18 = ['Apple','apple','orange','banana','melon'#대문자부터 나옴 BE) 아스키코드표로 정해지기 때문
li18.sort()
print(li18)

li19 = [ '김사과','오렌지','반하나','이메론','배애리']
li19.sort()
print(li19)
- [10, 20, 30, 40, 50, 90]
  [90, 50, 40, 30, 20, 10]
  ['Apple', 'apple', 'banana', 'melon', 'orange']
  ['김사과', '반하나', '배애리', '오렌지', '이메론']
# 비교
#sorted(): 이터러블 객체로부터 정렬된 리스트를 생성함
li17 = [10,40,30,100,90,50]
print(sorted(li17))#오름차순
print(sorted(li17,reverse = True)) #내림차순

li18 = ['Apple','apple','orange','banana','melon'#대문자부터 나옴 BE) 아스키코드표로 정해지기 때문
print(sorted(li18))
print(sorted(li18,reverse = True))
- [10, 30, 40, 50, 90, 100]
  [100, 90, 50, 40, 30, 10]
  ['Apple', 'apple', 'banana', 'melon', 'orange']
  ['orange', 'melon', 'banana', 'apple', 'Apple']
li17 = sorted(li17) # 값을 유지하려면 다시 저장해야함
print(li17)
li18 = [10,20,30,50,20,40,30,20]

#count() : 리스트에 포함된 특정 데이터의 갯수반환
print(li18.count(20))
print(li18.count(16))


#추가
#len() : 요소의 갯수를 반환
print(len(li18))

- 3

  0

  8

-----------------------------------------------------------------------------------------------------------------------------------------------------------------오늘 공부하면서 느낀점

list + 숫자를 li + 숫자로 쓴다는점

pop()이 리스트에서 마지막 숫자를 빼고 출력 되는줄 알았는데 맨 마지막 데이터를 빼고 나서 다시 출력해야 없어졌다는점sorted()할때 내림차순과 오름차순을 구분하기엔 아직 덜 공부한것 같아 전체적으로 공부할때 sorted() 이쪽 부분을 좀 더 보강해야겠다.타자연습을 해야겠다.

 

728x90
반응형

'학습일지' 카테고리의 다른 글

20230310 KDT 학습일지  (0) 2023.03.10
20230309 KDT 학습일지  (0) 2023.03.10
20230308 KDT 수업일지  (0) 2023.03.09
20230307 KDT 학습일지  (0) 2023.03.07
20230303 KDT 수업일지  (0) 2023.03.03