728x90
반응형

Programming Language 59

[Python] 제너레이터(Generator)

제너레이터(Generator)이터레이터(Iterator)를 간단히 생성해주는 함수일반적인 함수처럼 정의되지만, 값을 반환할 때 return 대신 yield 사용제너레이터 함수는 호출될 때 실행되지 않고, 제너레이터 객체를 반환이터레이터 프로토콜를 따름yield 키워드: 값을 생성하고, 함수의 실행 상태를 유지. 다음 next() 호출 시 이 상태로 다시 실행을 시작지연 평가: 값을 필요할 때마다 하나씩 생성하여 메모리 사용을 줄임def gen(): yield 'a' yield 'b' yield 'c' g = gen()next(g) # 'a'next(g) # 'b'next(g) # 'c'next(g) # StopIteration모든 제너레이터는 이러에티러를 만드므로 제너레이터 객체는 이터레..

[Python] 이터레이터(Iterator)

이터레이터(Iterator)반복 가능한 객체를 순회할 수 있는 객체반복 가능한 객체란? -> List, tuple, set 등반복 가능한 객체 != 이터레이터 반복 가능한 객체 == 이터러블(iterable) 객체 (반복가능하면 이터레이터로 만들 수 있는 것)이터러블 객체는 __iter__() method를 가지고 있고, 이 method는 이터레이터를 반환하는 역할이터러블 객체는 iter() 함수를 이용하여 이터레이터로 만들 수 있mylist = [1, 2, 3]next(mylist)Traceback (most recent call last):File "", line 1, in TypeError: 'list' object is not an iterator# Iterable하다는 것이 Iterator라는 ..

[C++] STL list

#include 헤더파일에 존재한다. double linked list vector, deque와 다르게 멤버 함수에서 정렬(sort, merge), 이어붙이기(splice)가 있다. 임의접근 반복자 at(), [] 등으로 접근 불가. Iterator를 통해 하나씩 접근해야 한다.(양뱡향 반복자 ++, -- 사용하여 탐색) 연산자( ==, != , , =) 사용가능 using namespace std; 선언했다고 가정 생성자 list 변수이름 비어있는 list 컨테이너 생성 ex) list li; ex) list li; list li(10); default값(0)으로 초기화된 원소 10개를 가지는 list 생성 list li(3, 2); 2로 초기화된 원소 3개를 가지는 list 생성 list li2(l..

[Python][Anaconda] Solving environment: failed with initial frozen solve. Retrying with flexible solve.

Anaconda에 패키지를 설치하려고 하니 이러한 메세지와 함께 설치가 되지 않았습니다. 해결방법 Conda 환경 내에서 pip를 사용하여 설치하였습니다. 먼저 다음과 같은 방법으로 Conda 가상환경을 만들어주었습니다. (이미 만든 경우에는 건너뛰어도 됩니다) 우선 터미널을 열고 다음을 입력합니다. source ~/.bash_profile ~/.bash_profile 파일의 내용을 현재의 Bash 세션에 적용하는 데 사용됩니다. 여기서 ~는 사용자의 홈 디렉토리를 나타내고, .bash_profile은 Bash 셸 사용자 환경 설정 파일입니다. 이를 통해 사용자 Bash 로그인 환경 설정을 현재 세션에 즉시 적용도록할 수 있습니다. 이런 식으로 옆에 (base)가 표시되면 됩니다. 이미 base라고 표시..

[Java][Maven][VSCode] syntax error near unexpected token `('. @REM Licensed to the Apache Software Foundation (ASF)

VSCode에서 Maven을 사용하기 위해서 환경설정이 필요하다하여 다음 블로그를 참고하여 설정을 하였습니다. https://mydeveloplife.tistory.com/18 vscode에서 maven 프로젝트를 jar 파일 빌드하기 mydeveloplife.tistory.com User setting 설정 settings.xml 위치 Path 설정 mvn.cmd위치 위와 같이 설정을 하고 Maven 프로젝트를 실행하려고 하니 mvn.cmd 파일에 대하여 syntax error near unexpected token `(' 에러와 @REM Licensed to the Apache Software Foundation (ASF)가 나타났습니다. 이는 Path를 mvn.cmd 파일로 설정해서 나타난 문제였습..

[Java] printf에서 %n과 \n의 차이점

System.out.printf("%d%n", 123); System.out.printf("%d\n", 123); %n과 \n 모두 줄 바꿈을 표현하는데 사용됩니다. VSC에서 실행하는 경우 결과값에 이 차이점이 없어 보입니다. 하지만 이 둘은 플랫폼에 따라 차이점이 있을 수 있습니다. %n은 플랫폼에 따라서 줄바꿈을 처리하는 방식에 따라 다른 줄바꿈 문자를 출력합니다. 예를 들어, Windows 운영체제에서는 %n이 "\r\n"으로 처리되어 출력됩니다. 따라서, %n을 사용하면 어떤 운영체제에서든 일관성 있는 줄바꿈을 표현할 수 있습니다. *\r은 캐리지 리턴(Carriage Return)을 나타내는 이스케이프 시퀸스. 이전에 출력한 문자열의 맨 앞으로 커서를 이동시킨다. 예를 들어, System.ou..

[Java] VScode javax.swing 실행이 안될 때

https://code.visualstudio.com/docs/java/java-gui Develop Java GUI Applications in Visual Studio Code How to develop Java GUI Applications (JavaFX, AWT, Swing) in Visual Studio Code code.visualstudio.com extension for java package를 다운받았음에도 불구하고 javax.swing 패키지를 실행할 수 없을 때 다음 절차를 따라해보세요. 맥 유저라면 ⌘+⇧+P, 윈도우 유저라면 Ctrl + Shift + P를 눌러 Command Pallete를 엽니다. 여기에 Java:Help Center를 들어갑니다. 여기서 STUDENT 탭에 들..

[Java] Mac VsCode zsh: command not found: 에러

Java의 정석의 예제코드를 따라 공부하려고 하니 다음과 같은 에러가 나타났다. import java.util.*; public class ExpValidCheck { public static void main(String[] args){ if(args.length!=1){ System.out.println("Usage: java ExpValidCheck \"EXPRESSION\""); System.out.println("Example: java ExpValidCheck \"((2+3)*1)+3\""); System.exit(0); } Stack st = new Stack(); String expression = args[0]; try{ for(int i = 0; i < expression.length(..

[Java] AND와 OR의 연산자 우선순위

논리 연산자 중에서 AND를 의미하는 '&'와 '&&'가 OR를 의미하는 '|'와 '||'보다 우선순위가 높다. 이처럼 수식에 AND와 OR가 함께 사용되는 경우에는 괄호를 사용해서 우선순위를 명확히 하는 것이 좋다. x = 6; System.out.printf("x=%2d, x%%2==0 || x%%3==0 && x%%6!=0 =%b%n", x, x%2==0||x%3==0 && x%6!=0); System.out.printf("x=%2d, (x%%2==0 || x%%3==0) && x%%6!=0 = %b%n",x, (x%2==0||x%3==0)&& x%6!=0); 이 결과 &&의 우선순위가 ||보다 높기 때문에 x%2==0 || x%3==0 && x%6!=0 은 True || True && False ..

728x90
반응형