Programming/Python 기초

[Python 기초]파이썬 시작하기_Day 2(배열, 리스트, 연산, 제어문)

Yuja_k 2021. 4. 17. 23:44
728x90
반응형
SMALL

지난 포스팅에 이어 파이썬 초급 기초에 대하여 알아보도록 하겠습니다.

소수점 나타내기 round
print(round(3.145, 2))                         # 소수점 두자리까지 반올림/버림
print(round(3.14, 2))

배열
str = 'Apple'
print(str[4])

str = "무궁화꽃이피었습니다"
print(str[4])

str = "무궁화꽃이피었습니다"
print(str[-2])                          # 끝에서 2번째 (only in Python)

print(str[2:5])                         # 2는 가져올곳의 시작 : 뒤는 5번 앞까지
										# 인덱스 번호 2번부터 시작해서 5-2개 (3개)를 가져온다

str = "무궁화꽃이피었습니다"
print(str[:5])                          # 처음부터 5개 출력
print(str[5:])                          # 5번부터 끝까지 출력

print(str)                              # 전체 출력
print(str[:])                           # 전체 출력

문자열 대입 (컴파일 에러)
str = 'Apple'
a = str[0]                                      # A 출력
print(a)

b = str[ :2]
print(b)                                        # Ap 출력

Error

str [0]='B'                                                            # B는 글자 (문법 허용 X) => 문자열은 대입되는 순간부터 상수화. 즉, 대입을 못 받는다.

 

c = 'B' + str[1:]                               # 배열을 지정해서 대입
print(c)

값을 대입하는 3가지 방법 (%, {자릿수} , s =")

1. %를 사용

print('호%d 랑%s 이' % (10, '집'))
print('호%d 랑이' % 10)                          # 짝이 1개일때는 ()의 생략이 가능

2. {}를 사용 

{0번째: 10}{1번째: 호랑이}

print('무궁화{0}꽃이{1} 피었습니다'.format(10, '호랑이'))
print('%s 집에 %d가고 싶다' % ('나중에', 82))
print('{0} {1}자고 싶다'.format('지금', 82))

3. 함수="사용

s = '무궁화{0} 꽃이 {1}피었습니다'
print(s)                                       # {} 포함한 결과값
s.format(10, '호랑이')
print(s)                                       # 무궁화{0} 꽃이 {1}피었습니다 와 같은 결과값
t = s.format(10, '호랑이')                      # 함수를 이용한 변경
print(t)
s = s.format(10, '호랑이')                      # s 자체를 변경
print(s)

워드 카운트 (문자열의 길이와 개수, 인덱스 번호)
s = '무궁화꽃이피었습니다'
print(len(s))                                       # 문자열의 갯수

s = '무궁화꽃이무궁회피었무궁화습니다무궁화'
print(s.count('무궁화'))                              # 찾고자는 문자열의 갯수
print('무궁화꽃이무궁회피었무궁화습니다무궁화'.count('무궁화'))  # 직접 대입도 가능

s = '무궁화꽃이꽃이피었습니다'
print(s.find('피았'))                           
# 찾고자하는 문자열의 인덱스(번째수) 번호 / find 검색 실패 경우 항상 -1 return

문자열 출력 결과 대소문자 + 대치
s = 'Apple'                                     # 문자열을 관리하는 객체 생성
t = s + 'Orange'
s = s + 'Banana'
print(t, s)

print(s.lower())                                # 출력 결과를 소문자로
print(s)                                        # s 자체는 변경X

t = s.lower()                                   # 원본데이터는 변경시키지 않는 것이 원친 return 값 으로
print(t)

print(s.upper())                               # 출력 결과를 대문자로
print(s.replace('Banana', 'Orange'))           # 바나나 -> 오렌지
print(s)                                       # s 값이 변경이 안됬다는것은 대치결과를 return 값으로 받아준것

print(s.replace('banana', 'Orange'))           # 대소문자 구분하여 찾아야한다

list 크기, 관리, 분리
s = '무궁화 꽃이 피었습니다'
print(s.split())                              # 스페이스를 기준값으로 글자를 분리
# ['무궁화', '꽃이', '피었습니다'] -> 대괄호 list type(1개 이상의 결과값)
t = s.split()
print(t)                                      # s 자체의 변경 X

print(len(t))                                 # 배열의 크기 리스트의 크기

print(t[0], t[1]*3, t[2])                     # 문자열 자체가 배열로 되어있기떄문에 배열로 관리 + 반복횟수 출력

s = '무궁화:꽃:이:피었:습:니다'
print(s.split(':'))                           # default 는 스페이스며 :를대상으로 구분 (특글자 중심으로 분리)

산술 연산
print(16 + 3)
print(16 - 3)
print(16 * 3)
print(16 / 3)  # 몫
print(16//3)   # 몫 (정수)
print(16 % 3)
print(16 ** 3)

관계 (비교) 연산
print(3 > 2)
print(3 < 2)
print(3 >= 3)
print(3 <= 3)
print(3 == 3)
print(3 != 3)

논리 연산

# AND Java && 거짓이 하나라도 있으면 무조건 거짓

print("-----------")
print(False and False)
print(False and True)
print(True and False)
print(True and True)
# OR Java || 참이 하나라도 있으면 무조건 참
print("-----------")
print(False or False)
print(False or True)
print(True or False)
print(True or True)
# 부정 연산 Java ! 안에있는 결과를 변경시키지 않고 사용하려는때 사용
print("-----------")
print(not(3 > 2))

print(3 + 2 > 4 and 6 < 2 * 4)                  # 해석이 항상 산술 연산 부처
print(5 > 4 and 6 < 8)                          # 산술이 먼저 일어나기에 위의 문제와 동격
print(True and True)

print(((3 + 2) > 4) and (6 < (2 * 4)))          # 위의 모든 출력이 이러한 논리

랜덤 데이터 random과 randint (모사 데이터; 사물 레이션)

from random import* -> random number로부터 제공되는 random 모듈을 사용 

(randint, rnadom, uniform, randrange)

print(random())                                 # 0.0부터 1.0 사이의 값을 랜덤하게 출력
# 3 <= x <= 5 -> 3과 5를 포함
print(randint(3, 5))                            # 3-5 사이의 수를 랜덤 출력
print(randint(10, 100))                         # 10 -100 사이의 수를 랜덤 출력

 - 숫자 2부터 시작해서 20 사이에 있는 숫자를 3씩 증가를 했을 때

print(randrange(2, 20, 3))                      # 2 5 8 11 14 17 20 중 한개를 랜덤하게 뽑아준다

압력 값 (= java print scanner)
a = input('입력하세요:')                          # 숫자를 입력 받기를 원할떄
print(a, type(a))                              
print('----------------')					   # string -> int 로 출력하는 3가지 방법

1. 

print(int(a)*int(a))

2. 

print(int(a)**2)

3. 

a = int (input('입력: '))
print(type(a), a**2)
제어문 (if, while)

1. if 제어문

if (제어문)에 열고 닫아도 되지만 정석은 아니다. () 생략이 정석!

if 3 > 2:                                   # 2. 제어문에 끝에는 :이 붙는다
    print(1)                                    # 3. 조건이 만족할때의 실행 문장은 tab 처리 (하지않을경우 에러 )
    print('----------------')

if 3 > 4:
    print(1)
else:
    print(2)

if 3 > 4:
    print(1)
else:
    print(2)
    print(3)                                    # 위와의 구분이 없으면 enter 를 3번정도 두고 거리를 둔다 if else 상관없이 출력

if 3 > 4:
    print(1)
else:
    print(2)
	print(3) 									# else 문에 들어가 있는 출력값으로 뜬다

2. while 제어문

a = 0
while a < 10:
    a += 1
    print(a)
    print('호랑이')

a = 0
while a < 10:
    a += 1
    if a == 3:
        continue
    if a == 6:
        break
        print(a)
    print('집')

다음 포스팅에서는 이번 포스팅과 연관된 간단한 예제를 풀어보도록 하겠습니다.

728x90
반응형
LIST