학습 정리 - 리스트와 문자열, 조건문 (25.01.06)

수아·2025년 1월 6일
0

학습 정리

목록 보기
5/51
post-thumbnail

회고 리스트

1. 수우미양가 프로그램

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

def total(k, e, m) :    # 총합을 반환하는 함수
    return k + e + m

def avg(k, e, m) :      # 평균을 반환하는 함수
    return (k + e + m) / 3

def grade(average) :    # 평균을 입력받아 성적을 반환하는 함수수

    if average >= 90 : 
        return "수"
    elif average >= 80 : 
        return "우"
    elif average >= 70 : 
        return "미"
    elif average >= 60 : 
        return "양"
    else :
        return "가"
    

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

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

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

  • if
    : 조건이 참일 때만 실행한다.

  • if else
    : 조건이 참이면 if 블록, 거짓이면 else 블록을 실행한다.
    : else가 있으면 if 또는 else에서 한 번은 실행된다.

  • if elif (else)
    : 여러 조건을 순서대로 검사하고 참인 조건이 있으면 그 블록을 실행하고 빠져나간다.
    : 모두 거짓이면 else 블록을 실행한다.
    : else는 존재하지 않을수도 있다.

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

del 은 메모리에서 삭제하는 명령어다.

del list[:]

list에 저장된 값을 모두 삭제한다.
list를 출력하면 []가 나온다.

del list

list 자체가 사라져 list를 출력하려고 하면 오류가 발생한다.

del list[2:]

st[2]부터 끝까지 삭제했다.

del list[0]

list[0]이 삭제됐다.

4. 아래를 예측하시오.

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

bool(0)은 False
그 외 숫자들을 넣을경우 True

-1은 0이 아니므로 True 이기 때문에 "참"이 출력될 것이다.

5.

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

num = int(input())
num += 20

if num > 255 : 	# 255보다 큰 경우
    print(255)
else :
    print(num)

6.

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

num = int(input())
num -= 20

if num > 255 : 	# 255보다 큰 경우
    print(255)
    
elif num < 0 : 	# 0보다 작은 경우
    print(0)
    
else :
    print(num)

7.

# 휴대폰 번호 앞자리에 따라 통신사는 아래와 같이 구분된다.
# 사용자로부터 휴대전화 번호를 입력 받고, 통신사를 출력하는 프로그램을 작성하라.
# 번호 통신사
# 011 SKT
# 016 KT
# 019 LGU
# 010 알수없음

pnum = input("휴대전화번호 입력 : ")

if pnum.startswith("011") : 
    print("당신은 SKT 사용자입니다.")
elif pnum.startswith("016") : 
    print("당신은 KT 사용자입니다.")
elif pnum.startswith("019") : 
    print("당신은 LGU 사용자입니다.")
elif pnum.startswith("010") : 
    print("알 수 없습니다.")

8.

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

id_num = input(" 주민등록번호 : ")
id_f, id_b = id_num.split("-")  # -로 앞자리, 뒷자리 나누기

if id_b.startswith("1") or id_b.startswith("3") :
    print("남자")
    
elif id_b.startswith("2") or id_b.startswith("4") :
    print("여자")

9. X

# 아래 코드는 비트코인의 가격 정보를 딕셔너리로 가져오는 코드이다.
# (비트코인 가격을 받아오지 못하면 풀지 말것)

10.

# 리스트에는 네 개의 문자열이 바인딩 돼 있다.
# 리스트 = ["가", "나", "다", "라"]
# for문을 사용해서 다음과 같이 출력하라.




list = ["가", "나", "다", "라"]


for i in range(3, -1, -1):
# 뒤에서부터 시작하는 range (i에 3, 2, 1, 0)
    print(list[i])

11.

# 리스트에는 네 개의 문자열이 바인딩돼 있다. (힌트 step 할용)
# 리스트 = ["가", "나", "다", "라"]
# for문을 사용해서 다음과 같이 출력하라.


list = ["가", "나", "다", "라"]

for i in list[::2] :	# 처음부터 끝까지 2개 차이
	print(i)

12.

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

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

print(max(num1, num2, num3))

난 ↑이렇게 코딩했는데 같이 수업듣는 다른 친구는 ↓이렇게 코딩했다.

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

if num1 < num2 :
    num1 = num2

if num1 < num3 :
    num1 = num3

print(num1)

13.

# 리스트에는 네 개의 문자열이 바인딩돼 있다.
# 리스트 = ["가", "나", "다", "라"]
# for문을 사용해서 다음과 같이 출력하라.
# (힌트 슬라이싱 스텝을 -1로)




list = ["가", "나", "다", "라"]

for i in list[::-1] :	# 처음부터 끝까지 "라" "다" "나" "가" 순
    print(i)

10번과 같은 문제인데 처음에 10번을 이렇게 풀었었는데 13번에 slicing에 대해 나와서 10번을 다르게 풀어봤다.

14.

# 리스트에서 세 글자 이상의 문자를 화면에 출력하라.
# 리스트 = ["I", "study", "python", "language", "!"]

study
python
language

list = ["I", "study", "python", "language", "!"]

for i in list :	 		# list에서 하나씩 받아와서
    if len(i) >= 3 : 	# len()을 통해 길이를 알 수 있다.
        print(i)

15.

# 리스트에서 대문자만 화면에 출력하라.
# 리스트 = ["A", "b", "c", "D"]

A
D

list = ["A", "b", "c", "D"]

for i in list : # list에서 하나씩 받아와서
if i.upper() == i : # 대문자로 바꿨을 때 같다면 출력
print(i)

16.

# 이름의 첫 글자를 대문자로 변경해서 출력하라.
# 리스트 = ['dog', 'cat', 'parrot']

Dog
Cat
Parrot

list = ['dog', 'cat', 'parrot']
for i in list : 
    print(i.capitalize())	# 문자열 제일 앞글자만 대문자로 바꿈

17.

# 파일 이름이 저장된 리스트에서 확장자가 .h인 파일 이름을 출력하라.
# 리스트 = ['intra.h', 'intra.c', 'define.h', 'run.py']

intra.h
define.h

file_name = ['intra.h', 'intra.c', 'define.h', 'run.py']

for i in file_name : 
    if i.endswith(".h") :   # .h 로 끝나는 파일 이름
        print(i)

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


리스트 함수

# 인덱스로 접근할 수 있고 값으로 접근할수도 있다.
append(x) : x값 추가
insert(index, x) : index에 x값 추가
remove(x) : x값 제거
pop(index) : index에 있는 값 반환 후 삭제
extend(list) : 다른 list 연결
count(x) : x 개수 세기
index(x) : x의 인덱스 반환
sort() : 정렬
reverse() : 뒤집기
copy() : 복사
clear() : 저장된 모든 값 삭제

lower() : 모든 문자를 소문자로 바꿔서 반환
upper() : 모든 문자를 대문자로 바꿔서 반환
capitalize() : 앞글자만 대문자로 바꿔서 반환

strip() : 앞뒤에 있는 모든 공백 제거
rstrip() : 오른쪽 공백 제거
lstrip() : 왼쪽 공백 제거

replace(a, b) : a를 b로 교체
split(x) : x를 기준으로 문자열을 쪼개서 리스트에 담아서 반환

find(s) : 처음 s가 있는 위치의 인덱스 값
rfind(s) : 마지막 s가 있는 위치의 인덱스 값

이스케이프 문자

\n : 줄바꿈
\t : 탭
\' : 작은 따옴표
\" : 큰 따옴표

파이썬에서 문자열의 경우 큰 따옴표를 사용해도 되고 작은 따옴표를 사용해도 된다.
문자열 안에서 큰 따옴표나 작은 따옴표를 사용하고 싶으면 문자열 따옴표를 그 반대 것을 사용하면 되는데 둘 다 사용하게 되는 경우도 있으니 알아둬야 한다.

print("수아는 시계를 봤다. '배고프다..' ")				# 가능
print("'배고프다.' 수아는 말했다. "밥버거 먹을거야."")	# 불가능
print("'배고프다.' 수아는 말했다. \"밥버거 먹을거야.\"")	#가능

0개의 댓글