PYTHON/기본 문법

PYTHON - 문자열 리스트

seongjin08 2022. 11. 10. 10:59

문자열

x = 'banana'

x[0]  # 0번째 글자 
'b'

x[2:4] # 2번 이상 4번 미만 
'na'

x[:3]  # 처음부터 3번 미만
'ban'

x[3:]  #  3번 부터 끝까지
'nan'

 

s = 'hello Python!'

s.find('P')  #'P'의 위치찾기
6

s.split()
['hello','Python!']

h = [0:6]
'hello '

h.rstrip()
'hello'

리스트

arr = [3,7,11]

arr.append(5)
[3,7,11,5]

arr.sort()
[3,5,7,11]

arr.insert(0,2)
[2,3,5,7,11]

del arr[1]  # 1번째 자리 원소 삭제
[2,5,7,11]

a = arr.pop()  # 삭제한 원소를 a 변수로 받음
11

orders = ['potato', ['pizza', 'Coke', 'salad'], 'hamburger']

orders[1]
['pizza', 'Coke', 'salad']

orders[1][2]
'salad'

문자열 리스트로 바꾸기

arr = []
char = 'Be happy'
for i in char:
    arr.append(i)
    
print(arr)
['B','e',' ','h','a','p','p','y','!']

list('Be happy!')
['B','e',' ','h','a','p','p','y','!']

# 숫자를 문자열로 바꾸기
num = 123

type(num)
<class int>

str(num)
<class str>

# 문자를 숫자로 바꾸기

int('123')
123

float('123')
123.0

#리스트 원소들 합 구하기
num = list(range(1,11))
[1,2,3,4,5,6,7,8,9,10]

sum(num)
55

성적표

chulsu = [90, 85, 70]
younghee = [88, 79, 92]
yong = [100, 100, 100]
minsu = [90, 60, 70]

students = [chulsu, younghee, yong, minsu]

for scores in students:
    print(scores)

[90, 85, 70]
[88, 79, 92]
[100, 100, 100]
[90, 60, 70]

for scores in students:
     total = 0
     for s in scores:
         total = total + s
     average = total / 3
     print(scores, total, average)

[90, 85, 70] 245 81.66666666666667
[88, 79, 92] 259 86.33333333333333
[100, 100, 100] 300 100.0
[90, 60, 70] 220 73.33333333333333

 

 

연습 문제 

- 각 자리 숫자의 함을 구하는 함수 - 리스트 이용

정수를 매개 변수로 받아  각 자리 숫자의 합을 계산하는 함수 작성 - 단, 나눗셈 이용하지 말것

 

from functools import reduce

def sumOfDigits(num):
    t = list(str(num)) 
    result = reduce(lambda x,y: int(x)+int(y) ,t)
    print(result)

if __name__ == '__main__':
    sumOfDigits(47253)
    sumOfDigits(643)
    
    ----------------------------------------------------
    
    def sumOfDigits(num):
    sum = 0
    for c in list(str(num)):
        sum += int(c)

    return sum

if __name__ == '__main__':
    print(sumOfDigits(47253))
    print(sumOfDigits(643))

- 줄기와 잎 그림

줄기와 잎 그림을 파이썬으로 만들기

 

score = [0, 0, 2, 4, 7, 7, 9]
score += [11, 11, 13, 18]
score += [20]

def test(arr):
    stem_leaf = [[],[],[]]

    for s in score:
        d,m = divmod(s,10)
        stem_leaf[d].append(m)

    for i in range(len(stem_leaf)):
        print( f'{i}: {stem_leaf[i]}')

test(score)

 

- 각 자리 숫자의 합을 구하는 함수 (map() 사용)

def test(num):
    num = list(map(lambda x: int(x), list(str(num))))
    
    print(sum(num))

if __name__ =='__main__':
    test(643)
    test(47253)

 

- 소수 구하기

def prime(n):
    L = list(range(2,n+1))
    L2 = L[:]
    
    for p in L:
        for q in L:
            if(q in L2) and (q != p and q % p == 0):
                L2.remove(q)
    print(L2)

prime(50)

 

- 진법 변환

def test():
    num = int(input())
    num = bin(num).replace('0b','')
    return num

print(test())

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

d = int(input())
m = d
b = []

while True:
    d, m = divmod(d, 2)
    b.insert(0, m)
    if d == 0:
        break

print(b)

 

 

 

'PYTHON > 기본 문법' 카테고리의 다른 글

PYTHON - 딕셔너리(dict), 세트(set)  (1) 2022.11.10
PYTHON - 튜플  (0) 2022.11.10
PYTHON - 데이터 타입  (0) 2022.11.08
PYTHON 기본 문법 (함수)  (0) 2022.11.08
PYTHON 기본 문법 ( for , match - case 문 )  (1) 2022.11.08