0905 - Python

오늘·2022년 9월 6일
0

A

목록 보기
9/46

복습문제

파이썬 고유의 자료형을 적으세요
[답변] Booleans, Strings, Lists, Tuples, Set, Dictionaries 등



다음 코드를 실행하였을 때 나타나는 결과는?
[코드]
a = [1, 2, 3, 4, "Hello", "Good Morning"] 
a.remove(4)
print(a)
[답변] [1, 2, 3, 'Hello', 'Good Morning']



[코드]
a = [1, 2, 3, 4, "Hello", "Good Morning"] 
a.pop(4)
print(a)
[답변]
[1, 2, 3, 4, 'Good Morning']



a = int(input("팩토리얼 할 수를 입력하세요"))
[답변]
out = 0
for i in range(a+1) :
  out += i
print(out)



0부터 1000까지 짝수만 저장된 리스트를 생성하려면?
[답변]
result = []
for i in range(1000+1) :
  if i%2 == 0:
    result.append(i)
print(result)

[추가 답변]
result = [i for i in range(0, 1000+1, 2)]
result = list(range(0, 1000+1, 2))
result = [i for i in range(0, 1000+1) if i%2==0]



a = [1, 2, 3] 복사해 b에 담아주세요
[답변]
import copy
b = copy.copy(a)
b = copy.deepcopy(a)
b = a[:]
b = a
b = a.copy()



아래 문자열 중 M만 출력하는 방법은
a = "Good Morning"
[답변]
a.find("M")
a[5]



a = [1, 3, 4, 2] 를 아래처럼 출력하시요
[4, 3, 2, 1]
[답변]
a.sort()
a.reverse()
a

용어의 혼용

많이 사용되는 혼용
입력값 = 함수의 인수 = 매개변수
결과값 = 출력값 = 반환값


문제

# 1부터 10까지의 합을 while 문으로
i = 1
result = 0
while True :
  result += i
  i += 1
  if i == 11 : 
    break
print(result, i)

sum = 0
num = 0
while num <= 10:
    sum += num
    num += 1
print(sum)




# 3의 배수 또는 5의 배수의 합(10이하의 수)
i = 0
sum = 0
while i < 10:
    i += 1
    if i % 3 == 0:
        sum += i
    elif i % 5 == 0:    
        sum += i
print(sum) 




# 홀수면 2배, 짝수면 나누기 2를 해서 리턴하는 함수
def odd_even(a) :
  if a%2 == 0 :
    return a/2
  elif a%2 == 1 :
    return a*2

odd_even(3)

함수

#기본값(디폴트 값)이 있다면 가장 뒤에
def add(a, c, b=10) :
  result = a+b+c
  return result

#아니면 속에 넣어주는 것이 안전
def add(a, b) :
  result = a+b+10
  return result

# 입력값이 여러개인 경우
def add(*args) :
  sum = 0
  for i in args :
    sum += i
  return sum
add(1, 2, 3, 4)

# 1부터 입력받은 수까지의 합
def add(a) :
  sum = 0
  for i in range(a+1) :
    sum += i
  return sum
add(3)

lambda

def add(a, b) :
  return a+b
add(1, 2)

(lambda a,b : a+b)(1,2)

f = lambda a,b : a+b
f(1,2)

백준

# 11720 : 숫자의 합
cnt = int(input())
num = list(input())
result = 0

for i in range(cnt) :
  result += int(num[i])

print(result)




# 2675 : 문자열 반복
# 테스트 케이스의 갯수
T = int(input())

# 처음 작성했던것
# for i in range(T):
#   # 반복횟수 문자열
#   cnt, s = input().split()
#   for j in range(int(cnt)) :
#     print(s[j]*int(cnt), end="")
#   print()
# 위처럼 하면 j가 cnt만큼 커지는데
# 인덱스만큼 문자열이 크지 않으면 당연히 range초과로 오류

# 제출
for i in range(T) :
  cnt, s = input().split()
  for j in s :
    print(j*int(cnt), end="")
  print()




# 10809번 : 알파벳 찾기
word = input()
# 아스키코드 숫자 범위
alphabet = list(range(97,123))

for x in alphabet :
    print(word.find(chr(x)), end = " ") 




# 1152 : 단어의 개수
s = input().split()
print(len(s))




# 2908 : 상수
# 주어지는 두 수
A, B = input().split()
# 들어온 값 뒤집기
A = int(A[::-1])
B = int(B[::-1])

if A>B : 
  print(A)
else :
  print(B)




# 5622 : 다이얼
# 단어입력
word = input().strip()
num = 0

# for i in word :
#   if i == "A" or i == "B" or i == "C" :
#     num += 3
#   elif i == "D" or i == "E" or i == "F" :
#     num += 4
#   elif i == 'G' or i == 'H' or i == 'I' :
#     num += 5
#   elif i == 'J' or i == 'K' or i == 'L' :
#     num += 6
#   elif i == 'M' or i == 'N' or i == 'O' :
#     num += 7
#   elif i == 'P' or i == 'Q' or i == 'R' or i == 'S' :
#     num += 8
#   elif i == 'T' or i == 'U' or i == 'V' :
#     num += 9
#   elif i == 'W' or i == 'X' or i == 'Y' or i == 'Z' :
#     num += 10

# 리스트에 넣어놓기
alpha = ['A, B, C', 'DEF', 'GHI', 'JKL', 'MNO', 'PQRS', 'TUV', 'WXYZ']
for i in range(len(word)) :
  for j in alpha :
    if word[i] in j :
      num += alpha.index(j) + 3
print(num)




# 2941 : 크로아티아 알파벳
croatia = ['c=', 'c-', 'dz=', 'd-', 'lj', 'nj', 's=', 'z=']
word = input()

for i in croatia :
  word = word.replace(i, '.')
print(len(word))

reverse, reversed

파이썬 reverse, reversed의 차이

reverse()

  • 값을 반환하지 않는다.
  • list 타입에서 제공하는 함수
  • list 요소를 역순으로 정렬해준다

reversed()

  • 'reversed' 객체를 반환
    -> 원본을 변경하지 않는다
  • 내장함수
  • 인덱스로 순차적인 접근이 가능하지 않다면 적용되지 않을 수 있다

0개의 댓글