Python
2023.04.20
연을
2023. 4. 20. 17:29
728x90
List | Tuple | Set | Dictionary | |
표기 | [ ] | ( ) | { } | {키:값} |
변환함수 | x=list() | x=tuple() | x=set() | x=dict() |
생성 | x=[v1,...,vN] | x=v1,...,vN | x={ } | x= {k1:v1,...,kN:vN} |
값의순서 | 있다 | 있다 | 없다 | 없다 |
인덱스 사용 | Yes | Yes | No | No |
추가/수정/삭제 | Yes | No | Yes | Yes |
for i in List : | for i in tuple : | for i in Set : | for x,y in Dict.items() : |
[list]
- list[i] = value → list 수정하는 법
- list = String : 인덱스를 사용
- list[strat:end+1]
- lValue[3,'hello',3.14,true,3-5i] : 데이터를 섞어쓸 수 있다.
- lValue[]
- ArrayList alName = new ArrayList();
- let alName = [];
[for]+[list]
둘 다 같은 코드라 할 수 있다. | lName=['고조선','고구려','백제','신라','통일신라','발해','고려','조선'] for name in LName: print(name) |
for name in ['고조선','고구려','백제','신라','통일신라','발해','고려','조선']: print(name) |
얕은복사(swallow copy) | name2=name1 |
깊은복사(import copy) | name1→['톰','존'](101) name2→['톰','존'](120) name2 = copy.deepcopy(name) |
[tuple]
- tuple값은 수정이 되지 않는다.
- 원래 값을 서로 바꾸려면 변수명을 하나 선언해서 서로 바꿔 줘야 했지만 tuple이 변수를 선언하지 않아도 서로 바꿀 수 있게 해준다. ex) i,j = j,i → 이렇게 한 줄로 가능
- 새로 생기기만 할 뿐 기존의 건 날아감
[set]
- 중복값을 제거할 때 쓰인다.
.intersection : 교집합 |
.union : 합집합 |
.difference : 차집합 |
.update & .add : 추가(수정) |
.remove & .discard : 삭제 |
[DICTionary]
- dictionary = javascript : object
- 4개의 복합자료구조 안에는 다른 자료구조가 포함될 수 있다.
javascript | obj = {name:'john',age:25,moblie:'01044445555',city:'cheonan'}; |
obj.name & obj['name'] & str='name' & obj[str] | |
python |
obj = {'name':'john','math':100,'eng':90,'kor':96} |
코드
d1={'name':'John','math':100,'eng':87,'kor':95}
for x in d1:
print(x)
print()
for x in d1:
print(d1[x])
print()
for x,y in d1.items():
print(x,y)
결과
name math eng kor John 100 87 95 name John math 100 eng 87 kor 95 |
[국영수 점수 입력/출력/총점/평균]
코드
stdict={}
sumk=0
sume=0
summ=0
avgk=0
avge=0
avgm=0
name=input('학생 이름을 입력하세요 ['':종료]:')
while name!="":
stdict[name] = {}
stdict[name]['국어'] = []
stdict[name]['영어'] = []
stdict[name]['수학'] = []
kor = float(input('국어 점수를 입력하시오 :'))
stdict[name]['국어'].append(kor)
sumk += kor
eng = float(input('영어 점수를 입력하시오 :'))
stdict[name]['영어'].append(eng)
sume += eng
math = float(input('수학 점수를 입력하시오 :'))
stdict[name]['수학'].append(math)
summ += math
name = input('학생 이름을 입력하세요 ['':종료]:')
print()
for name, subjects in stdict.items():
print(name, subjects)
num_students = len(stdict)
avgk = sumk / num_students
avge = sume / num_students
avgm = summ / num_students
print()
print('국어 총점 :',sumk)
print('영어 총점 :',sume)
print('수학 총점 :',summ)
print()
print('국어 평균 :',avgk)
print('영어 평균 :',avge)
print('수학 평균 :',avgm)
결과
학생 이름을 입력하세요 ['':종료]:john 국어 점수를 입력하시오 :90 영어 점수를 입력하시오 :78 수학 점수를 입력하시오 :97 학생 이름을 입력하세요 ['':종료]:lisa 국어 점수를 입력하시오 :87 영어 점수를 입력하시오 :79 수학 점수를 입력하시오 :48 학생 이름을 입력하세요 ['':종료]: john {'국어': [90.0], '영어': [78.0], '수학': [97.0]} lisa {'국어': [87.0], '영어': [79.0], '수학': [48.0]} 국어 총점 : 177.0 영어 총점 : 157.0 수학 총점 : 145.0 국어 평균 : 88.5 영어 평균 : 78.5 수학 평균 : 72.5 |
[메뉴명,가격을 입력받아 출력]
코드
lcafe=[]
dcafe={}
menu=input('메뉴명을 입력하세요 ['':종료] : ')
while menu!="":
price=int(input('가격을 입력하세요:'))
dcafe={'name':menu,'price':price}
lcafe.append(dcafe)
menu = input('메뉴명을 입력하세요 ['':종료] : ')
print()
for dcafe in lcafe:
print('%-12s %4d'%(dcafe['name'],dcafe['price']))
결과
메뉴명을 입력하세요 [:종료] : 아메리카노 가격을 입력하세요:2500 메뉴명을 입력하세요 [:종료] : 라떼 가격을 입력하세요:3000 메뉴명을 입력하세요 [:종료] : 아메리카노 2500 라떼 3000 |
[파일 입출력]
- f=open(파일명('/'),'r/w/a/b')
- f.read() 파일전체를 읽어서 문자열로 저장
- f.readline() 한줄을 읽어서 문자열로 저장
- f.readlines() 파일전체를 읽어서 라인단위로 리스트에 저장
- menu.txt를 읽어서 lMenu리스트 구성
- 작업을 선택하시오['m':메뉴관리,'o':주문관리,'s':매출관리, " ":프로그램종료]
- 작업이 "프로그램종료"가 아닌동안
- if 'm'
- elif 'o'
- elif 's'
- 작업을 선택하시오['m':메뉴관리,'o':주문관리,'s':매출관리, " ":프로그램종료]
- 프로그램 종료 출력
코드
lMenu=[]
f=open('D:/Cafe/menu.txt','r')
str=f.readline()
while str!='':
menu=str.split(',')
dMenu={'name':menu[0],'price':int(menu[1])}
lMenu.append(dMenu)
str=f.readline()
work = input("작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, '':프로그램종료]")
while work!="":
if work=='m':
for menu in lMenu:
print('%-12s %4d' % (menu['name'], menu['price']))
work = input("작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, " ":프로그램종료]")
elif work=='o':
print('주문관리')
work = input("작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, " ":프로그램종료]")
elif work=='s':
print('매출관리')
work = input("작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, " ":프로그램종료]")
else:
print('잘못입력하셨습니다. 다시 선택해 주세요')
work = input("작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, " ":프로그램종료]")
print("프로그램종료")
결과
작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, '':프로그램종료]m Latte 3000 Moca 3500 Espresso 2500 Americano 2700 Cappuccino 3600 ErlGrey 2800 GreenTea 2300 IceAmericano 2800 작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, :프로그램종료]o 주문관리 작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, :프로그램종료]s 매출관리 작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, :프로그램종료]a 잘못입력하셨습니다. 다시 선택해 주세요 작업을 선택하시오 ['m':메뉴관리, 'o':주문관리,'s':매출관리, :프로그램종료] 프로그램종료 Process finished with exit code 0 |
728x90