본문 바로가기

프로그래밍 언어8

[Error]Statements must be separated by newlines or semicolons import sys A = input() B = (int)A C = B - 543 print(C) 이 코드의 B = (int)A 이 부분에서 제목의 에러가 발생했다.(도대체 왜???) B = (int)(A) 이렇게 바꿔주니 사라지긴 했는데 흠 왜 그런지 모르겠다. 2023. 10. 19.
[Error] TypeError: can only concatenate list (not "str") to list import sys A = input().split() B = "??!"\ print(A + B) 이 코드를 쳤더니 제목의 에러가 나왔다. 직역하면 "list에는(str이 아니라) list만 연결지을 수 있다"라는 뜻. 그래서 아래 코드를 통해 A와 B의 자료형을 확인해 보았다. import sys A = input().split() B = "??!" print(type(A)) print(type(B)) 결과는 아하 사용자 입력을 받는 변수 A에는 해당 입력이 list 형태로 저장되기 때문에 발생하는 문제였다. 2023. 10. 19.
[개념]Python 파일 실행하기 알고리즘 테스트 때문에 정말 오랜만에 python을 꺼내들었다. 하지만, 파일 확장자 이름마저도 기억이 안 나는 데다 내가 짠 코드를 실행하는 방법도 까먹었다. 그래서 정리를 한 번 해보려 한다. 1. 터미널 없이 실행하기 vscode에서 Python extension pack을 설치하고, 실행 -> 디버깅 없이 실행을 클릭하면 실행할 수 있다. 2. 터미널에서 간단한 코드 실행하기 터미널에 Python3 이렇게 치면 위와 같이 간단한 코딩의 결과를 바로바로 확인할 수 있다. 나가고 싶을 땐 "exit()"을 터미널에 입력하면 된다. 3. 터미널에서 명령어로 실행하기 위와 같이 터미널에 "python [파일 이름]" 이렇게치면 파이썬 파일을 실행할 수 있다. (원래는 python3인데 나는 python으.. 2023. 10. 18.
다트 클래스 사용법 기초 객체 지향 프로그래밍의 핵심 중 하나인 클래스를 사용하는 코드의 예시는 아래와 같으며 크게 4부분으로 나누어 살펴본다. import 'package:flutter/material.dart'; //1. Import문 class MyWidget extends StatelessWidget { //2. MyWidget 클래스 정의 @override Widget build(BuildContext context) { //3. build 매서드 정의 return Container( color: Colors.blue, child: Center( child: Text( 'Hello, Flutter!', style: TextStyle(fontSize: 24, color: Colors.white), ), ), ); } } .. 2023. 9. 6.
다트 기초(C언어와의 차이점을 중심으로) 이 글은 제가 유일하게 아는 언어인 C언어와 구별되는 Dart의 특징적 개념만을 정리하였으므로 프로그래밍 자체가 처음이신 분들은 이해하기 어려울 수 있습니다. dynamic type vs var type 둘 다 데이터 타입을 명시적으로 지정하지 않고, 컴파일러가 할당된 값의 데이터 타입을 기반으로 타입을 추론하도록 한다. 이로써 코드를 간결하게 작성할 수 있는 장점이 있다. 그러나 var type으로 선언된 변수는 한 번 초기화했을 당시의 자료형만 계속 쓸 수 있다. var name = 12; // 위와 같이 integer로 초기화되어 있다면 // name이라는 변수에는 string이나 bool 같은 자료형의 데이터는 저장할 수 없다. name = 43; [O] name = 'string'; [X] na.. 2023. 9. 3.
가변 인자에 대하여 가변인자란 인자의 갯수가 정해지지 않은 인자를 의미한다. 가변 인자를 갖는 함수 프로토타입을 선언할 때는 최소 1개 이상의 고정 인수가 있어야 하고, 가변 인자를 나타내는 '...'은 파라미터 순서상 맨 마지막에 위치해야 한다. int sum(int count, ...) { int res = 0; va_list ap; int i; va_start(ap, count); for(i=0; i 이 부분은 ap 안의 주소값을 t만큼 증가시켜서 ap가 다음 가변인자를 가리키도록 하는 게 목적 ap += _INTSIZEOF(t) - _INTSIZEOF(t) -> 이 부분은 현재 ap가 가리키는 가변 인자를 리턴하는 게 목적 4. va_end #define va_end(ap) ( ap = (va_list)0 ) 위와 .. 2023. 7. 4.
유효 숫자 float형은 유효 숫자를 7개까지 double형은 유효 숫자를 15개까지 보장해 준다고 하는데그런데 유효 숫자는 정확히 무엇을 의미하는 것인지 잘 모르겠어서 한 번 공부해 보았다. 유효숫자는 수의 정확도와 정밀도에 영향을 주는 숫자를 의미한다. 수의 정확도와 정밀도에 영향을 준다는 말은 무슨 말일까? 예를 들어 사과 5432개가 있다. 이 사실을 다른 사람에게 한 치의 오차도 없이 정확하게 전달하려면 5, 4, 3, 2 이 4개의 숫자를 10진법을 이용해 표기해야 한다. 이때 5, 4, 3, 2 이 4개의 숫자를 수의 정밀도에 영향을 끼치는 유효 숫자라고 할 수 있다. 만약 5432.0000000 이런 표기가 있다고 했을 때 소수점 뒤의 무수히 많은 0은 모조리 유효 숫자 취급을 받지 못할 것이다. 소.. 2023. 6. 26.
알면 알수록 헷갈리는 포인터 뽀개기 1. 컴퓨터는 메모리 안에 저장된 데이터에 어떻게 접근하는가? 메모리 안에 10이라는 정수형 숫자를 저장해놓았다고 치자. 그렇다면 용량은 끽해봐야 8byte(long long형을 쓸 경우). 몇 백기가가 넘어가는 주메모리에는 수없이 많은 데이터들이 있을 텐데 이걸 어떻게 찾을 수 있을까? 택배기사가 수없이 많은 집 중 배달을 시킨 집 딱 하나만 골라내기 위해 주소를 사용하듯 컴퓨터도 드넓은 메모리 안에서 원하는 데이터를 찾아내기 위해 주소(address)를 사용한다. 데이터마다 서로 다른 주소값을 부여해 구분하고 해당 데이터가 필요할 때마다 그 데이터만 정확히 콕 찝어서 데려간다. 컴퓨터는 주소를 통해 메모리에 저장된 데이터에 접근한다. 2. 사용자는 메모리 안에 저장된 데이터에 어떻게 접근하는가? 포인.. 2023. 6. 25.