파이썬 백엔드 4일차 리스트 함수

박재정·2025년 1월 6일

학습정보

목록 보기
5/29

1. 리스트 함수🚑

print(len(st)) # 리스트의 갯수 ex) st[1, 2, 3] ->  print(len(st)) 출력 3
print(min(st)) # 가장 값이 작은 데이터
print(max(st)) # 가장 값이 큰 데이터
st.remove(1) # 리스트속의 값 삭제
st.append(4) # 리스트속 마지막 위치(가장 우측)에 값 추가
st.extend([5,6]) # 리스트에 다른 리스트 연결, 합연산 개념
---
* append 매개 변수 그 자체를 원소로 넣음
* extend 는 가장 바깥쪽 iterable을 넣음

x = [1,2,3]
y = 'ping'
x.append(y)
print('append:',x)

x = [1,2,3]
y = 'ping'
x.extend(y)
print('extend:',x)
append: [1, 2, 3, 'ping']
extend: [1, 2, 3, 'p', 'i', 'n', 'g']

---

st.insert(2,3) # 인덱스 값을 이용해 원하는 위치에 값을 저장 (원하는 위치, 삽입할 값)
st.clear() # 리스트 전체 삭제 , st[:] =[] 와 같은개념
st.pop(0) # 인덱스 값의 위치에 저장된 데이터 반환 후 삭제
st.remove(1) #인덱싱으로 삭제가 아니라 값으로 지정
st.count(1) #지정된 값의 카운트
st.index(2) #지정된 값이 처음 등장하는 인덱스 값

많은 기능이 있으니 대략적으로 암기

대문자와 소문자

org= 'Kim'

lcp =org.lower() # 모든 문자를 소문자로
ucp =org.upper() # 모든 문자를 대문자로
공백(아스키코드 32) 제거

공백 제거

org = " MIDDLE "
cp1 = org.strip() # 앞뒤 공백 제거
cp2 = org.lstrip() # 왼쪽 공백 제거
cp3 = org.rstrip() # 오른쪽 공백 제거
org 와 cp1~3은 메모리 주소는 다릅니다.
str값은 수정이 불가하기 때문입니다.
cp1~cp3는 새로 생성하여 다른 주소에 저장이 됩니다.

문자열 교체

org = 'Heoo'
rps = org.replace("He","Ho") # 문자열 교체 함수, "Hooo"

org = 'Heeee'
rps = org.replace("e","o",1) # 첫번째 e만 바꾼다. , "Hoeee"

rps = org.replace("e","o",2) # e 두번째까지 o로 바꾼다. , "Hooee" 
print(rps)

스플릿 글자 자르기

org= "ab_cd_ef"

ret = org.split('_') # 글자를 자르는 함수. return 값이 list
print(ret)  # ['ab', 'cd', 'ef']
값이 list로 반환이 되기때문에 for문에 적용이 가능하다.

tel = "010-1234-5678"
ret = tel.split('-')#['010','1234','5678']
for i in ret:
    print(i) # '010' \n,'1234' \n,'5678' \n,

탐색 관련

a =  "What is important is that you should choose what is best for you"

a.find("is") # index 값이 리턴됨
a.rfind("is") # 마지막 is 가 있는 index 값이 리턴됨
a.count("is") # 개수
함수가 아닌 del명령
st = [1,2,3,4,5]
st[:] = [] #범위 지정 가능
st.clear() #[]
del st[:]#범위 지정 가능
del st[3:] # 3번인덱싱 부터 끝까지 삭제
del st[0] # 0번인덱싱만 삭제
del st # 리스트 자체를 삭제함

2. 조건문🐱‍👤

bool 데이터 타입

#Bool 형 자료 -> True, False 

True
print(True)
print(type(True))

False
print(False)
print(type(False))

3 > 10 # CPU에서 연산후 bool형 return함
if문에 사용되는 조건의 반환값은 bool타입입니다.

if 문 조건문

if문은 if(조건), elif(조건 외 조건), else(나머지)로 나뉘어짐

조건은 bool으로 출력이 되어야 합니다
true가 반환되면 실행
false면 조건문 탈출의 구조로 조건문이 작동 됩니다.

def main(): # 메인함수 정의의
    num = int(input("정수 입력:"))
    if num > 0: # 조건 True, false가 리턴되는 구문
        print("양수")
if ~ else
1번 조건에 걸리지 않고, else 값이 설정 되어있다면
무조건 else 값이 출력됩니다.

# if else 구문 반드시 한개는 실행됨 else가 그 외이니까 
num = int(input("정수 입력"))
if num > 0:
    print("양수")
else:
    print("음수")
    
    
num = int(input("정수 입력"))
if num > 0:  #조건의 경우의 수
    print("양수")
elif num<0: #조건이 아닐경우 경우의수
    print('음수')
else:  #조건가 조건이 아닌 그 외 나머지 경우의수 
    print("0")
    
    
#조건을 두개 이상 주고 싶을때
num = int(input("정수 입력"))
if num>0:
    print("양수")
elif num<0: #else if
    print('음수')
else:
    print('0')

관계 연산자(두개의 값을 비교)

x > y : x가y 초과

x < y : x가 y 미만

x >= y : x가 y 이상

x <= y : x가 y 이하

x == y : x와y가 같은가

x != y : x와y가 다른가

논리연산자


and : 두가지 조건 모두 만족해야 true

or : 둘중 한가지만 만족해도 true

not : 값을 반대로 출력.

#and 타언어에선 &
True and True #true
True and False #false

if True and False: #거짓
    print("참")
else:
    print("거짓")

#or 타언어에선 |
True or True #true
False or False #false

if False or False: #거짓
    print("참")
else:
    print("거짓")

#not
not True
not False
if not False: #참
    print("참") 
else:
    print("거짓")
if and if

#2의 배수 이면서 3의 배수인 인수
num = int(input("2의 배수이면서 3의배수 입력"))

if num %2 == 0 : #2의 배수에 대한 프로그래밍적 표현.
    if num%3 == 0 : #3의 배수에 대한 프로그래밍적 표현.
        print("맞습니다.")
    else:
        print("2의 배수이지만 3의 배수가 아닙니다.")
else:
    print("2의 배수도 아니고 3의 배수도 아닙니다.")
논리연산자를 활용하면 아래와 같다.


num = int(input("2의 배수이면서 3의배수 입력"))

if num % 2 == 0 and num % 3 == 0: #두가지 조건을 만족시켜야 함.
    print("맞습니다.")
else:
    print("2의 배수도 아니고 3의 배수도 아닙니다.")

리스트와 문자열에서의 관계연산자

[1,2]==[1,2]#True
"abc" =="abc"#False
"abc" =="Abc"#True
"abc".isdigit()#False 숫자로 이루어져있는지 확인하는 함수
"123".isdigit()#True

a= "123"
a.isdigit()
.startswith("Super") #문자열이 ~~으로 시작하는가?
.endswith("int") #문자열이 ~~으로 끝나는가?

find함수

반환값은 해당값 첫글자의 인덱스위치이다.

s = "Tomato spaghetti"
 
    if s.find("ghe") != -1: #-1은 없을때 반환되는 값이다.

        print("있습니다.")

    else:

        print("없습니다.")
in, not in
find와 기능은 같지만 반환값이 다르다
true와 false로 반환한다

    if "ghe" in s:

        print("있습니다.")

    else:

        print("없습니다.")
        

수를 true와 false로 인식하는 방식
if 문에서 조건을 숫자 단독으로 넣을땐 bool 로 형변환 합니다.

숫자형 = 0 이외는 true
문자형 = 공백 이외는 true
리스트 = 공백 이외는 true

bool(0) #False
bool("") #False
bool([]) #False
python

1.아래를 프로그래밍 하시오.

수우미양가 국어 영어 수학 입력을 받아 총점과 평균 그리고 성적을 프린트 하시오.

print(total(90,90,90)) # 270
print(avg(90,90,90)) # 90
print(grade(avg(80,80,80))) # 우 입니다.

kor = int(input("국어 점수: "))
eng = int(input("영어 점수: "))
math = int(input("수학 점수: "))

def total(kor, eng, math):
    return kor + eng + math

def avg(kor, eng, math):
    return total(kor, eng, math) / 3

def grade(avg):
    if avg >= 90:
        result = "수"
    elif avg >= 80:
        result = "우"
    elif avg >= 70:
        result = "미"
    elif avg >= 60:
        result = "양"
    else:
        result = "가"
    return result + "입니다"

print(total(kor, eng, math))  # 총점
print(avg(kor, eng, math))  # 평균
print(grade(avg(kor, eng, math)))  # 성적

2. if 문 3가지에 대하여 설명하시오.

  1. if: 조건문이 참이면 실행.
if 조건:
    실행할 코드
  1. if else: 조건문이 참이면 첫 번째 블록, 거짓이면 두 번째 블록을 실행. 무조건 둘 중 하나 실행
if 조건:
    실행할 코드
else:
    거짓일 때 실행할 코드
  1. if elif else: 여러 조건을 처리할 때 사용.
if 조건1:
    실행할 코드
elif 조건2:
    다른 코드
else:
    모든 조건이 거짓일 때 실행

3. del 명령어에 대하여 설명하시오.

  • del st[:]: 리스트 전체 삭제
  • del st[2:]: 리스트에서 인덱스 2 이후의 값 삭제 > 리스트 부분 삭제
  • del st: 변수 st 자체 삭제

4. 아래를 예측하시오.

if -1:
print("참")
else:
print("거짓")

  • 출력: 참
    0이 아니면 모두 참으로 간주되므로 -1은 참.

5.사용자로부터 값을 입력받은 후 해당 값에 20을 더한 값을 출력하라. 단 사용자가 입력한 값과 20을 더한 계산 값이 255를 초과하는 경우 255를 출력해야 한다.

user = int(input("입력: "))
num = user + 20
if num > 255:
    print(255)
else:
    print(num)

6.사용자로부터 하나의 값을 입력받은 후 해당 값에 20을 뺀 값을 출력하라. 단 출력 값의 범위는 0~255이다. 예를 들어 결괏값이 0보다 작은 값이되는 경우 0을 출력하고 255보다 큰 값이 되는 경우 255를 출력해야 한다.

user = int(input("입력: "))
num = user - 20
if num < 0:
    print(0)
elif num > 255:
    print(255)
else:
    print(num)

7.휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다. 사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.

번호 통신사
011 SKT
016 KT
019 LGU
010 알수없음

pnum = input("휴대전화 번호 입력: ")
plist = pnum.split('-')[0]

if plist == "011":
    pbrand = "SKT"
elif plist == "016":
    pbrand = "KT"
elif plist == "019":
    pbrand = "LGU"
else:
    pbrand = "알수없음"

print("당신은", pbrand, "사용자입니다.")

8.주민등록번호 뒷 자리 7자리 중 첫째 자리는 성별을 나타내는데, 1, 3은 남자 2, 4는 여자를 의미한다. 사용자로부터 13자리의 주민등록번호를 입력 받은 후 성별 (남자, 여자)를 출력하는 프로그램을 작성하라. (힌트) split

>> 주민등록번호: 959999-163516
남자

id = input("주민등록번호 13자리를 입력하시오.")
if id.split('-')[1][0] == '2' or id.split('-')[1][0] == '4':
    gender = "여자"
else:
    gender = "남자"
print(gender)

9.숫자 중 가장 큰 출력을 적으세요.

num1 = int(input("number1: "))
num2 = int(input("number2: "))
num3 = int(input("number3: "))

def max(num1, num2, num3):
    if num1 >= num2 and num1 >= num3:
        return num1
    elif num2 >= num1 and num2 >= num3:
        return num2
    else:
        return num3

print(max(num1, num2, num3))

10.리스트에는 네 개의 문자열이 바인딩돼 있다.

리스트 = ["가", "나", "다", "라"]
for문을 사용해서 다음과 같이 출력하라.




11.리스트에는 네 개의 문자열이 바인딩돼 있다. (힌트 step 할용)

리스트 = ["가", "나", "다", "라"]
for문을 사용해서 다음과 같이 출력하라.


12.#사용자로부터 세 개의 숫자를 입력 받은 후 가장 큰 숫자를 출력하라.

number1: 10
number2: 9
number3: 20

13.리스트에는 네 개의 문자열이 바인딩돼 있다.

리스트 = ["가", "나", "다", "라"]
for문을 사용해서 다음과 같이 출력하라. #힌트 슬라이싱 스텝을 -1로




14. 리스트에서 세 글자 이상의 문자를 화면에 출력하라.

리스트 = ["I", "study", "python", "language", "!"]

study
python
language

15.

리스트에서 대문자만 화면에 출력하라.

리스트 = ["A", "b", "c", "D"]

A
D

16.이름의 첫 글자를 대문자로 변경해서 출력하라.

리스트 = ['dog', 'cat', 'parrot']
Dog
Cat
Parrot

17. 파일 이름이 저장된 리스트에서 확장자가 .h인 파일 이름을 출력하라.

리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']
intra.h
define.h

세줄요약)
1. if 문에는 3가지 문법을 제공한다.
2. 각각의 데이터 타입에 해당되는 형변환 함수가 있다.
3. 데이터 타입의 진정한 의미는 언어차원에서 제공하는 데이타 타입중 하나로 메모리로 올라간다.

profile
파이썬, SQL 개발

0개의 댓글