Contents
반응형
import sys
print(sys.argv)
args = sys.argv[1:]
print(args)
# 생성
d= {'basketball':5,'baseball':9}
print(d,type(d))
# 변경가능
d['valleyball']=6
print(d)
# 반복(*) , 연결(+) 지원하지 않는다
# (sequence 형이 아니기 때문에)
print(len(d))
# in, not in 가능 : 키만 가능
print('soccer' in d)
print('valleyball' in d)
# 다양한 dict 객체 생성 방법
# 1. literal
d=dict(one=1,two=2,three=3)
print(d)
# 2. dict() 사용하는 방법
d=dict([('one',1),('two',2),('three',3)])
print(d)
#2 dict() 사용하는 방법4 -zip을 사용하는 방법
keys={'one','two','three'}
values={1,2,3}
d=dict(zip(keys,values))
print(d)
# 다양한 key 타입 (immutable 타입만 가능하다)
d= {}
d[True]='true'
d[10]='10'
d['twenty'] =20
print(d)
# key 객체
keys=d.keys()
print(keys,type(keys))
for key in keys :
print("{0}:{1}".format(keys,d[key]))
# values 객체
values=d.values()
print(values,type (values))
# items 객체
# [(key1,value1),(key2,value2)...]
items=d.items()
print(items,type(items))
phone={
'A':'00-0000-0000',
'B':'11-1111-1111',
'C':'22-2222-2222'
}
p=phone
print(p)
print(phone)
p['A']='33-333-3333'
print(p)
print(phone)
p=phone.copy()
print(p)
print(phone)
p['D']='33-333-3333'
print(p)
print(phone)
# get() 함수
# get을 사용한는 이유는 해당 키값에 대한 값이
# 존재하지 않는 경우 None을 받기 위해
print(phone.get('A'))
print(phone.get('M'))
print('=====================')
# setDefault
print(phone.setdefault('D','44-4444-4444'))
print(phone)
num=phone.pop('D')
print(num,' ' , phone)
#
item = phone.popitem()
print(item)
# 업데이트
phone.update({
'A':'00-0000-111'
})
print(phone)
# 모두 삭제하기
phone.clear()
# 리스트 생성
l = [1,2,'python']
print(l,type (l))
# indexing
print(l[-3],l[-2],l[-1],l[0],l[1],l[2])
# slicing
l2 = l[0:len(l)]
print(l2)
print(l[len(l)-1::-1])
# 연결 (+)
l3 = l + [3,4,5]
print(l3)
# 확인
print(5 in l3)
# 삭제
del l3[0]
print(l3)
#
a=['apple','banana',10,20]
a[2] = a[2]+90
print(a)
# 슬라이싱을 통한 치환
a=[1,12,123,1234]
a[0:2]=[10,20]
print(a)
a[0:2]=[10]
print(a)
a[1:2]=[20]
print(a)
a[0:2]=[40,40,40,40]
print(a)
# 슬라이싱을 통한 삭제
a = [1,12,123,1234]
a[1:2] = []
print(a)
a[0:] =[]
print(a)
# 슬라이싱을 통한 삽입
a = [1,12,123,1234]
# 중간
a[1:1]=[30]
print(a)
# 마지막
a[5:]=[123455]
print(a)
# 처음
a[:0]=[0]
print(a)
# 여러개 삽입
a[2:2]= [11,22,33]
print(a)
#
# 객체함수
a = [1,12,123,1234]
# 삽입
a.insert(1,'a')
print(a)
# 뒤에 삽입
a.append(12345)
print(a)
# 앞에 삽입
a.insert(0,0)
print(a)
# 제거
a.remove(12)
print(a)
# 확장
a.extend([55,44,33])
print(a)
# 스택으로 사용하기
stack=[]
stack.append(10)
stack.append(20)
stack.append(30)
print(stack)
print(stack.pop(),' ' , stack)
# 큐로 사용하기
q = [1,2]
q.append(3)
q.append(4)
print(q)
print(q.pop(0), ' ',q)
# sort()
l3=[1,53,44,551,12]
l3.sort()
print(l3)
l3.sort(reverse=True)
print(l3)
l3=[23,541,213,11,434,223,2]
l3.sort(key=str)
print(l3)
l3=[23,541,213,11,434,223,2]
l3.sort(key=int)
print(l3)
# cf. 내장(전역) 함수 sorted
l3=[10,20,23,1234,332,22]
l4 = sorted(l3)
print(l4)
l4=sorted(l3,reverse=True)
print(l4)
l3=[10,32,54,23,88,91,47]
def f(n) :
return n % 10
l4=sorted(l3,key=f)
print(l4)
print(~5) # -6
# 0 0 0 0 0 1 0 1
# 1 1 1 1 1 0 1 0
# 1 1 1 1 1 0 0 1
# 0 0 0 0 0 1 1 0 -> 6
# 뒤집은 다음에 + 1 ( 2의보수 사용 )
# << 연산
a=4
print(a>>1)
a=-4
print(a>>1)
# bit and or, exclusive or
# 011
a=3
print(a&2) # 011 010 -> 010
print(a|8) # 0011 1000 -> 1011
print(a^2) # 011 010 -> 001
print(a^a) # 011 011 -> 000
# packing : tuple 만 가능하다
t = 10,20,30 , 'python'
print(t,type(t))
# unpacking
a,b,c,d = t
print(a,b,c,d)
# 에러
# a,b,c = t
# unpacking extended
t = (1,2,3,4,5)
a, *b=t
print(a,b)
*a, b =t
print(a,b)
a,b,*c = t
print(a,b,c)
a,*b,c= t
print(a,b,c)
# cf. 여러개 파라미터를 받는 함수
def sum(*num) :
sum=0
for n in num :
sum+=n
return sum
print(sum(1,2))
print(sum(1,2,3))
print(sum(1,2,3,4))
def printf(format,*s):
return print(format % s)
printf("name: %s, age : %d ", "둘리",10)
#기본연산
nums=[1,2,2,3,4,6]
s=set(nums)
print(s)
s={1,4,33,2,4 }
print(s,type(s))
s.add(7)
print(s)
s.discard(4)
print(s)
# 존재하지 않는 객체 삭제시 예외발생
# s.remove(1111111)
s.update({99,88})
print(s)
s.clear()
print(s)
# 수학 집합 관련 객체함수
s1={1,2,3,4,5,6,7,8,9,10}
s2={10,20,30}
s3=s1.union(s2)
print(s3)
s3=s1.intersection(s2)
print(s3)
s3=s1.difference(s2)
print(s3)
s3=s1.symmetric_difference(s2)
print(s3)
print(s1.issuperset(s3))
# 한 줄 문자열 정의
s= ''
str1='Hello World'
print(type(s),type(str1))
print(isinstance(str1,str))
# 여러줄 문자열
str2= '''ABC
1234
간다
'''
print(str2)
'''
여기는 주석입니다.
여러 라인 주석을 대체할 수있습니다.
'''
# escape
print('Hello\nWorld\nI Say "Hello WOrld" ')
#
# 문자열 연산
#
str1='First String'
str2='Second String'
# 1. 인덱싱
print(str1[0],str1[1],str1[2])
print(str1[-1],str1[-2],str1[-3])
# 2. Slicing
# s[start:stop:step]
str3= str2[2:5]
print(str3)
print(str2[2:len(str2):1])
print(str2[2:])
s = 'Python'
print(s[-1]) # 마지막문자
print(s[-2:]) # 마지막 2개문자
print(s[:-2])
print(s[::-1]) #reverse
print(s[1::-1]) # 1,2번째 문자
print(s[::2])
print(s[:-3:-1]) # 마지막 2개 문자
print(s[-3::-1]) #마지막2개 문자 제외한 전체 문자열
#연결 (+)
print(str1+' ' +str2)
# 문자열 객체 연결은 문자열끼리만 할 수 있다.
name= '둘리'
age = 10
# print(name + 10)
print(str1*3)
print(len(str1))
# in, not in연산
print('F' in str1)
print('S' not in str1)
# str 객체는immutable이다
# str1[0] = 'f'
# 서식 ( formatting) = fromat 함수
print("name :"+name+".age:"+str(age))
print("name:"+format(name,"s")+", age: "+format(age,"d"))
# 서식 : 튜플을 사용한 방식
f = "name: %s, age : %d"
print(f % (name,age))
print(f % ('또치',20))
# 서식 : 딕셔너리를 사용한 방식
f = "name : %(n)s, age: %(a)d"
print(f % {'n':'졸려','a':23})
#
# 객체함수
#
# 1. 대소문자 관련
s = 'i Like Python'
print( s.upper(),' ',s.lower(),' ',s.swapcase())
print(s.capitalize(),' ',s.title())
# 2. 검색
s = 'I Like Python. I Like Java Also'
print(s.count('Like'))
print(s.find("Like"))
print(s.find("Like",5))
# 없다면 -1
print(s.find('JavaScript'))
print(s.rfind('Like'))
# 없다면 exception
# print(s.index("Like"))
print(s.rindex('Like'))
print(s.startswith("I Like"))
print(s.startswith("Like",2))
print(s.endswith('Java',0,26))
# 편집과 치환
s = ' spam ans ham '
print('------',s.strip(),'------')
print('------',s.rstrip(),'------')
print('------',s.lstrip(),'------')
s='<><abc><><defg><><>'
print('-------',s.strip('><')+"--------")
print('-------',s.strip('<>')+"--------")
s='Hello Java'
print(s.replace('Java','Python'))
# 분리 & 결합
s = 'spam and ham'
t= s.split(' and ')
print(t,type(t))
s2 = ':'.join(t)
print(s2)
s3 = 'one:two:three:four:five'
print(s3.split(':'))
print(s3.split(':',2))
print(s3.rsplit(':',2))
lines = ''' 1st line
2nd line
3rd line
4th line
'''
print(lines.split('\n'))
print(lines.splitlines())
print('======================')
# 판별
print('2134'.isdigit())
print('2134'.isalpha())
print('\t'.isspace())
# '0' 채우기
print('20'.zfill(5))
# 서식 : 객체함수
print('name:{}, age{}'.format('둘리',10))
print('name:{0}, age{1}'.format('둘리',10))
print('name:{1}, age{0}'.format(10,'ㅋㅋ'))
print('{:3}의 제곱근은 {:.7}'.format(2,2**0.5))
print('name:{n}, age{a}'.format_map({'n':'이휴','a':11}))
# 튜플 생성
t= () #공튜플
t=(1,) # 항목이 하나일 때는 반드시 , 콤마 사용
t=(1,2,3)
print(t,type(t))
# sequence 지원연산
#인덱싱
print(t[-3],t[-2],t[-1],t[0],t[1],t[2])
# 슬라이싱
print(t[1:3])
print(t[::-1])
# 반복
print(t*2)
print(t+(4,))
print(len(t))
print(4 not in t)
# tuple은 immutable 이다
# t[0]=100
# 여러개 값의 대입
x,y,z = 10,20,30
print(x, y, z)
# swap
x, y=10,20
x,y=y,x
print(x,' ',y)
# 객체함수: 많지 않다
t= (20,30,10,20)
print(t.index(20))
print(t.count(20))
#변환
t=(1,2,3,3)
print(t)
# tuple -> set
s = set(t)
print(s, type(s))
# tuple -> list
l = list(t)
print(l,type(l))
반응형
'IT 공부 > Python' 카테고리의 다른 글
Python 크롤링 연습 (0) | 2019.06.18 |
---|---|
Python 클래스(1) 클래스, 인스턴스 메서드/ 멤버, 인스턴스 변 (0) | 2019.06.17 |
Python 파일입출력 예제 (0) | 2019.06.17 |
Python 모듈, import (0) | 2019.06.17 |
Python 기초 (0) | 2019.06.12 |