Aliasing

heehe·2023년 3월 2일
0

python

목록 보기
11/11
post-thumbnail

Alias(가명)

x = 5
y = x
y = 3
print(x)
print(y)
# 한 이름표는 한 곳에만 달릴 수 있다

x = [2, 3, 5, 7, 11]
y = x
y[2] = 4
print(x)
print(y)
# 같은 리스트 출력

x = [2, 3, 5, 7, 11]
y = list(x)
y[2] = 4
print(x)
print(y)
# 다르게 리스트 출력(X 리스트 변경 안됨)

리스트와 문자열

#리스트
alphabet_string = 'ABCDEFGHIJ'

print(alphabet_string[0])
print(alphabet_string[1])
print(alphabet_string[4])
print(alphabet_string[-1])

#슬라이싱
alphabet_string = 'ABCDEFGHIJ'

print(alphabet_string[0:5])
print(alphabet_string[4:])
print(alphabet_string[:4])

#문자열 연결
str_1 = "Hello"
str_2 = "World"
str_3 = str_1 + str_2
print(str_3)

list_1 = [1,2,3,4]
list_2 = [5,6,7,8]
list_3 = list_1+list_2
print(list_3)

인덱싱 (Indexing)

두 자료형은 공통적으로 인덱싱이 가능

# 알파벳 리스트의 인덱싱
alphabets_list = ['A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J']
print(alphabets_list[0])
print(alphabets_list[1])
print(alphabets_list[4])
print(alphabets_list[-1])

# 알파벳 문자열의 인덱싱
alphabets_string = 'ABCDEFGHIJ'
print(alphabets_string[0])
print(alphabets_string[1])
print(alphabets_string[4])
print(alphabets_string[-1])

for 반복문

두 자료형은 공통적으로 인덱싱이 가능합니다. 따라서 for 반복문에도 활용

# 알파벳 리스트의 반복문
alphabets_list = ['C', 'O', 'D', 'E', 'I', 'T']
for alphabet in alphabets_list:
    print(alphabet)

# 알파벳 문자열의 반복문
alphabets_string = 'CODEIT'
for alphabet in alphabets_string:
    print(alphabet)

len 함수

# 리스트의 길이 재기
print(len(['H', 'E', 'L', 'L', 'O']))

# 문자열의 길이 재기
print(len("Hello, world!"))

Mutable (수정 가능) vs. Immutable (수정 불가능)

리스트는 데이터를 바꿀 수 있지만, 문자열은 데이터를 바꿀 수 없다는 것입니다. 리스트와 같이 수정 가능한 자료형을 'mutable'한 자료형이라고 부르고, 문자열과 같이 수정 불가능한 자료형을 'immutable'한 자료형이라고 부릅니다. 숫자, 불린, 문자열은 모두 immutable한 자료형이다.

# 리스트 데이터 바꾸기
numbers = [1, 2, 3, 4]
numbers[0] = 5
print(numbers)

# 문자열 데이터 바꾸기(문자열은 변형이 불가능하다는 메시지 오류 발생)
name = "codeit"
name[0] = "C"
print(name)

문제 1

sum_digit 함수를 작성한다.
sum_digit(1)부터 sum_digit(1000)까지의 합을 구해서 출력한다.

# 자리수 합 리턴
def sum_digit(num):
    total = 0
    str_num = str(num)
    
    for digit in str_num:
        total += int(digit)

    return total


# sum_digit(1)부터 sum_digit(1000)까지의 합 구하기
digit_total = 0
for i in range(1, 1001):
    digit_total += sum_digit(i)

print(digit_total)

문제 2

팰린드롬 여부를 확인하는 함수 is_palindrome을 작성하려고 하는데요. is_palindrome은 파라미터 word가 팰린드롬이면 True를 리턴하고 팰린드롬이 아니면 False를 리턴합니다.

def is_palindrome(word):
    for left in range(len(word) // 2):
        # 한 쌍이라도 일치하지 않으면 바로 False를 리턴하고 함수를 끝냄
        right = len(word) - left - 1
        if word[left] != word[right]:
            return False

    # for문에서 나왔다면 모든 쌍이 일치
    return True


# 테스트 코드
print(is_palindrome("racecar"))
print(is_palindrome("stars"))
print(is_palindrome("토마토"))
print(is_palindrome("kayak"))
print(is_palindrome("hello"))
profile
성장하고픈 ISFJ

0개의 댓글