728x90

맥에서 파이썬 사용을 하려고 vscode for mac 을 다운로드 받아서 압축을 푸니까 다운로드 폴더에 visual studio code 파일이 생성된다.

그곳에서 파일 실행을 하니까 실행은 되는데 update 를 하려고 하면 안된다는 에러 메시지가 발생한다.

원인은 Applications folder 로 파일을 옮기지 않아서 그런 것이다.

Move Code out of Downloads and into the Applications folder.

'파이썬 > Python 환경설정' 카테고리의 다른 글

[vscode] python extension loading 에러  (0) 2021.06.22
pip install pandas  (0) 2021.05.11
파이썬 가상환경 venv 사용하기  (0) 2021.05.06
VS code 언어모드 변경  (0) 2021.05.05
VSCode 의 Task 설정  (0) 2021.05.05
블로그 이미지

Link2Me

,
728x90

 

 

 

'파이썬 > Python 환경설정' 카테고리의 다른 글

[vscode] python extension loading 에러  (0) 2021.06.22
pip install pandas  (0) 2021.05.11
파이썬 가상환경 venv 사용하기  (0) 2021.05.06
vscode for mac update issue  (0) 2021.05.06
VSCode 의 Task 설정  (0) 2021.05.05
블로그 이미지

Link2Me

,
728x90

디버깅 (F5) 이나 디버깅 없이 실행 (Ctrl + F5) 로 작성된 코드를 실행할 수도 있지만,
좀 더 편하게, 입맛에 맞게, 셋팅을 자동으로 처리하여 프로그램을 실행시켜 보려면 tasks.json 을 만들어서 실행하는 것이 편하다.
tasks.json 만드는 법이다.

 

 

 

 

 

기본 생성된 tasks.json 내용을 지우고 아래 내용을 복사하여 붙여넣기 한다.

 

{

    // See https://go.microsoft.com/fwlink/?LinkId=733558

    // for the documentation about the tasks.json format

    "version": "2.0.0",

    "tasks": [

        {

            "label": "Project Label",

            "type": "shell",

            "command": "python",

            "args": [

                "${file}"

            ],

            "presentation": {

                "reveal": "always",

                "panel": "new"

            },

            "options": {

                "env": {

                    "PYTHONIOENCODING": "UTF-8"

                }

            },

            "group": {

                "kind": "build",

                "isDefault": true

            }

        }

    ]

}

 

 

해당 파일이 열려 있는 상태에서 
단축키 Ctrl + Shift + B  (⌘ + ⇧ + B) 를 눌러보면 프로그램 실행결과를 확인 할 수 있다.

'파이썬 > Python 환경설정' 카테고리의 다른 글

[vscode] python extension loading 에러  (0) 2021.06.22
pip install pandas  (0) 2021.05.11
파이썬 가상환경 venv 사용하기  (0) 2021.05.06
vscode for mac update issue  (0) 2021.05.06
VS code 언어모드 변경  (0) 2021.05.05
블로그 이미지

Link2Me

,
728x90

Java 문법에 없는 독특한 문법인가보다

 

리스트 표현식

[ ( 변수를 활용한 값 ) for 변수 in 리스트 ]

※ 리스트 대신 입력 시퀀스 라고 하기도 한다.

# list comprehension
array = []
for i in range(0,20,2):
    array.append(i * i)

print(array)

# 위의 코드 3줄을 아래 한줄로 대체할 수 있다.
array =[i * i for i in range(0,20,2)]
print(array)

 

리스트 표현식에서 if 조건문 사용하기

#예제 1
a = [i for i in range(10) if i % 2 == 0] 
print(a)

#예제 2
oldlist = [1, 2, 'A', False, 3]
newlist = [i*i for i in oldlist if type(i)==int]
print(newlist)
# 출력: [1, 4, 9]

 

Set Comprehension

Set Comprehension은 입력 Sequence로부터 지정된 표현식에 따라 새로운 Set 컬렉션을 빌드하는 것으로, 아래와 같은 문법을 갖는다. List Comprehension과 거의 비슷하지만, 결과가 Set {...}으로 리턴된다는 점이 다르다.

Set은 요소의 순서를 보장하지 않으므로, 순서가 랜덤하게 바뀐 결과를 출력하게 된다.

oldlist = [1, 1, 2, 3, 3, 4]
newlist = {i*i for i in oldlist}
print(newlist)
# 출력 : {16, 1, 4, 9}

 

1 ~ 100 사이에 있는 숫자 중 2진수로 변환했을 때 0이 하나만 포함된 숫자를 찾고, 그 숫자들의 합을 구하는 코드를 만드세요.

output = 0
for i in range(1,101):
    if "{:b}".format(i).count("0") == 1:
        print("{} : {:b}".format(i,i))
        output += i
print("합계 : {}".format(output))

위 코드로 구현할 것을 list comprehension 으로 변경해보자.

output = [i for i in range(1,101) if "{:b}".format(i).count("0") == 1]
# print(output)
for i in output:
    print("{} : {}".format(i, "{:b}".format(i)))
print("합계 : {}".format(sum(output)))
블로그 이미지

Link2Me

,
728x90

일회용 함수 : 제너레이터

리스트 뒤집기 : reversed()

현재 인덱스가 몇 번째인지 확인하기 : enumerate()

딕셔너리로 쉽게 반복문 작성하기 : items()

 

a = [1,2,3,4,5]
reversed_a = reversed(a)
print(list(reversed_a))
print(list(reversed_a))

# 1회용 함수 이므로 변수에 담지 말고 반복문을 실행하라.
# for i in reversed(리스트):
for i in reversed(a):
    print(i, end=" ")

 

a = [173, 203, 43, 32, 87]
print(list(enumerate(a)))

# for i, element in enumerate(리스트):
for (i, element) in enumerate(a):
    print("{} 번째 요소는 {} 입니다.".format(i,element))

# tuple 은 괄호를 지워도 된다.
# 1회용 함수 이므로 변수에 담아서 실행하지 말라.

 

keys() - 사전 키들을 리턴 (dict_keys)
values() - 사전 값들을 리턴 (dict_values)
items() - 사전 데이터(키와 값을 쌍)을 리턴 (dict_items)

 

for key, value in dictionary.items():

# for key, value in 딕셔너리.items():

# 반복문으로 딕셔너리의 키-값 쌍을 모두 출력하기
car = {"브랜드" : "BMW", "가격" : "7000"} 
for key, val in car.items():
	print("key : {}, value : {}".format(key,val)) 

# 딕셔너리의 키만 출력하기
for key in car.keys():
    print(key, end=' ')

print()
# 딕셔너리의 값만 출력하기
for value in car.values():
    print(value, end=' ')
블로그 이미지

Link2Me

,
728x90

모듈 : 특정 목적을 가진 함수, 자료의 모임

 

모듈 불러오기

- import 키워드를 이용해서 모듈 사용

import random

 

모듈 사용법 확인하기

- 모듈 속 사용하려는 함수/변수의 사용법 확인

- .(dot)을 쓴 후에 모듈 속 함수/변수 사용

- random.randrange(start, stop, step)

import random
print(random.randrange(0,11))
# 0 이상 11미만 수 중 임의의 출력 --> 1 ~ 10까지의 숫자 중 하나를 출력

math 모듈 : 수학 연산을 도와주는 모듈

# math.log(b,a) 출력
import math
print(math.log(5,2) + math.log(4/5, 2))

 

random : 랜덤한 숫자를 선택해 주는 함수들이 담긴 모듈

 

 

계산기 모듈 제작

- py 파일을 생성 후, 함수와 변수를 만든다.

- 다른 파일에서 만들어 둔 py 파일을 불러온다.

- 불러온 모듈 속 함수, 변수를 활용한다.

cal.py 모듈은 계산기 기능이 담긴 모듈입니다. 
이 안에는 plus() 와 minus() 함수가 있고, 모델명이 담긴 변수 modelName이 있습니다. 
오른쪽 실습에서 직접 이 cal.py를 만들어보고, main.py에서 이를 불러와봅시다.

# cal.py
def plus(a,b):
  return a+b
  
def minus(a,b):
  return a-b
  
modelName = "ELI-C2"

# main.py
import cal
var1 = cal.modelName
var2 = cal.plus(3, 4)
var3 = cal.minus(7, 2)

## 변수의 값을 확인하는 출력문입니다.
print(var1, var2, var3)
# cal.py
# 모듈 cal안에 함수들을 구현해주세요.
def plus(a,b):
  return a+b
  
def minus(a,b):
  return a-b
  
def times(a,b):
  return a*b
  
def divide(a,b):
  return a/b
  
def mod(a,b):
  return a%b
  
# main.py
import cal

var1 = cal.plus(3, 4)
var2 = cal.minus(7, 2)
var3 = cal.times(3, 5)
var4 = cal.divide(9, 3)
var5 = cal.mod(10, 3)

# 변수의 값을 확인하는 출력문입니다.
print('3 + 4 = ', var1)
print('7 - 2 = ', var2)
print('3 * 5 = ', var3)
print('9 / 3 = ', var4)
print('10 % 3 = ', var5)

 

Python 시간 모듈 사용 예제

Python time.localtime()

The localtime() function takes the number of seconds passed since epoch as an argument and returns struct_time in local time.

import time

result = time.localtime(1545925769)

print("result:", result)

print("\nyear:", result.tm_year)

print("tm_hour:", result.tm_hour)

# 변수 clock에 현재 시각이 “요일 월 일 시간 년” 순으로 나열된 문자열을 담아봅시다.
# 짝수 분에 제출 버튼을 눌러 엘리스가 문을 두들기도록 해봅시다.
# time.ctime() : “요일 월 일 시간 년” 순으로 현재 시간을 문자열로 반환해주는 함수

import time
clock = time.ctime()
print(clock)

minute = time.localtime().tm_min
print(minute)

if minute % 2 == 0:
  print("문을 두드려라")
else:
  print("문 두드리지 마")
파이썬에서 현재 시간을 얻는 datetime 모듈

from datetime import datetime
datetime.now()
datetime.datetime(2021, 4, 05, 11, 14, 16, 222169)

연도, 월, 일 및 시간을 포함한 날짜 시간 정보가 포함 된 datetime 객체를 반환한다.
string 형식을 선호한다면 strftime 메소드를 사용하여 datetime 오브젝트 인스턴스를 
인수에 정의 된 문자열 형식으로 변환 할 수 있다.

datetime.now().strftime('%Y-%m-%d %H:%M:%S')
# 결과 : '2021-04-05 11:14:25'

 

import math

print(math.log(5,2) + math.log(4/5, 2))

 

from urllib import request
target = request.urlopen("https://hanbit.co.kr")
content = target.read()
#print(content)
print(content[:200])

패키지

1. import를 이용해서 폴더를 불러온 후, 함수 실행

   import user.cal

   print(cal.plus(3,4))

2. from-import 사용

   함수/변수 사용시 .를 써주지 않아도 된다.

   from user.cal import plus

   print(plus(3,4))

 

user 패키지의 math 모듈에서 log 함수를 불러오려고 할 때, 알맞은 코드를 적어라.

from user.math import log

# from a import b를 이용해서 random의 randrange()를 불러와봅시다.
# import a를 이용해서 math 모듈을 불러와봅시다.
# 변수 var1에 randrange 함수를 이용해 1이상 10이하의 임의의 정수를 넣어봅시다.

from random import randrange
import math

var1 = randrange(1, 11)
var2 = math.log(5184, 72)

print(var1, var2)
# from-import를 이용해서 urllib패키지 안 request 모듈에서 
# urlopen 함수를 불러오는 코드를 작성해봅시다.
# 다음 주소를 urlopen하고, read() 한 다음, 
# 이를 utf-8으로 decode 한 결과를 변수 webpage에 넣어봅시다.

from urllib.request import urlopen

webpage = urlopen("https://en.wikipedia.org/wiki/Lorem_ipsum").read().decode("utf-8")
print(webpage)

로또번호 당첨확률

1. random 모듈을 import해봅시다.
2. 빈 리스트를 담은 변수 lotto를 만들어봅시다.
3. lotto의 길이가 6이 될 때까지 다음 과정을 수행합니다.
   - 1부터 45까지의 수 중 하나를 임의로 뽑습니다.
   - 만약 뽑은 수가 리스트 lotto에 없으면 lotto에 추가하고, 있으면 수를 다시 뽑습니다.
   - pass는 아무런 동작도 하지 않는 코드입니다.

     if조건 만족 후 아무런 코드도 없다면 오류를 일으키기 때문에 무의미한 pass를 넣습니다.
4. lotto를 정렬해줍니다.
5. lotto를 출력하여 우리가 뽑은 로또번호를 확인해봅시다.

import random

lotto = []

while len(lotto) < 6:
  num = random.randrange(1, 46)
  if num in lotto:
    pass
  else:
    lotto.append(num)
  lotto.sort()

print(lotto)
블로그 이미지

Link2Me

,
728x90

def 함수이름(매개변수):

   <수행할 명령>

   return 반환값

 

 

함수 안에서 일어난 일은 함수 밖에 영향을 끼치지 않는다.

 

 

전역변수 : 함수 외부에서 정의한 변수(어디서든지 사용할 수 있는 변수)

지역변수 : 함수 내부에서 정의한 변수 (for문, 함수 등...)

 

# 다음은 표준어로 "밥 먹었어요?"가 담긴 변수 greeting입니다.
greeting = "밥 먹었어요?"
 
# 이를 print로 출력하면 다음과 같습니다.
print("서울 :",greeting)
 
# 함수 busan을 선언하고, 그 안에 변수 greeting에 "밥 뭇나?"를 넣어봅시다.
def busan():
  greeting = "밥 뭇나?"
  print("부산 :",greeting)
 
# 함수 busan을 실행해보세요.
busan()
 
# 변수 greeting을 출력해보세요.
print(greeting)
 

 

 

#1. 대응 관계가 5개 있는 Dictionary를 만들고, 이를 변수 my_dict에 넣어봅시다.
my_dict = {1:"one"2:"two"3:"three"4:"four"5:"five"}
 
#2. 다음 두 메서드를 이용해서, Dictionary의 Key값들을 담은 변수 var1과 
# Value값들을 담은 변수 var2를 만들어봅시다.
var1 = my_dict.keys()
var2 = my_dict.values()
print(var1)
print(var2)

 

 

인자와 매개변수
•매개변수(parameter) : 함수를 정의할 때 넘겨받은 값을 관리하는 변수
•인자(argument) : 함수를 호출할 때 함수로 넘겨주는 자료

 

default parameter 사용 시 주의사항

- 디폴드 파라미터 뒤에 일반 파라미터가 위치할 수 없음.

  ex) def test(a, b=2, c=1)

      def test(a, b=2, c) 이건 에러 발생

#1.함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
#2.이 함수는 a와 b를 곱한 것을 반환합니다.
def solve(a, b):
  return a*b
 
#3.이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
var1 = solve(34)
 
#4. 이 함수에 숫자 3과 리스트 [‘Cham’]을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.
var2 = solve(3, ['Cham'])
 
print(var1)
print(var2)

 

return 만 존재하면, None 반환

return이 없는 경우, 기본적으로 함수 코드 블럭이 종료되면 종료로 간주. None 반환

return 옆에 값이나 수식이 있다면, 해당 값을 호출자에게 반환(전달)

 

최대값 구하는 함수

# 리스트 nums를 넣었을 때, 최댓값을 반환(return)하는 함수 our_max를 작성해봅시다.
def our_max(nums):
  maxNum = 0
  for i in nums:
    if i > maxNum:
      maxNum = i
  return maxNum
 
print(our_max([12109370992785]))
 

 

네버랜드 : 환상의 나라로!

# 대기시간이 담긴 리스트가 인자로 주어지면 조건을 만족하도록
# 타야하는 대기시간의 순서가 담긴 리스트를 반환하는 함수 neverland()를 작성해봅시다.
# 대기시간이 가장 짧은 놀이기구부터 오름차순으로 놀이기구를 탑니다.
# 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구이기에 
# 대기시간에 상관없이 가장 먼저 탑니다.
 
def neverland(q):
  temp = q.pop(2)
  q.sort()
  q.insert(0,temp)
  return q
 
 
# 확인을 위한 코드입니다.
# 대기시간이 담긴 리스트 queue를 자유롭게 수정해보세요!
queue = [301020504060]
print(neverland(queue))

 

#1.함수 solve()를 만들어봅시다. 이 함수의 매개변수는 a와 b입니다.
#2.이 함수는 a와 b를 곱한 것을 반환합니다.
def solve(a, b):
  return a*b
 
#3.이 함수에 숫자 3과 4를 인자로 넣어서 반환되는 값을 변수 var1에 넣어봅시다.
var1 = solve(34)
 
#4. 이 함수에 숫자 3과 리스트 [‘Cham’]을 인자로 넣어서 반환되는 값을 변수 var2에 넣어봅시다.
var2 = solve(3, ['Cham'])
 
print(var1)
print(var2)

 

가변 매개변수

# 가변 매개변수는 함수에 1개만 올 수 있다.
# 가변 메개변수는 *args 와 같이 앞에 *를 붙인다.
# 일반 매개변수, 가변 매개변수 순서로 와야 한다.
def print_n_times(value, *args, n=3):
    for i in range(n):
        print(value)
        print(args)
 
# 가변 매개변수와 혼용하여 사용시에는 기본 매개변수는 변수명과 값을 직접 적어줘야 한다.
print_n_times("hello"1,2,3,4,5, n=5)
 
def print_n_times(value, n=3):
    for i in range(n):
        print(value)
        
# 가변 매개변수가 없을 때는 아래와 같이 하면 된다.
print_n_times("hello"5)

 

실행결과

hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)
hello
(1, 2, 3, 4, 5)


hello
hello
hello
hello
hello

 

리스트 평탄화 예제

def flatten(data):
    output = []
    for item in data:
        if type(item)  == list:
            output += flatten(item)
        else:
            output += [item]
    return output
 
example = [[1,2,3], [4,[5,6]], 7, [8,9]]
print("원본:",example)
print("변환:", flatten(example))
 

 

블로그 이미지

Link2Me

,
728x90

input()함수로 입력받은 값은 모두 문자열로 인식된다.

 

a = '345'

b = int('345')

print(a,b)

print(type(a))

print(type(b))

 

# 평균값 구하기
def mean(nums):
    _sum = 0
    for i in nums:
        _sum += i
    return _sum / len(nums)
 
print(mean([1,2,3,4,5,5,5,5]))
 
def mean2(nums):
    # 내장함수로 대체
    return sum(nums) / len(nums)
 
print(mean([1,2,3,4,5,5,5,5]))
 
 
# 소수 판별 : 1과 자기 자신으로만 나눠지는 수
# 입력 : 양의 정수 1개
# 출력 : boolean (소수 : True, 합성수: False)
 
def is_prime(num):
    for i in range(2,num):
        if num % i == 0# 나눠 떨어지면
            return False
    return True
 
print(is_prime(100))
print(is_prime(17))
print(is_prime(7))
 
# 입력 : 양의 정수 1개
# 출력 : 2 - 해당 숫자 사이의 소수의 개수
def num_prime(num):
    count = 0
    for i in range(2, num + 1):
        if is_prime(i):
            count += 1
    return count
 
print(num_prime(100))
print(num_prime(500))
 
블로그 이미지

Link2Me

,
728x90

섭씨온도 → 화씨온도

F = C * (9/5) + 32

 

ㅇ 화씨온도(℉, Fahrenheit)
  - 미국에서 많이 사용하는 온도체계
  - 영하 17.7℃에서 37.7℃를 백등분

ㅇ 섭씨온도(℃, Celsius)
  - 전 세계에서 널리 쓰이는 온도 단위
  - 물의 어는점을 0도, 끓는 점을 100도로 정해 백등분

 

화씨온도 → 섭씨온도
C = (F - 32) * 5/9

블로그 이미지

Link2Me

,
728x90

슬라이싱(slicing) : 연속적인 객체들에(예: 리스트, 튜플, 문자열) 범위를 지정해 선택해서 객체들을 가져오는 방법 및 표기법을 의미
파이썬 리스트에 있는 데이터에 하나씩 접근할 때는 인덱싱을 사용한다.
리스트에 있는 여러 개의 데이터에 동시에 접근하려면 파이썬 슬라이싱이다.
슬라이싱을 하면 새로운 객체를 생성하게 된다.

a = [1,2,3,4,5]

print(a[0:2])

블로그 이미지

Link2Me

,
728x90

모듈(module) : 각종 변수, 함수, 클래스를 담고 있는 파일이고, 패키지(package)는 여러 모듈을 묶는 것이다.
파이썬을 설치할 때 다양한 모듈과 패키지가 기본으로 설치된다.
패키지를 만들어서 사용할 수도 있고, 다른 사람이 만든 패키지를 설치해서 쓸 수도 있다.



# 모듈 만들기
# 1. animal 폴더를 만든다.
# 2. animal 폴더에 cat.py 라는 파일을 만들고, 클래스를 정의한다.
# 3. animal 폴더에 dog.py 라는 파일을 만들고, 클래스를 정의한다.
# 4. animal 폴더에 __init__.py 라는 파일을 만들고, 현재 폴더에 있는 파일의 모듈 가져오기를 한다.

# cat.py 파일
class Cat:
    def hi(self):
        print("야옹")

# dog.py 파일

class Dog:
    def hi(self):
        print("멍멍")

# __init__.py 파일
from .cat import Cat  # . : 이 폴더에 있는 cat.py 라는 파일에서 Cat 이라는 클래스를 가져와라.
from .dog import Dog  # . : 이 폴더에 있는 dog.py 라는 파일에서 Dog 이라는 클래스를 가져와라.
        



# 모듈 가져오기 : import moduleName1, moduelName2
from animal import dog # animal 패키지에서 dog 라는 모듈을 불러와.
from animal import cat # animal 패키지에서 cat 이라는 모듈을 불러와.

d = dog.Dog()  # instance
d.hi()

c = cat.Cat()
c.hi()

from animal import *  # animal 패키지가 갖고 있는 모듈을 모두 불러와.
d = Dog()
d.hi()

c = Cat()
c.hi()

import math
print(math.pi)
print(math.sqrt(4.0))  # math 모듈의 제곱근 함수 sqrt
print(math.sqrt(2.0))

#print(math.sqrt(2.0, 2)) # 인수가 1개 이어야 하는데 일부러 2개를 입력하면...

# from import로 모듈의 일부만 가져오기
from math import pi  # math 모듈에서 pi 함수만 가져와라.
print(pi)

from math import sqrt  # math 모듈에서 sqrt 함수만 가져와라.
print(sqrt(2.0))

from math import sqrt as s  # math 모듈에서 sqrt 함수를 가져오면서 이름을 s로 지정해라.
print(s(3.0))

from math import *  # math 모듈의 모든 변수, 함수, 클래스를 가져와라.
print(pi)
print(sqrt(5.0))


import urllib.request  # urllib 패키지의 request 모듈 가져와라.
urllib.request.request = urllib.request.urlopen("http://www.google.co.kr")
print(urllib.request.request.status)


블로그 이미지

Link2Me

,
728x90

Class 에 대한 개념을 제대로 잡고 싶다면 "자바의 정석" 저자 남궁성의 유투브 강좌 6장, 7장을 들으면 된다.

https://www.youtube.com/watch?v=CXuA31XcBZ0&t=25s

 

객체 지향의 개념은 여러 언어에서 다 사용하고 있으므로, 파이썬에서 어떤 문법 구조로 사용하는지만 파악하면 된다.

필드 : 객체가 가지고 있는 성질 = 객체가 가지고 있는 변수

메서드 : 객체가 할 수 있는 행동 = 객체가 할 수 있는 함수

 

인스턴스 이름 = 클래스 이름()

    - 인스턴스.변수

    - 인스턴스.메소드

 

인스턴스 속성 : 객체마다 다른 값을 가지는 속성

클래스 속성 : 모든 객체가 공유하는 속성

비공개 속성 : 클래스 안에서만 사용하는 속성 (ex, self.__age)

 
 
# 클래스를 작성하기 위해서는 class 키워드 사용하여 새로운 클래스를 작성한다.
class Person:
    def __init__(self, name, age):  # 생성자를 객체 초기화할 때 사용된다.
        self.name = name
        self.age = age
 
    def __del__(self):
        print("소멸자 호출")
 
    # 객체를 출력할 때 호출되는 메소드
    def __str__(self):
        return f"[이름 : {self.name}, 나이 : {self.age}]"
 
    def say_hello(self):
        print("안녕, 나는 " + self.name + "이야.")
 
    def say_hi(self, to_name):
        print("안녕! " + to_name + ", 나는 " + self.name + "이야.")
 
    def introduce(self):
        print("내 이름은 " + self.name + " 그리고 나이는 " + str(self.age) + "이야.")
 
# class 상속
class Police(Person):
    def arrest(self, to_arrest):
        print("넌 체포됐다, " + to_arrest)
 
 
class Programmer(Person):
    def program(self, to_program):
        print("이번엔 이걸 만들어야겠다 : " + to_program)
 
    def introduce(self):  # 오버라이딩
        print("내 성명은 " + self.name + " 이고, 나이는 " + str(self.age) + "이야.")
 
 
 
= Person("홍길동"25)
p.say_hello()
p.say_hi("소영")
print(p)
 
p1 = Police("이순신"32)
p1.introduce()
 
p2 = Programmer("강감찬"27)
p2.introduce()
p2.program("차계부")
 

 

 

다형성

# 다형성
 
class Animal:
  legs = 0
  def walk(self):
    return ""
    
class Dog(Animal):
  legs = 4
  def walk(self):
    return "살랑살랑"
    
class Human(Animal):
  legs = 2
  def walk(self):
    return "뚜벅뚜벅"
    
maltese = Dog()
gildong = Human()
 
print(maltese.walk())
print(gildong.walk())

 

파이썬 객체 적용
파이썬에서는 객체 단위로 정보를 관리한다. 그리고 그 객체는 다음과 같은 속성을 가지고 있다.
• 값(Value) : 객체에 담긴 내용
• 유형(Type) : 객체의 종류

 

# 리스트 [1, 2, 3]이 담긴 변수 nums를 선언
nums = [1,2,3]
 
# nums의 값, 유형을 출력
print(nums)
print(type(nums))
 
# 리스트의 .append() 메서드를 이용해서 숫자 4를 리스트 nums에 추가
nums.append(4)
print(nums)
 

 

한 객체의 메서드에서 그 객체의 필드를 참조할 땐 self를 이용해서 참조해야 한다.

self: 메서드라면 가져야하는 첫 번째 매개변수
Q : 왜 self가 필요할까?
A : self는 객체 자신을 의미하며, 메서드가 호출될 때 self 자리에 객체 자신을 인자에 넣는다.

 

# 클래스 Bbread(붕어빵)을 만들어봅시다.
# Bbread의 필드 taste를 생성하고, "밀가루"를 대입해봅시다.
# Bbread의 메서드 eat()를 생성해봅시다. 이 메서드는 taste, "맛이 나요!"를 출력합니다.
# taste의 값이 "밀가루"라면 "밀가루 맛이 나요!" 가 출력됩니다.
class Bbread:
  taste = "밀가루"
  def eat(self):
    print(self.taste, "맛이 나요!")
 
 
# 클래스 Bbread의 인스턴스 redBean과 choux를 만들어봅시다.
redBean = Bbread()
choux = Bbread()
 
 
# 객체 redBean의 필드 taste를 "팥"으로 바꿔줍시다
redBean.taste = "팥"
 
# 객체 choux의 필드 taste를 "슈크림"으로 바꿔줍시다
choux.taste ="슈크림"
 
# 객체 redBean의 메서드 eat()를 실행해봅시다
redBean.eat()
 
# 객체 choux의 메서드 eat()를 실행해봅시다
choux.eat()

 

블로그 이미지

Link2Me

,
728x90

Python 튜플 : 여러 자료를 함께 담을 수 있는 자료형

- 소괄호()로 묶어서 표현한다.

- 시퀀스 자료형으로 Index를 이용한 인덱싱, 슬라이싱이 가능하다.

- in 연산자로 Tuple 안에 원소 확인

- len()함수로 Tuple의 길이 확인

- + 연산자로 Tuple 과 Tuple을 연결

- * 연산자로 Tuple을 반복

- 자료 추가, 삭제, 변경 불가 ← 한번 만들어지면 고정

 

my_tuple = (123)
 
try:
    # 여기에 인덱싱을 이용해서 Tuple의 값을 변경해봅시다.
    my_tuple[2= 7
 
except TypeError:
    print("Tuple은 값을 변경할 수 없습니다.")
 
try:
    # 여기에 .append()를 이용해서 Tuple의 값을 추가해봅시다.
    my_tuple.append(9)
 
except AttributeError:
    print("Tuple은 값을 추가할 수 없습니다.")
 

 

# 인덱싱하기
tp1 = (12'a''b')
print(tp1[0])
print(tp1[3])
 
# tuple unpacking : 튜플의 값을 차례대로 변수에 대입
# 튜플은 괄호를 생략할 수 있다.
a, b, c, d = 10203040
print(a, b, c, d)
 
# a 와 b 를 교환하라.
= 4
= 7
print(a, b)
 
a, b = b, a  # swap
print(a, b)
 
몫, 나머지 = divmod(a, b)
print('몫 : {}'.format(몫))
print('나머지 : {}'.format(나머지))

 

 
# 숫자 1, 2, 3, 4, 5이 담긴 튜플 my_tuple을 하나 선언
my_tuple = (12345)
 
# my_tuple의 인덱스 2의 원소를 변수 var1에 넣어봅시다.
var1 = my_tuple[2]
 
# my_tuple의 인덱스 1, 2, 3의 원소를 슬라이싱하여 변수 var2에 넣어봅시다.
var2 = my_tuple[1:4]
 
# my_tuple의 길이를 변수 var3에 넣어봅시다.
var3 = len(my_tuple)
print(var1, var2, var3) # 3 (2, 3, 4) 5
블로그 이미지

Link2Me

,
728x90

파이썬(Phython)의 dictionary 는 Java 의 Hashmap 에 해당되는 기능이다.

 

dictionary

- 키와 값을 갖는 데이터 구조

- 키는 내부적으로 hash 값으로 저장

- 순서를 따지지 않음. 즉, 인덱스가 없음

 

dictionary type은 immutable한 키(key)와 mutable한 값(value)으로 맵핑되어 있는 순서가 없는 집합

x = dict() 또는 { } 로 선언한다.

print(x) 를 하면 { } 로 출력된다.

값은 중복될 수 있지만, 키가 중복되면 마지막 값으로 덮어쓰기된다.

순서가 없기 때문에 인덱스로는 접근할수 없고, 키로 접근 할 수 있다.

key는 변할 수 없는 자료형. ← 리스트는 안되고, 튜플은 된다.

 

리스트는 [index] 로 값을 확인하고,

딕셔너리는 [key] 로 값을 확인한다.

 

= {
  "name" : "홍길동",
  "age" : 25,
  0 : "Hello",
  1 : "How are you?"
}
 
print(x)
# 출력 결과는 {'name': '홍길동', 'age': 25, 0: 'Hello', 1: 'How are you?'}
 
print(x["name"])
print(x["age"])
 
# dictionary의 in은 키에 한해서 동작한다.
# age 이라는 key가 x에 들어 있나요?
print("age" in x) # True
 
# dictionary 에 있는 모든 키를 보여줘.
print(x.keys())
# 출력 결과 : dict_keys(['name', 'age', 0, 1])
 
# 반복문 for key in 딕셔너리:
for key in x:
  print("key: " + str(key) + ", value: " + str(x[key]))

 

 

항목 추가

= {
  "name" : "홍길동",
  "age" : 25,
  0 : "Hello",
  1 : "How are you?"
}
 
# 자료 추가하기 : mutable 한 객체이므로 키로 접근하여 값을 변경할 수 있다.
x["school"= "파이썬 강좌"
 
print(x)
# 출력결과 : {'name': '홍길동', 'age': 25, 0: 'Hello', 1: 'How are you?', 'school': '파이썬 강좌'}
 

 

# 1. 대응 관계가 5개 있는 Dictionary를 만들고, 이를 변수 my_dict에 넣어봅시다.
my_dict = {1:"one"2:"two"3:"three"4:"four"5:"five"}
 
# 2. 다음 두 메서드를 이용해서, Dictionary의 Key값들을 담은 
# 변수 var1과 Value값들을 담은 변수 var2를 만들어봅시다.
var1 = my_dict.keys()
var2 = my_dict.values()
print(var1)  # dict_keys([1, 2, 3, 4, 5])
print(var2)  # dict_values(['one', 'two', 'three', 'four', 'five'])
 

 

 

응용예제

# list
fruit = ["사과""사과""바나나""딸기""바나나""키위""복숭아""키위""키위"]
 
# dictionary 선언
= {}
 
for f in fruit:
    # f = "사과"
    if f in d: # "사과" 라는 key가 d 라는 dictionary에 들어 있어?
        d[f] = d[f] + 1  # 그럼 "사과" 갯수를 하나 올려줘.
    else : # "사과" 라는 key가 없으면,
        d[f] = 1 # 그걸 dictionary에 넣고 value = 1 로 만들어줘.
 
print(d)

 

update()

- 두 딕셔너리를 병합함

- 겹치는 키가 있다면 parameter로 전달되는 키 값이 overwrite 된다.

 

= {'a':1'b':2'c':3 }
= {'a':2'd':4'e':5 }
a.update(b)
print(a) # {'a': 2, 'b': 2, 'c': 3, 'd': 4, 'e': 5}

 

key 삭제

- del 키워드 사용

- pop 함수 이용

 

= 100
print(c)
del c
# print(c) # NameError: name 'c' is not defined
 
= {'a':1'b':2'c':3'd':4'e':5 }
a.pop('b')
del a['d']
print(a) # {'a': 1, 'c': 3, 'e': 5}
 
# clear() : 딕셔너리의 모든 값을 초기화
a.clear()
print(a)  # {}

 

 

in

- key값 존재 확인

value access

- dict[key]로 접근, 키가 없는 경우 에러 발생

- .get() 함수로 접근, 키가 없는 경우 None 반환

 

# 빈 Dictionary를 만들고, 이를 변수 my_dict에 넣어보자.
my_dict = {}
 
my_dict[1= "Integer"
my_dict['a'= "String"
my_dict[(123)] = "Tuple"
 
print(my_dict) # {1: 'Integer', 'a': 'String', (1, 2, 3): 'Tuple'}
 
# key값 존재 확인
print(1 in my_dict)
print((123in my_dict)
 
# value access
# dict[key]로 접근, 키가 없는 경우 에러 발생
# .get() 함수로 접근, 키가 없는 경우 None 반환
print(my_dict.get('a'))
print(my_dict.get((123)))
 
my_dict['c'= 3
print(my_dict)
# {1: 'Integer', 'a': 'String', (1, 2, 3): 'Tuple', 'c': 3}
 
try:
    # 여기에 [1, 2, 3] → "List"의 대응관계를 만들어 봅시다.
    my_dict[[123]] = "List"
except TypeError:
    print("List는 Dictionary의 Key가 될 수 없습니다.")

 

 

# 다음 대응관계가 담긴 Dictionary를 하나 만들고, 이를 변수 my_dict에 넣어보자.
# “사과” → “apple”
# “바나나” → “banana”
# “당근” → “carrot”
 
my_dict = {"사과":"apple","바나나":"banana""당근":"carrot" }
 
# my_dict에서 “사과”를 Key로 넣어 나온 Value를 변수 var1에 넣어보자
var1 = my_dict["사과"]
print(var1)
 
# my_dict에서 당근-carrot을 제거해 보자
# del 딕셔너리["키"]
del my_dict["당근"]
print(my_dict) # {'사과': 'apple', '바나나': 'banana'}
 
# my_dict에서 체리-cherry를 추가해 보자
my_dict["체리"= "cherry"
print(my_dict) # {'사과': 'apple', '바나나': 'banana', '체리': 'cherry'}
 
 

모든 keys, values 접근

- keys() : 키만 반환

- values() : 값만 반환

- items() : 키, 값의 튜플을 반환

= {'a':1'b':2'c':3}
print(a)
print(a.keys())   # dict_keys(['a', 'b', 'c'])
print(a.values()) # dict_values([1, 2, 3])
print(a.items())  # dict_items([('a', 1), ('b', 2), ('c', 3)])

 

리스트(list)로 변환할 수 있다.

= {'a':1'b':2'c':3}
print(a)
print(list(a.keys()))   # ['a', 'b', 'c']
print(list(a.values())) # [1, 2, 3]

 

 

for key, value in miniWord.items():

# Minionese와 한국어가 담긴 miniWord 딕셔너리를 만드세요.
miniWord = {
  "Bello":"안녕",
  "Poopaye":"잘가",
  "Tank_yu":"고마워",
  "Tulaliloo_ti_amo":"우린 너를 사랑해"
}
 
for key, value in miniWord.items():
  print(value)

 

 

'파이썬 > Python 기초' 카테고리의 다른 글

[파이썬 기초] 클래스(class)  (0) 2021.01.01
[파이썬기초] Tuple(튜플)  (0) 2021.01.01
[파이썬 기초] 반복문 for, while  (0) 2020.12.29
[파이썬 기초] 함수와 조건문  (0) 2020.12.29
[파이썬기초] List  (0) 2020.08.10
블로그 이미지

Link2Me

,
728x90

몫 연산자 //

나머지 연산자 %

제곱연산자 **

 

문자열은 + 연산자를 이용하면 이어붙일 수 있다.

 

파이썬에서의 for 문과 while 문에 대한 사용법이다.

for 변수 in 시퀀스:

  <수행할 명령>

 

for 반복자 in 반복할 수 있는 것:
  <수행할 명령>

 

for <요소 변수 이름> in 리스트:
  <수행할 명령>

 

리스트가 중첩되어 있다면?? 즉 list_of_list = [ [1,2,3], [4,5], [6,7,8,9] ]

for 반복문도 중첩한다.

for a in list_of_list:

    for b in a:

      print(b)

 

numbers = [1,2,3,4,5,6,7,8,9,10,99,800,72,55,102,103]

item = ["짝수","홀수"]
for number in numbers:
    print("{}는 {}입니다.".format(number, item[number % 2]))

range : 연속되는 숫자를 만들어 주는 시퀀스 자료형

range(start,end)  ← start 이상 end 미만. 즉 end는 포함되지 않음.

range(10) 은 range(0,10) 과 같은 의미이다.

range(2,4) 은 [2,3]

#for, while 예제

for i in range(10):
  print(i)
  print("철수: 안녕 영희야 뭐해?")
  print("영희: 안녕 철수야, 그냥... 있어")

a = [1]
for i in range(2,4):
    a.append(i)
print(a) # 결과 : [1,2,3]

# 19단 만들기
for i in range(1,20):
    print("19 *", i, "=", 19*i)

# 별 모양 출력
N = int(input())
for i in range(N):
  if i < 5:
    print('*' * (i+1))
  else:
    print('*' * (5))


# 커피전문점 커피 주문 총금액 자동계산 프로그램
n = int(input())
sum = 0
coffee = {'아메리카노':4100, '카페라떼':4600, '카라멜마끼아또':5100}

for i in range(n):
  coffee_name = input()
  sum += coffee[coffee_name]
  
print(sum)


# 코더랜드 F대학의 K교수 학점
#입력받은 값을 리스트로 저장하는 코드입니다. 수정하지 마세요.
# 리스트에는 다음과 같이 점수가 담겨있습니다.
# scores[0] -> "언어이해"
# scores[1] -> "추리논증"
# scores[2] -> "논술"

#이 아래에 코드를 작성하세요.
# 입력 예시 : 70 75 80 
# 입력 예시 : 95 48 90
scores = [int(i) for i in input().split()]
grade = "B+"

if scores[1] < 50:
  grade = "F"  # 추리논증 점수가 50점 이상이 아니면 F를 부여
else:
  min_score = min(scores)
  if min_score >= 75:
     grade = "A+"
  elif min_score >= 50:
     grade = "A"
     
print(grade)

 

array = [273,52,103,32,87]
for i, element in enumerate(array):
    print("{} : {}".format(i,element))

for i in range(len(array)):
    print("{} : {}".format(i,array[i]))

# 역순으로 출력
for i in reversed(array):
    print(i)

# 역순으로 출력
for i in reversed(range(0,10)):
    print(i)

 

while 문 : 조건으로 반복하는 방법

조건이 True이면 명령을 수행한다.

if문으로 조건을 걸어준 다음, break 실행(반복문을 탈출하는 역할)

 

# 조건은 bool 표현식

while 조건: 

  수행할 명령

i = 0
while i < 3:
  print(i) # 0
  print("철수: 안녕 영희야 뭐해?")
  print("영희: 안녕 철수야, 그냥... 왜?")
  i = i + 1
  
i = 1
ans = 0
while True: 
    print(i)
    if i == 5:
        print("i가 5에요!")
        break
    i = i + 1
print(ans)

별자리 출력 예제

for i in range(5):
  print('*' * (i+1))

평균 구하기

a = [100,90,80]
i = 0
sum = 0
while i < len(a):
  sum += a[i]
  i += 1
print(sum)
print(len(a))
print(sum/len(a))

 

반복문 내부에서만 사용할 수 있는 break 와 continue 라는 특수 키워드가 있다.

break 키워드는 반복문을 벗어날 때 사용하는 키워드이다.

'파이썬 > Python 기초' 카테고리의 다른 글

[파이썬기초] Tuple(튜플)  (0) 2021.01.01
[파이썬 기초] dictionary  (0) 2021.01.01
[파이썬 기초] 함수와 조건문  (0) 2020.12.29
[파이썬기초] List  (0) 2020.08.10
파이썬 기초  (0) 2020.08.08
블로그 이미지

Link2Me

,
728x90

파이썬은 같은 들여쓰기를 기준으로 구분을 한다.

# 정수를 문자열로 이어붙이기를 하려면 str 변환을 해주어야 한다.
print("너 몇살이니? " + str(4))
# 조건문 if 에 괄호를 사용하지 않는다.
x = 3
if x > 5:
  print("Hello")
elif x == 3:
  print("Bye")
else:
  print("Hi")

# 함수 정의 에제1
def chat():
  print("철수: 안녕? 너 몇살이니?")
  print("윤하: 나? 나는 25")

chat()

print("")

# 매개변수가 있는 함수 선언 예제
def chating(name1, name2, age):
  print("%s: 안녕? 넌 몇살이니?" % name1)
  print("%s: 나? 나는 %d" %(name2, age))

chating("민식","홍철", 30)

def dsum(a, b):
  result = a + b
  return result

d = dsum(1,2)
print(d)

# 매개변수를 받아서 조건문으로 분기 처리하는 함수 예제
def sayHello(name, age):
  if age < 10:
    print("안녕, " + name)
  elif age <= 20 and age >= 10:
    print("안녕하세요, " + name)
  else:
    print("안녕하십니까, " + name)

sayHello("선영", 20)
 

# 매개변수 기본값 지정
def profile(name, age=27, main_lang="Python"):
  print("이름 : \t나이 : \t주 사용 언어 : " \
         .format(name,age,main_lang))

profile("홍길동")
profile("강감찬")

# 가변인자 매개변수
def profiles(name,age, *language):
  print("이름 : \t나이 : \t".format(name,age),  end=" ")
  for lang in language:
        print(lang, end=" ")
  print()

profiles("유재석", 30, "Python", "C#", "C++", "Java", "jQuery")
profiles("김재동", 28, "Python", "Swift", "Android")

시간 출력

import datetime
now = datetime.datetime.now()

if now.hour < 12:
    print("현재 시간은 {}시 {}분으로 오전입니다".format(now.hour,now.minute))
else:
    print("현재 시간은 {}시 {}분으로 오후입니다".format(now.hour,now.minute))

369 게임

x = int(input())
if ((x+1) % 3 == 0) :
  print("짝!")
else:
  print(x+1)

네버랜드 놀이기구 타기

# 대기시간이 담긴 리스트가 인자로 주어지면 조건을 만족하도록
# 타야하는 대기시간의 순서가 담긴 리스트를 반환하는 함수 neverland()를 작성해봅시다.
# 대기시간이 가장 짧은 놀이기구부터 오름차순으로 놀이기구를 탑니다.
# 단, 인덱스 2에 해당하는 놀이기구는 유진이가 꼭 타고 싶어하는 놀이기구이기에 대기시간에 상관없이 가장 먼저 탑니다.
def neverland(q):
  temp = q.pop(2)
  q.sort()
  q.insert(0,temp)
  return q


# 확인을 위한 코드입니다.
# 대기시간이 담긴 리스트 queue를 자유롭게 수정해보세요!
queue = [30, 10, 20, 50, 40, 60]
print(neverland(queue))

 

비밀번호 만들기

 

Traceback (most recent call last): File "main.py", line 18, in <module> print(yoonHa(nums)) File "main.py", line 9, in yoonHa str1 = str1 + data[i] KeyError: '4'

 

* 데이터 타입 확인 방법 : type(n)

data[i] 를 data[int(i)] 로 형변환을 해주면 OK.

# 비밀번호를 만들어주는 함수 yoonHa()를 만들어봅시다.
def yoonHa(n):
  str1 =""
  data = {4:"love",6:"kiss", 8:"smile"}
  
  for i in n:
    str1 = str1 + data[int(i)]
  return str1

# 채점을 위한 코드입니다. 이를 수정하지 마세요!
nums = input()
print(yoonHa(nums))

 

'파이썬 > Python 기초' 카테고리의 다른 글

[파이썬기초] Tuple(튜플)  (0) 2021.01.01
[파이썬 기초] dictionary  (0) 2021.01.01
[파이썬 기초] 반복문 for, while  (0) 2020.12.29
[파이썬기초] List  (0) 2020.08.10
파이썬 기초  (0) 2020.08.08
블로그 이미지

Link2Me

,
728x90

파이썬은 변수 선언 키워드가 없다.

 

LIST : 복수개의 값을 담을 수 있는 데이터의 구조

리스트에서 원소를 삽입, 제거, 정렬할 수 있다.(mutable)

 

리스트 초기화

  • [] # 빈리스트
  • list() 함수로 생성
  • str.split()함수로 생성
# 문자열은 immutable
= 'hello, world.'
# a[0] = 'J'  # TypeError: 'str' object does not support item assignment
print(a)
 
= a.replace('h''J')
print(b)


['a','b']
['a',2] # 다른자료형을함께

 

[1,2,3] + [4,5,6]

결과는 [1,2,3,4,5,6]

 

a = [1, 2, 3]

a.append(4) # 리스트 마지막 원소 뒤에 추가한다.

print(a)

 

a.insert(1,7) # def insert(index,object)

- 리스트의 원하는 위치에 추가 가능

- 앞에 인덱스, 뒤에 아이템을 명시

= [123]
a.append(4)
print(a)  # [1, 2, 3, 4]
 
a.insert(1,7)  # def insert(index, object)
print(a)  # [1, 7, 2, 3, 4]
 
a[0= 100
print(a)  # [100, 7, 2, 3, 4]
 
# slicing
= [123456789]
print(a[4:7]) # [5, 6, 7]  # 뒤 index 숫자는 포함하지 않음.
print(a[:7]) # [1, 2, 3, 4, 5, 6, 7]
print(a[3:]) # [4, 5, 6, 7, 8, 9]
print(a[1:7:2]) # [2, 4, 6]  # 마지막 2 는 step 2

 

subway = ["유재석""홍길동""강호동"]
print(subway.index("강호동"))
print(subway.index("홍길동"))
print(subway.index("유재석"))
subway.append("강감찬"# 리스트 마지막 원소 뒤에 추가한다.
print(subway)  # ['유재석', '홍길동', '강호동', '강감찬']
 
# 1번째에 키워넣기 insert(위치, 값)
subway.insert(1,"이순신")
print(subway)  # ['유재석', '이순신', '홍길동', '강호동', '강감찬']

 

여러개의 요소를 추가하고 싶을 때는 extend 함수를 사용한다.

def extend(iterable)

a.extend([5,6,7])

 

= [1,2,3,4,5]
= [6,7,8,9,10]
 
a.append(b)
print(a) # [1, 2, 3, 4, 5, [6, 7, 8, 9, 10]]
 
# 리스트 합치기
# 방법 1
a.extend(b)
print(a)  # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# 방법 2
+= b
print(a) # [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
 

 

index()

- 찾고자 하는 값의 인텍스를 반환

 

in 키워드

- 리스트 내에 해당 값이 존재하는 지 확인

- value in [list]

- True, False 중 한가지로 반환

# list 는 mutable(가변), tuple은 immutable(불변)
# list 는 대괄호, tuple 은 소괄호 사용
= [4231]
= ["hello""hi"579]
 
x[3= 10  # list는 값을 변경할 수 있지만, tuple은 값 변경 불가
print(x)  # [4, 2, 3, 10]
 
print(x + y)
 
= sum(x) # 리스트를 합한 값을 반환.
print(z)  # 4 + 2 + 3 + 10 = 19
 
# index : 찾고자 하는 값의 인덱스를 반환
print(x.index(3))  # 2
 
for n in x:
  print(n)
 
print("hello" in y) # hello 가 y 에 있어?
 
if "hello" in y:
  print("hello 가 있어요.")

 

리스트 정렬

리스트 정렬(list.sort()) : 숫자는 오름차순, 문자열은 사전순

- 같은 자료형만 정렬 가능

- 리스트 내부 다른 자료형은 사용 불가

# 순서대로 정렬하기
num_list = [5,2,3,4,1]
num_list.sort()
print(num_list)  # [1, 2, 3, 4, 5]
 
# 순서 역순 정렬하기
num_list.reverse()
print(num_list)  # [5, 4, 3, 2, 1]
 

 

sort() : list 자체를 내부적으로 정렬

sorted() : list의 정렬된 복사본을 반환

# list 는 mutable(가변), tuple은 immutable(불변)
= [91071912202187]
# a.sort(reverse=True)
print(a)  # [21, 20, 19, 10, 9, 8, 7, 7, 2, 1]
 
= sorted(a)
print(a) # [9, 10, 7, 19, 1, 2, 20, 21, 8, 7]
print(b) # [1, 2, 7, 7, 8, 9, 10, 19, 20, 21]

 

리스트 요소 제거

- 값으로 항목 제거

  1. remove() 함수

- 인덱스로 제거

  1. del 연산자

  2. pop() 함수 : 지우고자 하는 아이템을 반환 후, 삭제

 

# remove 함수
= [123345]
a.remove(3)
print(a)  # [1, 2, 3, 4, 5]
# 동일한 값이 있을 경우 앞에 있는 값을 제거한다.
 
a.remove(7# ValueError: list.remove(x): x not in list
print(a)
 

 

list.pop(index)

- 인덱스 해당 요소를 제거한다.

- 인덱스를 지정하지 않으면 자동으로 -1을 호출하여 마지막 요소를 제거한다.

# pop 함수
= ["유재석""홍길동""강호동"]
 
# list.pop(i) : 인덱스 i의 원소를 제거 후 그 원소를 반환
# 한 명씩 뒤에서 꺼내기
print(b.pop())
print(b.pop())
 
# 특정한 원소 꺼내기
print(b.pop(0))
 
= [12345]
a.pop()  # 지정하지 않으면 마지막 원소 제거
print(a)  # [1, 2, 3, 4]
 
= [12345]
= a.pop(2)
print(a)  # [1, 2, 4, 5]
print(d)  # 3

 

# seq.count(d) : 시퀀스 내부의 자료 d의 개수를 반환
my_seq = [2,2,2,4,4,6,7]
print(my_seq.count(2)) # 결과 : 3
 
# 숫자 1, 2, 2, 3, 3, 3이 담긴 리스트 my_list를 하나 선언해 봅시다.
# my_list 안의 숫자 3의 개수를 변수 var1에 넣어 봅시다.
# 일부 원소를 제거하여 my_list가 [1, 2, 3]이 되도록 해봅시다.
my_list = [122333]
var1 = my_list.count(3)
print(var1) # 3
my_list.pop()  # 마지막 원소 제거
my_list.pop()  # 마지막 원소 제거
my_list.pop(2# 3번째 원소 제거
print(my_list)

 

문자열 분리

str.split(c)

c를 기준으로 문자열을 쪼개서 리스트를 반환(괄호를 비울시 공백)

words = "python은 프로그래밍 배우기에 아주 좋은 언어입니다."
words_list = words.split()
print(words_list) # ['python은', '프로그래밍', '배우기에', '아주', '좋은', '언어입니다.']
 
time_str = "10:34:17"
time_str_list = time_str.split(':')
print(time_str_list) # ['10', '34', '17']
 

 

str.join(list)

str를 기준으로 리스트를 합쳐서 문자열을 반환(괄호를 비울시 공백)

= ['a''b''c''d''1''2''3']
print(a)
 
# 리스트를 문자열로 : join 이용
result1 = "".join(a)
print(result1)  # 결과 : abcd123
 
friend = ['Pat''Mat']
print('&'.join(friend))  # Pat&Mat

 

'파이썬 > Python 기초' 카테고리의 다른 글

[파이썬기초] Tuple(튜플)  (0) 2021.01.01
[파이썬 기초] dictionary  (0) 2021.01.01
[파이썬 기초] 반복문 for, while  (0) 2020.12.29
[파이썬 기초] 함수와 조건문  (0) 2020.12.29
파이썬 기초  (0) 2020.08.08
블로그 이미지

Link2Me

,
728x90

처음에는 인프런 사이트에 등재된 Python 무료 강좌를 듣고 파이썬의 개념이 이런 것인가 싶어 적었다.

6시간만 공부하면 파이썬 기초 개념을 이해한다는 동영상 강좌도 들어봤고,

혼자공부하는 파이썬(윤인성) 동영상 강의를 들으면서 개념 정리가 확실하게 되는 걸 느끼고 있다.

\n : 개행
\t : 탭
\\ : 문자
\' : 문자
\" : 문자
\r : 캐리지 리턴
\f : 폼 피드
\a : 벨 소리
\b : 백 스페이스
\000 : 널 문자
print(4**3) # n제곱
print(pow(4,3)) # n 제곱
print(13//7) # 몫
print(13%7) # 나머지
number = 13
number %= 7
print("나머지 result :",number)
number *= 3
print("곱하기 result :",number)
print(1 != 3) # True
print(not(1 != 3)) # False
print(5>4>7) # False
print(round(3.14)) # 반올림
print(round(4.98)) # 반올림

from math import *
print(sqrt(16)) # 제곱근
print(floor(4.98)) # 내림
print(ceil(3.14)) # 올림

from random import *
print(random()) # 0.0 ~ 1.0 미만의 임의의 값 생성
print(random()*10) # 0.0 ~ 10.0 미만의 임의의 값 생성
print(int(random()*45)+1) # 1 ~ 45이하의 임의의 값 생성

print("로또번호 생성")
print(randint(1,45)) # 1~45 이하의 임의의 값 생성
print(randint(1,45)) # 1~45 이하의 임의의 값 생성
print(randint(1,45)) # 1~45 이하의 임의의 값 생성
print(randint(1,45)) # 1~45 이하의 임의의 값 생성
print(randint(1,45)) # 1~45 이하의 임의의 값 생성
print(randint(1,45)) # 1~45 이하의 임의의 값 생성

문자열

jumin = "970414-2464777"
print("성별 : "+ jumin[7])
print("년 : " + jumin[0:2]) # 0 ~ 2 직전까지 가져오기
print("월 : " + jumin[2:4]) # 2 ~ 4 직전까지 가져오기
print("일 : " + jumin[4:6]) # 4 ~ 6 직전까지 가져오기
print("생년월일 : " + jumin[:6]) # 처음부터 ~ 6 직전까지 가져오기
print("뒷7자리 : " + jumin[7:]) # 7부터 마지막까지 가져오기
print("뒷7자리 : " + jumin[-7:]) # 맨 마지막은 -1이고 -7부터 가져오기
print("안녕하세요"[0:2])  # 출력결과 : 안녕
print("안녕하세요"[:2])  # 출력결과 : 안녕
print("안녕하세요"[2:]) # 출력결과 : 하세요.

x = "qwertyui"
a = int(len(x)/2)
commna = ","
print(x[:a] + commna + x[a:])

 

문자열 포멧

# format 사용

print("나는 {}색과 {}색을 좋아해요.".format("파란","초록")

print("나는 {0}색과 {1}색을 좋아해요.".format("파란","초록")) 

print("나는 {1}색과 {0}색을 좋아해요.".format("파란","초록"))

print("나는 {var1}색과 {var2}색을 좋아해요.".format(var1="파란",var2="초록")) 

# 문자열 포멧
print("나는 %d살입니다." % 25)
print("나는 %s을 좋아합니다." % "파이썬")
print("나는 %s색과 %s색을 좋아해요." % ("파란","초록"))
print("나는 {}색과 {}색을 좋아해요.".format("파란","초록")) 
print("나는 {age}살이며, {color}색을 좋아해요.".format(age=25, color="파란"))

age = 20
color="빨간"
print(f"나는 {age}살이며, {color}색을 좋아해요.")

# \n : 문장내 줄바꿈
print("백문이 불여일견\n백견이 불여일타")
# 문장내 따옴표 처리 \"
print("저는 \"초보코딩\" 입니다.")
# \\ : 문장내에서 하나의 \
print("C:\\Users\\jsk005\\PythonWorkspace")
# \b : 백스페이스
 

url ="https://google.com"
my_str = url.replace("https://","")
print(my_str)
my_str = my_str[:my_str.index(".")]
print(my_str)
password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) + "!#"
print("{}의 비밀번호는 {} 입니다.".format(url,password))

연산자

// 몫

% 나머지

** 제곱연산자

# 3472를 17로 나누었을 때 몫과 나머지 구하기
print("몫 :", 3472//17)
print("나머지 :", 3472%17)

# 741 과 같이 input으로 입력받은 맨 첫글자를 출력하는 코드
a = input("숫자를 입력하세요 : ")
b = len(a)
c = int(a)//(10**(b-1))
print(c)

# 자료형을 확인해보자
print(type(a))
print(type(b))

# 만약 a = int(input("숫자를 입력하세요 : ")) 로 하면 어떻게 될까?
# object of type 'int' has no len() 로 b=len(a)를 할 수 없다고 나온다.
# 정수형의 문자열 길이를 알고자 한다면 len(str(a)) 를 해야 한다.
a = int(input("숫자를 입력하세요 : "))
b = len(str(a))
c = a//(10**(b-1))
print(c)

문자열 교체

# 문자열 교체 코드
a = int(input("문자열 입력 >> "))
b = int(input("문자열 입력 >> "))

print(a, b)
a, b = b, a # 튜플 기능 이용한 swap
print(a, b)

문자열 변환

string = "hello, my world."
# 함수들은 대부분 자기 자신을 변경하지 않는다.
string.upper()
print(string) # 결과 : hello, my world. 
print(string.upper()) # 결과 : HELLO, MY WORLD.

 

문자열은 불변(immutable)이라 원소를 변경할 수 없다.

a = 'hello, world'

a[0] = 'J'

print(a)

'파이썬 > Python 기초' 카테고리의 다른 글

[파이썬기초] Tuple(튜플)  (0) 2021.01.01
[파이썬 기초] dictionary  (0) 2021.01.01
[파이썬 기초] 반복문 for, while  (0) 2020.12.29
[파이썬 기초] 함수와 조건문  (0) 2020.12.29
[파이썬기초] List  (0) 2020.08.10
블로그 이미지

Link2Me

,