1.
#딕트로 풀기
dic = {"국어":80, "영어":75, "수학":55}
#리스트로 바꾸기
a = list(dic.values())
print(sum(a) / 3)
2.
n = int(input())
if n % 2 == 0:
print("짝수")
else:
print("홀수")
3.
number = "881120-1068234"
yyyymmdd = number[:6]
num = number[7:]
print(yyyymmdd) # 881120 출력
print(num) # 1068234 출력
4.
pin = "881120-1068234"
print(pin[7:8])
5.
a = "a:b:c:d"
b = a.replace(":","#")
print(b)
6.
a = [1,3,5,4,2]
a.sort(reverse=True) # 내림차순
print(a)
7.
arr = ['Life', 'is', 'too', 'short']
#내 코드
for i in arr:
print(i, end=" ")
#join함수 사용하기
# 단어 사이사이에 공백 넣어주기
res = " ".join(arr)
print(res)
8.
a = (1,2,3)
b = (4,)
print(a+b)
10.
a = {'A':90, 'B':80, 'C':70}
b =a.pop("B")
print(b)
print(a) #"B"값은 삭제된 상태
11.
a = [1, 1, 1, 2, 2, 3, 3, 3, 4, 4, 5]
b =set(a)
print(b)
12.
>>> a = b =[1,2,3]
>>> a[1]=4
>>> b
[1, 4, 3]
➡️ b도 변함. a와 b 변수는 모두 동일한 [1, 2, 3]이라는 리스트 객체를 가리키고 있기 때문
2.
#1부터 1000까지의 자연수 중 3의 배수의 합 구하기
sum = 0
n = 0
while (n < 1000):
n = n+1
if n % 3 == 0: # 3의 배수
sum = sum + n
print(sum)
3.
#while사용하기
n = 0
while 1:
n = n+1
print("*" * n)
if n == 5:
break
4.
for i in range(1,101):
print(i)
5.
a = [70, 60, 55, 75, 95, 90, 80, 80, 85, 100]
#풀이1
sum=sum(a) # 총 합
n = 0
for i in a:
n = n+1
print(sum/n)
#풀이2,,
total = 0
for i in a:
total = total + i
avg = total / len(a)
print(avg)
6.
numbers = [1, 2, 3, 4, 5]
result = []
for n in numbers:
if n % 2 == 1:
result.append(n*2)
# 위 코드를 리스트 내포 사용해 만들기
number=[1,2,3,4,5]
res = [n*2 for n in number if n % 2 == 1]
print(res)
1.
#홀수인가? is odd?
def is_odd(n):
if n % 2 == 0:
return False
else:
return True
#람다사용
is_odd = lambda n : True if n % 2 == 1 else False
2.
#입력으로 들어노는 모든 수의 평균 값
def sum_all(*args): #모아서 튜플로 만들어줌
res = 0
for i in args:
res = res + i
return res / len(args)
a = sum_all(20,30,30)
print(a)
3.
input1 = int(input("첫번째 숫자를 입력하세요:"))
input2 = int(input("두번째 숫자를 입력하세요:"))
total = input1 + input2
print("두 수의 합은 %s 입니다" % total)
4.
print("you" "need" "python")
print("you"+"need"+"python")
print("you", "need", "python")
# 얘만 다름 -> ,는 띄어쓰기를 해줌.
print("".join(["you", "need", "python"]))
5.
f1 = open("test.txt", 'w') #읽기모드
f1.write("Life is too short")
f1.close() # 닫아줘야함
f2 = open("test.txt", 'r')
print(f2.read())
f2.close() #닫아줘여함.
6.
user_input = input("입력:")
f = open('test.txt', 'a') # 내용을 후에 추가하기 위해 'a'를 사용
f.write(user_input)
f.write("\n")# 입력된 내용을 줄 단위로 구분하기 위해 줄 바꿈 문자 삽입
f.close()
7.
f = open('test.txt', 'r')
body = f.read() #문자열로 가져오기
f.close() # 닫기
body = body.replace('java', 'python') #바꾸기
f = open('test.txt', 'w') # 쓰기모드로 열었기 때문에 이미 존재하던 파일이 모두 사라진다
f.write(body) #쓰기
f.close()
#문자열로 replace사용해보기
str = """Life is too short
you need java"""
a = str.replace("java","python")
print(a)
1.
# 기존 클래스 써보기
class Calculator:
def __init__(self): # 생성자 , self에 cal
self.value = 0 # cal.value?
def add(self, val): #cal, 20
#self.value += val
self.value = self.value + val # 0 = 0+20?
# cal.value = cal.value + 20
cal = Calculator() # cal이라는 객체 생성
cal.add(20) # val = 20
#출력하기
print(cal.value) # 객체 변수
# 문제 풀이
class Calculator:
def __init__(self):
self.value = 0
def add(self, val):
self.value += val
class UpgrageCalculator(Calculator): # 상속
def minus(self, val):
#self.value -= val
self.value = self.value - val
cal = UpgrageCalculator() # 객체만들기
cal.add(10) # 상속을 받아서 Calulator() 클래스 사용가능 , 10이 들어가서 0 + 10 = 10(self.value)인 상태
cal.minus(7) # 10 - 7 = 3
print(cal.value) # 3
2.
# 객체변수 value가 100 이상의 값을 가질 수 없도록 제한하는 클래스 만들기
class Calculator:
def __init__(self):
self.value = 0
def add(self, val):
self.value += val
class MaxLimitCalculator(Calculator): # 상속
def add(self,val): #오버라이딩 : 부모 클래스 메서드를 동일한 이름으로 다시 만드는 것
self.value += val # 50
if self.value > 100:
self.value = 100
#실행
cal = MaxLimitCalculator()
cal.add(50) # 50 더하기 # 오버라이딩하면 오버라이딩한 메서드 호출!
cal.add(60) # 60 더하기
print(cal.value) # 100 출력
#왜 50, 60 이 따로 출력되지 않는것이지,,??
3.
a = all([1, 2, abs(-3)-3])
print(a)
➡️ abs(-3)은 -3의 절댓값이므로 3이 되어 all([1, 2, 0])이 되고, 리스트의 요솟값중 0이 있기 때문에 all 내장 함수의 결과는 False가 된다.
a = chr(ord('a')) == 'a'
print(a)
➡️ a의 유니코드를 구하고 다시 chr로 문자로 바껴서 a가 된다.
4.
# filter,lamda 이용하기
a = list(filter(lambda x: x > 0, [1, -2, 3, -5, 8, -3]))
print(a)
5.
a =int("0xea",16) # 16진수로 표현된 "0xea"를 10진수로 돌려줌
print(a)
6.
#map,lambda 이용
a = list(map(lambda x: x * 3, [1,2,3,4]))
print(a)
7.
arr = [-8, 2, 7, 5, -3, 5, 0, 1]
a = max(arr)
b = min(arr)
print(a+b)
8.
a = 17/3
print(round(a,4))
9.
import sys
num = sys.argv[1:] # 파일 이름 제외
res = 0
for i in num:
res = res + int(i) # 하나씩 더하기
print(res)
>>> import os
>>> os.chdir("/Users/princesong/Desktop/Algorithm/python/mymod") # 원하는 경로로 이동하기
>>> os.getcwd() # 잘 이동했는지 확인
'/Users/princesong/Desktop/Algorithm/python/mymod'
>>> res = os.popen("ls") # ls 명령어써서 디렉토리에 있는 파일들(결괏값) 보여주기
>>> print(res.read())
argv_test.py
dst.txt
pp.py
src.txt
test.txt
11.
>>> from glob import glob
>>> glob("*.txt")
12.
>>> time.strftime("%Y/%m/%d %H:%M:%S")
'2021/05/26 00:55:43'
# 년, 월, 일, 시, 분, 초
13.
import random
arr = []
for i in range(6):
a = random.randint(1,45)
arr.append(a)
print(arr)