leejhstory
if 문 / LIST(배열) / Random함수 본문
if 명령어 / 홀,짝 구하기
파이썬에서는 입력함수인 input()이고
정수형을 입력하려면 int.input()으로 형변환을 시켜줘야한다.
a = int(input(": "))
if a%2 == 0:
print ( "{} is even number".format(a))
else:
print ("{} is odd number".format(a))
or / and 연산자
print (12 or 15) # C언어와다르게 앞의 것먼저 판단한다.(앞의 수를 출력)
print (15 and 13) # 앞뒤를 같이 보고 판단한다.(뒤의 수를 출력)
~연산자 (비트 바전)
print(~5)
0101
1010
-8 2 =-6
2개의 정수를 입력 받아 비교
X, Y = map(int, input("").split())
if X == Y:
print("{}={}".format(X, Y))
else:
if X > Y:
print("{}>{}".format(X,Y))
else:
print("{}<{}".format(X,Y))
비트연산자 OR
print(5|3)
=> 7
비트연산자 XOR
print(10^3)
=> 9
AND / OR / NOT
def main():
#and
print("{} and {} = {}".format(True, True, True and True))
print("{} and {} = {}".format(True, False, True and False))
print("{} and {} = {}".format(False, True, False and True))
print("{} and {} = {}".format(False, False, False and False))
#or
print("{} or {} = {}".format(True, True, True or True))
print("{} or {} = {}".format(True, False, True or False))
print("{} or {} = {}".format(False, True, False or True))
print("{} or {} = {}".format(False, False, False or False))
#not
print("not {} => {}".format(True, not(True)))
print("not {} => {}".format(False, not (False)))
if __name__ == "__main__":
main()
리스트에 있는 값 확인
a = [1,2,3,4]
for k in range(1,10):
if k in a:
print ("리스트에 있습니다.")
else:
print ("리스트에 없습니다.")
콜 바이 벨류(call by value) 는 값을 복사해서 넘겨주는 방식
콜 바이 레퍼런스(call by reference)는 주소값을 넘겨주는 방식
Python에서는
>>> a=3
>>> b=4
>>> a is b
False
>>> b=3
>>> a is b
True
a 와 b가 동일한 3을 가르키고 있는 것이다. (3이 들어있는 방을 가리키고있다)
메모리에서 3을 가리키고 있는 변수들의 개수를 출력하는 함수
import sys
a=3
b=3
c=3
sys.getrefcount(3)
166
d=3
sys.getrefcount(3)
167
e=3
sys.getrefcount(3)
168
----------------------------------------------------------------------------------------------------------
LIST
1. 값의 나열
2. 순서가 존재
3. 0부터 시작하는 인덱스
4. 슬라이싱(slicing)
5. 리스트의 수정, 변경과 삭제
6. 관련함수
a.sort() 아스키값으로 문자 정렬(문자열이면 제일 앞 문자 아스키값)
a=['a','kitri','b','1']
a.sort()
print(a)
['1', 'a', 'b', 'kitri']
아스키 값순으로 문자열이 정리된다.
for문을 list 하기
n = [a for a in range(1,10)]
print(n)
[1, 2, 3, 4, 5, 6, 7, 8, 9]
하나씩 건너뛰어서 출력하기
n = [a for a in range(1,10,2)]
print(n)
[1, 3, 5, 7, 9]
Python에서 stack 용어
push : append
pop : pop
L=[1,2,3,4,7,10]
L.append(10)
print(L)
L.pop(4)
print(L)
[1, 2, 3, 4, 7, 10, 10] : 10을 append 해서 넣어 줬다.
[1, 2, 3, 4, 10, 10] : 4를 pop 하여 스택에서 빼내었다.
리스트 내 삭제(del)
num = [1,2,3,5]
del num[2]
print(num)
num = ['a','b','c','d']
#print(num[1:3])
#del num[1]
num[1:3]=[]
print(num)
list 관련함수
- append : 데이터 추가
- insert(삽입할 위치, 삽일할 데이터) : append는 제일뒤에 추가를 하지만 insert는 원하는 위치에 데이터를 추가할 수 있다.
a=['c','d','g','1']
a.insert(1,'Z')
print(a)
['c', 'Z', 'd', 'g', '1']
a=[10,20,100,-10]
a.insert(-3,'Z')
print(a)
[10, 'Z', 20, 100, -10]
음수 인덱스 값을 넣으면 -1를 더한 위치에 삽입이 된다.
- extend : append는 list가 추가가 되지만 extend는 리스트 안에 index값으로 추가가 된다.
L=[1,2,3,4]
L.append([5,6,7])
print(L)
L=[1,2,3,4]
L.extend([5,6,7])
print(L)
[1, 2, 3, 4, [5, 6, 7]]
[1, 2, 3, 4, 5, 6, 7]
L=[1,2,3,4]
L.append([5,6,7])
print(L[4])
[5, 6, 7]
2차원 배열
L=[1,2,3,4]
L.append([5,6,7])
print(L[4][1])
6
- index : 위치확인 함수(인덱스 '0'부터 시작하여 값을 찾고 위치 반환)
L=[1,2,3,1,2,4]
print(L.index(2))
1
첫 번째 있는 '2'의 인덱스 값은 1이다.
2 부터 시작하여 element가 나오면 위치반환(햇갈림)
L=[1,2,3,1,2,4]
print(L.index(4,2))
5
L.index(앞의 값이 찾을 대상, 값의 인덱스값)
인덱스에 없는 값을 적으면 -1이 출려된다.(에러가 뜸)
- count : 특정 요소의 수를 확인
- pop : 리스트의 맨 마지막 요소 삭제
- remove : 리스트에서 첫 번쨰로 나오는 target을 삭제하는 함수
listName.remove(Target)
- sort : 오름차순으로 정렬
L=[111,20,31,14,15]
L.sort()
print(L)
[14, 15, 20, 31, 111]
내림차순 정렬
L=[111,20,31,14,15]
L.sort(reverse=True)
print(L)
[111, 31, 20, 15, 14]
- reverse : 거꾸로 출력
L=[111,20,31,14,15]
L.reverse()
print(L)
[15, 14, 31, 20, 111]
- del
insert : listName.insert(index, value)
RANDOM 함수
import random
numBer = [] # empty list
for i in range(0,10):
numBer.append(random.randint(54,2349))
TargetNum = int(input(": "))
if TargetNum in numBer:
print("Exist ... !!!")
else:
print("Not Exist ... !!!")
54~2349 사이의 랜덤값을 입력
입력한값이 랜덤값과 같으면/다르면 출력
import random
for i in range(2):
print(random.randint(3,4))
random.shuffle(시퀀스데이터(sequence)) : 입력받은 시퀀스 객체를 섞는다.
import random
nList = [5,2,12,9]
random.shuffle(nList)
print(nList)
[9, 12, 2, 5]
numpy 모듈 : 행렬 풀기 쉽게 해주는 모듈
import random
L = random.sample(m,10) # 10개만 중복없이 뽑는다.
로또 번호 생성(1~45중 6개 입력,보너스 1자리)
리스트, sort로 오른차순 정렬, 랜덤 몇번할지 선택(중복x), 선택하는 횟수 및 선택번호 입력
-1을 입력시 다시입력, 몇등인지(랜덤,선택)