티스토리 뷰

본 게시글에서는 나도코딩 파이썬 기본편 영상을 학습하시는 분들이 자주 묻는 질문을 정리하였습니다.

 

 

영상 순서에 맞도록 구성하였으며 각 질문 마다 태그를 적어두었으니 Ctrl + F 를 통해 찾으시려는 키워드를 입력하시면 보다 빠르게 관련 질문 및 답변 내용을 찾을 수 있습니다. 이 글은 지속적으로 업데이트 될 예정이며 찾으시려는 내용이 없는 경우 댓글을 통해 남겨 주시면 추가될 수 있도록 하겠습니다.

 

단, 질문글을 남겨주실 때

  • 작성하신 소스 코드 전체
  • 에러메시지 전체
  • 영상 시간 정보

를 포함해서 작성해주시면 보다 빠르고 정확하게 답변을 드리도록 하겠습니다.

 


Chapter. 환경설정 (02:22)

(질문) Debug with Python 버튼이 없어요 (벌레 모양 아이콘이 달라요)

#환경설정 #Debug with Python #벌레 #실행

 

(답변) 최신 버전을 설치하시는 경우 영상과 조금 다르니 아래 링크에서 업데이트 된 설명을 따라 진행해주세요 ^^

 

파이썬 기본편 - 환경설정

환경설정 파이썬 개발을 위해 가장 먼저 해야 하는 작업, 바로 환경설정을 진행합니다. 파이썬 설치 1. 공식 홈페이지(https://www.python.org/downloads)에 접속합니다. 2. Downloads > All releases 를 클릭한..

nadocoding.tistory.com


(질문) 맥(Mac) 에서는 환경설정을 어떻게 하나요?

#맥북 #MacBook


(답변) 아래 링크의 설명을 참고 부탁드립니다.

 

[VSCode] Macbook에서 python 개발환경 구축하기

맥북에서 Visual Studio Code를 사용해 파이썬 개발환경 설정하는 방법입니다. 맥북에 파이썬 설치하기 파이썬 홈페이지에서 최신 버전의 파이썬을 다운받습니다. 다운받은 파일을 열어서 설치해줍

justdoitproject.tistory.com


(질문) pylint 를 설치하라는 팝업을 닫았는데 어떻게 하나요?

#환경설정 #pylint #팝업

 

(답변) vscode 하단의 TERMINAL (터미널) 탭에서 아래 명령 입력 후 엔터 치시면 됩니다. 터미널 탭이 보이지 않는다면 파이썬 파일을 1회 이상 실행시키거나, 상단 View 메뉴에서 Terminal 을 클릭하시면 됩니다.

pip install pylint

Chapter. 숫자 자료형 (07:26)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.

 



Chapter. 문자열 자료형 (11:42)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. boolean 자료형 (13:08)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 변수 (15:05)

(질문) print(+name+"은") 과 같이 + 를 먼저 쓰면 에러가 나는데 왜 그런 것인가요? 

#print #name #+

 

(답변) print() 함수는 괄호 안에 넣는 어떤 값을 출력하는 역할을 합니다. 그 안에는 여러 변수들을 합쳐서, 즉 a + b + c 이런 식으로 변수들을 합쳐서 출력할 수가 있지요. 하지만 + a + b 이렇게 적어버리면 문법이 틀리게 됩니다. 수학에서도 1 + 1 은 맞지만, 1 + 라거나 + 1 이런 문법은 없듯이, 코딩에서도 똑같습니다. 

 


Chapter. 주석 (22:08)

(질문)주석의 단축키는 무엇인가요?

#주석 #단축키


(답변)
주석은 영역 선택 후 Ctrl + / 를 누르면 됩니다. 가끔 이 동작이 되지 않는 경우에는 Ctrl + k + c (주석 설정) 또는 Ctrl + k + u (주석 해제) 를 누르시면 됩니다.


Chapter. 퀴즈 #1 (23:57)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 연산자 (25:48)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 간단한수식 (33:23)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 숫자처리함수 (36:26)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 랜덤함수 (38:59)

(질문) random 사용 (sample 등) 시 아래와 같이 에러가 나는데 어떻게 해야 하나요?

AttributeError: partially initialized module 'random' has no attribute 'sample' (most likely due to a circular import)

또는

NameError: name 'sample' is not defined

#random #sample #NameError #defined


(답변) 소스코드 작성중인 파일, 또는 동일 경로 내에 과거에 생성한 파일명을 random.py 로 하셨을텐데 my_random.py 등과 같이 변경해주셔야 합니다. 사용하시려는 모듈과 동일한 이름으로 파일을 생성하면 import 시에 동일한 경로에 있는 이 파일을 먼저 인식하게 되기 때문에 그렇습니다.


(질문) from random import * 와 import random 차이점은 뭔가요? 

#from #import


(답변) from 을 쓰게 되면 내가 원하는 일부분만 사용할수 있습니다. import 를 쓰게 되면 내가 필요로 하지 않는 녀석들도 사용할수 있게 되지요. 물론 코드에서 쓰지는 않더라도요. from random import * 을 하게 되면 import 와 같이 모든 녀석들을 사용할수 있되 앞에 random. 을 붙일 필요는 없게 됩니다. 하지만 만약 다른 모듈을 갖다쓰는데 똑같은 이름의 함수가 있다던지 하면 문제가 발생할수 있지요.

이렇게 예를 들어볼까요? 병원에 갔는데 손님이 아주 많아요. 간호사분이 "김철수님" 이라 불렀는데 갑자기 2명이 일어납니다. 어? 이름이 같은 사람이 있었던거죠. 그럼 간호사는 다시 호명합니다. "90년생 김철수님". 이렇게 하면 다른 한명은 자리에 다시 앉을겁니다. 이런것처럼 어느 패키지, 어느 모듈의 함수인지를 명시할 필요가 있을때도 있는 것이죠.


(질문) random 함수를 실행시키면 에러가 나요 

#random


(답변) 코드 윗쪽에 아래 내용이 포함되었는지 확인해주세요.

from random import *

Chapter. 퀴즈 #2 (44:11)

(질문) random 모듈의 sample 은 중복값을 제외하고 값을 뽑아주나요? 

#random #sample #중복


(답변) 네, 중복값은 제외합니다.



Chapter. 문자열 (46:57)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 슬라이싱 (48:24)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 문자열처리함수 (55:09)

(질문) find 함수에서 2번째 "n"이 문자열 기준으로 몇 번째 위치에 있는지 찾으려면 어떻게 해야하나요?

#find #문자열 #번째


(답변) 간단한 방법으로는 아래와 같이 find 함수의 2번째 인자 (시작 위치) 값을 넘겨서 처리하실 수 있습니다. 주어진 문자열에서 n 을 먼저 찾은 다음 + 1 을 통해 그 다음 위치로부터 다시 나오는 n 을 찾는 동작입니다.

python = "python is amazing"
print(python.find("n", python.find("n") + 1))

범용적으로 보다 개발자답게 사용하시려면 아래와 같이 함수를 만드실 수 있습니다.

def findnth(haystack, needle, n):
    parts= haystack.split(needle, n+1)
    if len(parts)<=n+1:
        return -1
    return len(haystack)-len(parts[-1])-len(needle)

python = "python is amazing"
print(findnth(python, "n", 0)) # 첫 번째 n 찾기
print(findnth(python, "n", 1)) # 두 번째 n 찾기

출처 : https://stackoverflow.com/questions/1883980/find-the-nth-occurrence-of-substring-in-a-string



Chapter. 문자열포맷 (1:00:56)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.

 


Chapter. 탈출문자 (1:09:17)

(질문) print("Red Apple\rPine") 라고 적었는데 PineApple 이라고 출력되지 않아요

#Apple #RedApple #PineApple #탈출문자


(답변) Visual Studio Code 가 아닌 다른 IDE (파이참 등) 에서 실행하시는 경우 출력결과가 조금 다를 수 있습니다. 윈도우 명령 cmd 창에서 하시면 강의 영상과 동일할텐데요, 크게 중요한 부분은 아니라서 신경쓰지 않고 넘어가셔도 됩니다.

 



Chapter. 퀴즈 #3 (1:15:47)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 리스트 (1:22:31)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 사전 (1:31:35)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 튜플 (1:40:46)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 세트 (1:43:19)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 자료구조의 변경 (1:48:44)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 퀴즈 #4 (1:50:47)

(질문) sample(users,4) 에서 리스트로 변환된 users의 4개를 랜덤으로 뽑는거니, shuffle(users)는 굳이 쓸 필요 없는 것 아닌가요?

#random #sample #shuffle

 

(답변) 네 맞습니다. 연습 삼아 써보시라고 한 것이지, 어차피 랜덤으로 샘플링 하는거라 실제로는 셔플 동작은 없어도 됩니다.


(질문) set 을 이용하여 퀴즈를 풀 수는 없나요?

#치킨 #커피 #set #차집합

 

(답변) 네 가능합니다. 아래 예제 코드를 참고해주세요.

from random import *

users = list(range(1, 21))
shuffle(users)

# 치킨 당첨자 1명 선정
chicken_winner = sample(users, 1)

# set 차집합을 이용하여 전체 사람 20명 중에서 치킨 당첨자 1명 제외
remain_users = set(users) - set(chicken_winner)

# 제외된 사람 19명 중에서 3명 선정
coffee_winners = sample(remain_users, 3) 

print("-- 당첨자 발표 --")
print("치킨 당첨자 : {0}".format(chicken_winner))
print("커피 당첨자 : {0}".format(coffee_winners))
print("-- 축하합니다 --")


Chapter. if (1:57:33)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. for (2:05:08)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. while (2:09:33)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. continue 와 break (2:14:59)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 한 줄 for (2:19:11)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 퀴즈 #5 (2:22:51)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 함수 (2:28:36)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 전달값과 반환값 (2:30:09)

(질문) 함수에서 return 은 어떨 때 쓰는 것인가요?

#return


(답변) 함수 내에서 어떤 동작을 수행하고 나서 값을 반환해주는 게 return 을 통해서 가능합니다. 그러면 함수를 호출할 때 함수의 결과값을 어떤 변수에 담아서 계속 작업을 해 나갈 수 있는 것이죠. 예를 들어서

def sum(a, b):
	return a + b
    
val = sum(1, 3)

이렇게 하면 sum 이라는 함수는 1 과 3 이라는 값을 받아서 그 값을 더한 4 를 return 해주게 됩니다. 즉, 다음과 같은 효과를 내게 되는 것이죠.

val = 4

만약 return 이 없었다면

val = ??

이 상태로 되어서 val 에는 올바른 값이 들어가지 않게 됩니다. 실제로 출력을 해보면 None 이라고 나오게 됩니다.



Chapter. 기본값 (2:37:50)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 키워드값 (2:41:32)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 가변인자 (2:43:07)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 지역변수와 전역변수 (2:47:55)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 퀴즈 #6 (2:53:58)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 표준입출력 (2:58:59)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 다양한 출력포맷 (3:10:12)

(질문) 문장에서 콤마를 3자리가 아닌 2자리마다 넣을 수는 없나요?

#콤마 #포맷 #2자리


(답변) 정규식 (Regular Expression) 을 이용해서 다음과 같이 할 수 있습니다.

import re
def commaParse(num):
    return re.sub('(?<=\d)(?=(\d{4})+(?!\d))',',',str(num)) # {4} : 4자리마다 콤마 표시
    
print (commaParse(1000000.12))

 



Chapter. 파일입출력 (3:17:45)

 

(질문) 파일 사용 시 close 를 꼭 해줘야 하는 이유가 있나요?

#파일 #file #close 

 

(답변) 파일을 열고 닫지 않아도 동작은 할 수 있지만 소스코드 내 다른 곳에서 똑같은 파일에 접근하는 경우 이미 파일이 열려 있으면 Lock 상태가 되기 때문에 사용이 불가능한 등의 문제가 있을 수 있으니 반드시 close 하시는 습관을 들이는게 좋습니다.



Chapter. pickle (3:26:27)


(질문) pickle 사용 (dump 또는 load) 시 아래와 같이 에러가 나는데 어떻게 해야 하나요?

AttributeError: partially initialized module 'pickle' has no attribute 'load' (most likely due to a circular import)

#pickle #dump #load


(답변) 소스코드 작성중인 파일명을 pickle.py 로 하셨을텐데 my_pickle.py 등과 같이 변경해주셔야 합니다. 사용하시려는 모듈과 동일한 이름으로 파일을 생성하면 import 시에 동일한 경로에 있는 이 파일을 먼저 인식하게 되기 때문에 그렇습니다.

 


(질문) profile.pickle 파일이 열리지 않아요

#pickle #profile.pickle #binary


(답변) pickle.dump 를 통해 생성된 파일은 에디터에서 읽을 수 있는 텍스트 형태가 아닌 바이너리 형태로 저장되므로 읽을 수 없는 것이 맞습니다. pickle.load 를 통해 정상적으로 불러와지는지 확인해주세요.


Chapter. with (3:30:22)

(질문) 파일을 열 때 "r" 과 "rb" 는 어떻게 다른가요?

#file #r #rb


(답변) 읽어오는 방법에 rb 가 있고 rt 가 있습니다. 이는 binary 와 text 의 줄임말이며, 보통 텍스트 파일일 때는 rt, 바이너리 형태의 파일 (이미지 등) 일 때는 rb 를 사용하여 불러옵니다. r 만 적으면 rt 와 같은 의미입니다.



Chapter. 퀴즈 #7 (3:33:33)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 클래스 (3:38:08)

(질문) 어떨 때 self 를 쓰나요?

#self 

 

(답변) 쉽게 구분짓자면 클래스 내의 메소드를 정의할 때는 self 를 적으시고, 클래스 외부의 일반 함수를 정의하실 때에는 self 없이 해주시면 됩니다.



Chapter. __init__ (3:47:04)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 멤버변수 (3:48:34)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 메소드 (3:53:07)

(질문) location은 왜 self.location으로 멤버변수 초기화 안하고 그냥 전달받은 값을 쓰는건가요? 

#location #self

 

(답변) 유닛은 생성되고 나서 전쟁을 할 때만 필요할 때마다 1시로 공격, 5시로 공격 등 방향을 지정합니다. 그렇기 때문에 방향 정보를 초기화 하는 것이 의미가 없으며, 그 때 그 때 게이머가 마우스로 클릭하는 위치에 따라 attack( ) 동작을 해야 하기 때문에 파라미터로 전달 받도록 처리를 했답니다.



Chapter. 상속 (3:59:29)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 다중상속 (4:02:54)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 메소드 오버라이딩 (4:10:08)


(질문) "연산자 오버로딩"이 맞나요? 

#연산자 #오버로딩

 

(답변) 본 영상에 나오는 표지 제목 및 설명 중 "연산자 오버로딩"은 잘못된 워딩이며 "메소드 오버라이딩"이 올바른 표현입니다. 강의 오류이며 혼란을 드려 대단히 죄송합니다.



Chapter. pass (4:17:03)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. super (4:19:31)


(질문) FlyableUnit 다중 상속하여 super().__init__() 함수 호출하는 부분에서 순서 설명이 잘못된 것 아닌가요?

#FlyableUnit #super #순서 #Flyable #Unit


(답변) 아래처럼 다중 상속 코드를 작성했을 때, super() 를 쓰면 순서상 맨 "마지막" 이 아닌, 맨 "처음" 클래스(예제에서는 Flyable) 에 대해서 __init__ 함수가 호출 됩니다. 강의 오류이며 혼란을 드려 대단히 죄송합니다.

class FlyableUnit(Flyable, Unit):
    def __init__(self):
        super().__init__()


Chapter. 스타크래프트 프로젝트 전반전 (4:23:50)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 스타크래프트 프로젝트 후반전 (4:33:47)

(질문) randint(5, 21) 의 설명이 잘못된 것 아닌가요?

#randint #21 #포함


(답변) 5이상 20이하의 값을 얻기 위해서 randint(5, 20) 이나 randrange(5, 21) 로 작성해야 합니다. 강의 오류이며 혼란을 드려 대단히 죄송합니다.



Chapter. 퀴즈 #8 (4:44:42)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 예외처리 (4:50:13)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 에러 발생시키기 (4:58:15)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 사용자 정의 예외처리 (5:01:06)


(질문) __str__ 함수가 없어도 똑같이 동작하는데 꼭 써야 하는 이유가 있나요?

#__str__ #예외처리 #BigNumberError


(답변) __str__ 이 없어도 msg 에 입력한 값이 동일하게 출력됩니다. 하지만 만약 에러 메시지를 개발자가 변경하여 

return [에러코드 001] + self.msg 

와 같은 식으로 출력하고 싶을 수도 있는데 이럴 때 필요하기 때문에 __str__ 에 대해 설명을 드렸답니다.



Chapter. finally (5:04:28)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 퀴즈 #9 (5:06:19)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 모듈 (5:14:23)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 패키지 (5:24:10)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. __all__ (5:30:30)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 모듈 직접 실행 (5:34:16)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 패키지, 모듈 위치 (5:34:16)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. pip install (5:40:33)

(질문) pip install beautifulsoup4 명령으로 패키지를 분명히 설치했습니다. 그런데 실행시켜보면 자꾸 ModuleNotFoundError: No module named 'bs4' 라고 나와요. 

#패키지 #pip install #bs4 #module


(답변) 파이썬이 2개 이상 설치돼있으신가봐요. 터미널에서 python -V 해서 나오는 버전과 vscode 좌측 하단에 나오는 버전 정보가 다를텐데, vscode 에서 버전 나오는 부분 클릭하셔서 상단에 뜨는 버전 중 터미널에 나오는 버전과 같은 것으로 맞춰보세요.


(질문) pip install beautifulsoup4 명령 실행 시 아래 에러가 나와요. 

#pip #cmdlet #install

pip : 'pip' 용어가 cmdlet, 함수, 스크립트 파일 또는 실행할 수 있는 프로그램 이름으로 인식되지 않습니다. 이름이 정확한지 확인하고 경로가 포함된 경우 경로가 올바른지 검증한 다음 다시 시도하십시오. 
위치 줄:1 문자:1 
+ pip install beatifulsoup4 
+ ~~~ 
    + CategoryInfo          : ObjectNotFound: (pip:String) [], CommandNotFoundException 
    + FullyQualifiedErrorId : CommandNotFoundException

(답변) 파이썬 설치할때 Add python 3.x to path 부분 체크가 안되었나봐요. 아래 링크의 설명을 따라 환경변수 설정을 직접 해주셔도 되구요
환경변수 등록 : https://oz-il.tistory.com/m/21

 

아니면 임시로 파이썬 설치경로 밑의 Scripts 폴더로 가셔서 pip 명령을 수행하셔도 됩니다.
예) C:₩Python38₩Scripts₩pip install [패키지]


위 방법이 어렵다면 아래 링크의 설명을 따라 파이썬을 아예 삭제하신 후에 다시 설치를 해주세요.

삭제 : https://copycoding.tistory.com/58

설치 : https://nadocoding.tistory.com/4



Chapter. 내장함수 (5:46:04)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.



Chapter. 외장함수 (5:50:38)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.

 



Chapter. 퀴즈 #10 (5:58:49)
(질문) 아직 내용이 없습니다.
(답변) 아직 내용이 없습니다.


Chapter. 공통

(질문) 강의와 똑같이 했고 코드에 실수도 없는데 자꾸 이런 에러가 뜨면서 실행이 안돼요

& C:/Python38/python.exe c:/Users/Desktop/PythonWorkspace/practice.py 
File "<stdin>", line 1 
& C:/Python38/python.exe c:/Users/Desktop/PythonWorkspace/practice.py 
^ 
SyntaxError: invalid syntax

#SyntaxError #invalid syntax #stdin #line 1

 

(답변) 실수로 한 줄 실행 단축키(Shift + Enter)가 눌려진 모양이네요. 터미널 탭의 맨 우측 끝에 있는 쓰레기통 모양 아이콘을 계속 누르셔서 모든 탭을 닫은 후 다시 실행해보세요. 또는 터미널 창에서 exit() 라고 입력 후 엔터를 치셔도 됩니다.


(질문) 한 줄 전체 선택은 어떻게 하나요? 주석의 단축키는 무엇인가요?

#선택 #주석 #단축키


(답변) 한 줄 전체 선택은 Shift + Home (커서 위치로부터 앞으로) 또는 Shift + End (커서 위치로부터 뒤로) 를 통해 가능합니다.

주석은 영역 선택 후 Ctrl + / 를 누르면 됩니다. 가끔 이 동작이 되지 않는 경우에는 Ctrl + k + c (주석 설정) 또는 Ctrl + k + u (주석 해제) 를 누르시면 됩니다.


(질문) 꼭 띄어쓰기를 해야 하나요? print(1 + 1) 도 되고 print(1+1) 도 되는데요?

#띄어쓰기


(답변) 코딩을 할 때 아주 중요한 것 중 하나가 바로 가독성 이라는 겁니다. 말 그대로 읽기 쉽도록 코드를 작성하는 것인데요, 스페이스 등을 불규칙적으로 뒤죽박죽 섞어 쓰면 코드를 볼 때 굉장히 피로해집니다. 그래서 일종의 약속으로 정한 것이 있는데, 다른 사람과 함께 작업하기 위해, 또는 미래의 자신이 코드를 알아보기 쉽게 하도록 위해 줄을 딱딱, 스페이스도 딱딱 알맞게 넣어주곤 한답니다. 1+1을 띄거나 붙이거나 동작은 동일하지만 가급적 강의에서 알려드리는대로 습관을 들이시는 것이 좋습니다. 더 자세한 내용을 공부하시고 싶으신 분은 구글에서 PEP 8 이라고 검색을 해보시면 관련 자료를 찾을 수 있습니다.


(질문) 어떨 때는 정수로, 어떨 때는 실수로 결과가 나오는데 왜 이러는 건가요?

#정수 #실수 #소숫점


(답변) 파이썬3 에서는 나눗셈 등 특정 연산을 하게 되면 정수로 나뉘어 지더라도 실수형 (float 자료형) 으로 결과가 나오게 됩니다. 그래서 만약 6/3 을 해도 정수 2가 아닌 2.0 으로 출력이 됩니다. 이를 피하려면, 아래와 같이 // 를 하거나 (소수점 버림) int 로 감싸면 (정수형으로 변환) 됩니다.

print(type(6)) # int
print(type(6/3)) # float
print(type(6//3)) # int
print(type(int(6/3))) # int

(질문) vscode 화면을 축소 또는 확대 하려면 어떻게 하나요?

#vscode #화면 #크기


(답변) 화면 축소는 Ctrl 과 - 버튼을 함께, 화면 확대는 
Ctrl 과 + 버튼을 함께 누르면 됩니다.


(질문) 터미널에서 모든 내용을 한 번에 삭제하는 명령어가 무엇인가요?

#터미널 #지우기


(답변)
cls (의미 : clear screen) 라고 입력하시면 됩니다. 맥에서는 clear 라고 해주세요.


(질문) 똑같이 했는데 이런 에러가 나타나요

    index -= 1 # 또는 어떤 문장
    ^
SyntaxError: invalid syntax

#SyntaxError #invalid


(답변) 예제와 같이 소스코드 내용과 함께 에러메시지가 나타난다면 그 바로 윗 문장의 닫는 괄호 ) 가 누락되었을 가능성이 가장 큽니다. 특히 print( ... format( ) 동작을 하고 나서 닫는 괄호가 2개가 아닌 1개만 있는 실수가 잦으니 여는 괄호와 닫는 괄호의 갯수가 같은지 확인해주세요.


(질문) 똑같이 했는데 이런 에러가 나타나요

IndentationError: unindent does not match any outer indentation level

#Indent


(답변) 들여쓰기에 tab 과 space 가 혼용되었을 가능성이 있습니다. tab 을 찾아서 모두 space 로 변경해주시거나, 아니면 새로운 파일에 처음부터 작성하시는 것을 권해 드립니다. 복사 붙여넣기 하면 똑같은 문제가 발생할 수 있으니 주의해주세요.


(질문) 똑같이 했는데 이런 에러가 나타나요

File "c:/Users/Nadocoding/Desktop/PythonWorkspace/practice.py", line 2
    print(i)
    ^
IndentationError: expected an indented block

#Indent


(답변) if, while, for, def 등 : 으로 끝나는 문장 다음에 나타나는 들여쓰기 중 잘못된 부분이 있어서 그렇습니다. line number 를 에러 메시지에서 확인할 수 있으므로 소스코드에서 해당 line 주변에 잘못된 들여쓰기를 수정해주세요.

 

참고로 파이썬에서는 들여쓰기가 굉장히 중요합니다. 예를 들어서

 

if 만약 초코파이가 있으면:
   초코파이를 사와
오예스를 사와

이렇게 하면 초코파이가 있을 땐 초코파이+오예스를, 없을 땐 오예스만 사게 됩니다.

if 만약 초코파이가 있으면:
    초코파이를 사와
else:
    오예스를 사와

이렇게 하면 초코파이가 있을 땐 초코파이만, 없을 땐 오예스만 사게 됩니다.

들여쓰기 사용 시 주의 부탁드립니다.


(질문) 역슬래시(백슬래시)는 어디에 있나요?

#키보드 #slash #\


(답변) 키보드의 BackSpace 근처(왼쪽이나 아래)에 있습니다. |, \ 등의 문자가 그려져 있는 키 입니다.


(질문) vscode 에서 영어는 괜찮은데 한글을 출력하면 이상한 문자가 찍혀요

#한글 #영어 #깨져 #깨짐


(답변) 아래 링크의 설명을 따라 설정을 변경해주세요.

 

 

VS CODE에서 파이썬 한글 출력 오류 해결하기 [Python]

안녕하세요? 코딩중독입니다. 최근에 키움 open api를 이용한 주식 프로그램 개발 공부를 하고 있습니다. 그런데, 키움 서버에 보내는 정보나 받아 오는 정보가 한글인 부분도 있고, 다른 사용자에

steady-coding.tistory.com


(질문) 함수와 메소드의 차이는 무엇인가요?

#클래스 #함수 #메소드 #def

 

(답변) 두 사람이 있습니다.

한 사람은 마술사이고 한 사람은 일반입니다.

 

식당이 있습니다.

마술사도 식당에서 밥을 먹을 수 있고 일반인도 식당에서 밥을 먹을 수 있습니다.

 

eat( ) 함수를 이용해서 eat(일반인, 김치찌개) 라고 하거나 eat(마술사, 된장찌개) 라고 하면 각 사람이 어떤 음식을 먹는지 알 수 있겠지요.

 

그런데 마술은 마술사만 할 수 있습니다. 그러면 마술사.magic( ) 를 해서 마술을 보여줄 수는 있겠지만, 일반인.magic( ) 은 에러가 납니다. 일반인은 magic 이라는 메소드가 없거든요.

 

함수는 외부에 있어서 아무나 이용 가능, 메소드는 그 클래스 객체만 이용 가능, 정도로 이해하시면 됩니다. 여기서 마술사도 클래스 객체, 일반인도 클래스 객체이며, eat( ) 은 클래스와 무관한 함수입니다. 아, 그리고 magic 은 마술사 클래스 내에 정의된 메소드입니다.


최종 수정 2021.01.17

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함