반응형

GDB진입 후 help/h 입력하면 명령들의 클래스 리스트가 출력된다. 

(gdb) help
List of classes of commands:

aliases -- Aliases of other commands.
breakpoints -- Making program stop at certain points.
data -- Examining data.
files -- Specifying and examining files.
internals -- Maintenance commands.
obscure -- Obscure features.
running -- Running the program.
stack -- Examining the stack.
status -- Status inquiries.
support -- Support facilities.
tracepoints -- Tracing of program execution without stopping the program.
user-defined -- User-defined commands.

Type "help" followed by a class name for a list of commands in that class.
Type "help all" for the list of all commands.
Type "help" followed by command name for full documentation.
Type "apropos word" to search for commands related to "word".
Type "apropos -v word" for full documentation of commands related to "word".
Command name abbreviations are allowed if unambiguous.

 

각 클래스의 도움말을 확인하려면 해당 클래스를 입력하면 된다.

(gdb) help class 

 

예를 들어 클래스 status에 대한 help를 해 보면 아래와 같습니다.

(gdb) help status
Status inquiries.

List of commands:

info -- Generic command for showing things about the program being debugged.
info address -- Describe where symbol SYM is stored.
info all-registers -- List of all registers and their contents, for selected stack frame.
info args -- All argument variables of current stack frame or those matching REGEXPs.

...

macro -- Prefix for commands dealing with C preprocessor macros.
show -- Generic command for showing things about the debugger.
show ada -- Generic command for showing Ada-specific settings.

...

show watchdog -- Show watchdog timer.
show width -- Show number of characters where GDB should wrap lines of its output.
show write -- Show writing into executable and core files.

Type "help" followed by command name for full documentation.
Type "apropos word" to search for commands related to "word".
Type "apropos -v word" for full documentation of commands related to "word".
Command name abbreviations are allowed if unambiguous.

 

i 로 시작하는 명령어들을 찾을 때는 complete 사용하면된다. 

(gdb)complete i

(gdb)complete i
if
ignore
inferior
info
init-if-undefined
interpreter-exec
interrupt

 

참고로 help로 화면 빠져 나가려면  "q + enter"를 입력하면 된다. 

 

 

반응형

'gdb' 카테고리의 다른 글

[gdb]coredump 생성 및 분석 방법  (0) 2021.04.07
[GDB] display array(display *input@i)  (0) 2021.03.29
GDB commands  (0) 2021.03.28
GDB란 ?  (0) 2021.03.28
반응형

 

GDB, GNU 프로젝트 디버거이며, 프로그램 수행 중에 안에서 일어나고 있는 것들을 보여 주거나 크래쉬가 난 순간에 프그램이 어떤일을 하고 있었는지를 보여준다.

GDB는 버그를 잡는데 도움이 되는 4가지 종류의 일을 한다:

  • 프로그램을 시작하고 프로그램의 동작에 영향을 줄 수 있는 것을 지정할 수 있다.
  • 지정된 조건에서 프로그램을 멈추게 할 수 있다.
  • 프로그램이 중지 되었을 때, 어떤 일이 벌어졌는 지 확인 할 수 있다.
  • 프로그램의 내용을 변경하여 버그를 수정하고 다른 버그에 대해 알아보는 실험을 계속할 수 있다.  

 

 

이러한 프로그램은 GDB(기본), 다른 시스템(원격) 또는 시뮬레이터와 동일한 시스템에서 실행될 수 있습니다. GDB는 맥 OS X뿐만 아니라 가장 인기 있는 유닉스 및 마이크로소프트 윈도우에서 실행될 수 있다.

GDB가 지원하는 언어는 무엇인가?

GDB가 지원하는 언어 (알파벳 순서):

  • Ada
  • Assembly
  • C
  • C++
  • D
  • Fortran
  • Go
  • Objective-C
  • OpenCL
  • Modula-2
  • Pascal
  • Rust

GDB는 1988년에서 리처드 스톨만이 처음 작성한 것으로, GNU 일반 공중 사용 허가서 하에 배포되는 자유 소프트웨어이다. 1990년부터 1993년까지는 시그너스 솔루션즈에서 근무하는 존 길모어가 관리하였다.

위 기능을 이용하면 프로그램 개발 시 코드를 좀 더 깊게 이해 할 수 있으며 프로그램에서 문제 발생시 문제 해결 할 수 있는 좋은 도구이므로 꼭 사용 법을 숙지해서 사용했으면 합니다.

[참조]

GDB homepage : http://www.gnu.org/software/gdb/

Wikipedia : https://ko.wikipedia.org/wiki/GNU_%EB%94%94%EB%B2%84%EA%B1%B0

 

반응형

'gdb' 카테고리의 다른 글

[gdb]coredump 생성 및 분석 방법  (0) 2021.04.07
[GDB] display array(display *input@i)  (0) 2021.03.29
GDB commands  (0) 2021.03.28
GDB help  (0) 2021.03.28
반응형

program이란 단순 코드를 의미할 수도 있고, 일반적으로 특정 디바이스에서 동작하는 앱을 프로그램이라고 통상적으로 얘길 한다.

processor는 cpu와 기타 기능을 포함하는 HW를 말하며 process는 실행 중인 program을 의미한다.

processor에는 전역변수, 열린 파일, 시그널, 주소공간 그리고 하나 이상의 실행중인 thread등을 포함한다.

thread는 process 안에 있는 활동을 가진 객체를 지칭하며 각 thread는 고유 PC(Program Counter), Stack 그리고 process register를 갖는다.

커널은 프로세스가 아닌 각각의 thread를 scheduling 한다.



gcc thread.c -o thread -lpthread

 1 #include <pthread.h>
  2 #include <stdio.h>
  3 #include <stdlib.h>
  4 #include <unistd.h>
  5
  6 void *firstThreadRun()
  7 { 
  8    while(1)
  9    { 
 10       sleep(1);
 11       printf("start first thread\n");
 12    }
 13    return 0;
 14 }
 15
 16
 17 void *secondThreadRun()
 18 { 
 19    while(1)
 20    { 
 21       sleep(3);
 22       printf("start second thread\n");
 23    }
 24    return 0;
 25 }
 26
 27
 28 int main(void)
 29 { 
 30    pthread_t firstThread, secondThread;
 31    int threadErr;
 32
 33    if(threadErr = pthread_create(&firstThread, NULL, firstThreadRun, NULL))
 34    { 
 35       printf("thread error= %d", threadErr);
 36    }
 37
 38
 39    if(threadErr = pthread_create(&secondThread, NULL, secondThreadRun, NULL))
 40    { 
 41       printf("thread error= %d", threadErr);
 42    }
 43
 44    while(1);
 45    return 0;
 46 }


output

start first thread
start first thread
start second thread
start first thread
start first thread
start first thread


반응형

'Algorithm' 카테고리의 다른 글

[c++]baekjoon 9012  (0) 2021.04.04
[c++]baekjoon 10773  (0) 2021.04.04
[c++]baekjoon 10828  (0) 2021.04.04
[c++]baekjoon 4949  (0) 2021.04.03
[c++]stack 사용  (0) 2021.04.02
반응형

start_kernel


reset_init

{

kernel_thread(kernel_init, NULL, CLONE_FS)


}




pid_t kernel_thread(int (*fn)(void *), void *arg, unsigned long flags)
{
	return _do_fork(flags|CLONE_VM|CLONE_UNTRACED, (unsigned long)fn,
		(unsigned long)arg, NULL, NULL, 0);
}



반응형
반응형

1. overview

C 발생 과정

ALGOL60 → CPL → BCPL → B → C


①ALGOL60 : 1960년 국제위원회에서 개발한 언어로서 FORTRAN보다 세련된 과학 계산용 언어이나 추상적인 언어이어서 소프트웨어 개발용으로는 적절하지 못하다.

②CPL(Combined Programming Language) : 1963년 런던 대학과 캠브리지 대학에서 공동으로 개발한 언어이며 ALGOL60의 추상적인 부분을 보완하기 위해 개발한 언어이나 명령어가 많고 사용하기 어려운 형태로 되어있다.

③BCPL(Basic CPL): 1967년 캠브리지 대학의 마틴 라챠드 교수가 개발했으면 CPL을 좀 더 쉽게 표현하고자 나온 언어로서 명령을 간단한 형태로 구사할 수 있게 만들었는데 특정 문제 처리 가능한 제한적 언어이다.

④B : 1970년 벨 연구소의 Ken Thompson이 개발한 언어이며 하드웨어 제어 프로그램까지도 가능하나 포인터와 주소 연산을 지나치게 많이 사용하여 프로그램 작성하기 어렵다.

⑤C : 1973년 벨 연구소의 Dennis Ritchie가 개발한 언어로 프로그램 작성도 쉬우며 기능도 막강한 언어이다.

특징

고급 언어이면서 저급 언어의 특성을 모두 가지고 있다.

풍부한 연산자를 가지고 있다(약 40개)

구조화되었다.

간결하고 일관된 데이타 처리가 가능하다.

동적 처리가 가능하다.

호환성이 강하다.

컴파일러 종류

ANSI C, VAX C, TURBO C, BORLAND C,  MS C,LATTICE C,INSTANT C,RUN C,UNIX C

2. basic

C언어에서 사용되는 문자

①영문자 : a~z A~Z
②숫자 : 0~9
③특수문자 : keyboard상에서 영문자와 숫자를 제외한 나머지 문자(! @ # $ * ^ + - & % > < ~ / \ ? ; " = ( ) : , { } _ | [ ]…)

예약어

어떤 의미를 지니고 있는 단어들이며 사용자 정의 명칭으로 사용할 수 없다. 예약어들은 모두 소문자이다.


(1)기억류 예약어

auto

register

static

extern

(2)제어문 예약어

goto

if ~ else

switch ~ case

for

while

do ~ while

break

continue

return


(3)자료형 예약어

char

int

short

long

unsigned

float

double

struct

union

enum

void

(4)기타 예약어

sizeof()

typedef

사용자 정의 명칭

프로그램  작성 시 사용자가 임의로 만들어서 사용하는 이름을 말하며 레이블, 변수, 매크로, 형, 배열, 구조체, 공용체, 함수 등의 이름을 정의 명칭입니다.

[규칙]

영문자와 숫자의 조합으로 만든다

첫 글자는 숫자가 올 수 없다.

특수 문자는 사용할 수 없으며, 단 under score(_)만 사용 가능하다.

문자 사이에 공백을 둘 수 없다.

예약어는 사용할 수 없다.

대문자와 소문자는 다른 문자로 취급한다.

글자 길이 제한은 컴파일러마다 차이가 있으나 일반적으로 32자까지 가능하다.



3. data type

자료형은 크게 상수(constant)와 변수(variale)가 있다.


상수

고유한 의미나 크기를 가지고 있는 변할 수 없는 값을 말하며 아래 종류가 있다.



기본형















 

 산술형















 문자형

 하나의 글자,' '속에 기재, 2Bytes차지하며 하위 1byte에 표현됨

일반문자 : 'A'  제어문자:'n', 'r', '\a', '\f', '\b', '\t'

 char(-128~127)

 %c

 unsigned char(0~255)

 %c

 문자열형

 하나 이상의 글자, 따옴표(" ")에 기재, 문자열 상수 마지막에 NULL이어서 memory상에 문자열수 보다 1byte 더 크다.

 

 %s

  정수형

소수점이나 지수가 없는 수

10진수(11),8진수(013),16진수(0xB) 등으로 표현

 short

 %hd

 int

 %d

 long

 %ld

 unsigned short
 %hu
 unsigned int

 %u

 unsigned long

 %lu

 실수형

 소수점이나 지수가 있는 수

(실수의 맨 뒤에 f가 붙어있다면 float, l이 붙어있다면 long double, 아무것도 붙어있지 않다면 double입니다.)

1.98f(float),  5.98283l(long double), 3.782e+12(double)

 float %f %e %g
 double%f

 long double

 %Lf
 나열형

 enum 이름{상수1, 상수2, ....}

enum 이름{상수1=값1,상수2 = 값2, ...}

 enum %d
 무치형

 void

   

 합성형





 array

    

 function

    

 pointer

    
 struct    
 union    


변수

상수값을 기억시키기 위한 기억장소를 말하여 메모리상의 임의의 위치로부터 일정 byte수 만큼의 공간을 확보해 놓은 후 해당 공간을 칭하는 이름이다.


[변수 선언 형식]
자료형 이름 변수이름;


자료 형변환(Data type Coversion)

(1)typedef
기존에 사용하고 있는 자료형 이름 대신에 다른 이름을 부여하여 사용하도록 하는 것
[ 형식]
typedef 기존형 이름 새로운 이름1, 새로운 이름2, ...;


(2)auto data type conversion

연산이나 대입시에 자료형이 자동적으로 바뀌어서 처리되는 것을 말하며 묵시적 형변환(Implicit Data Type Conversion) 이라고 한다.

자료형은 연산시 자료형의 크기가 큰 쪽으로 바뀌어서 연산 된다.

자료형의 크기 순서는 아래와 같다.

char →unsigned char → short → unsigned short → int → unsinged int → long → unsinged long → float → double


(3)User data type conversion

특정 자료의 형을 사용자가 강제적으로 바꾸어 주는 것으로 명시적 형변환(Explicit Data Type Conversion)이라고 한다.

Cast 연산자라고 주로 사용한다.

[ 형식]
(자료형 이름) 변환 대상체

4. operator

연산처리를 하기 위한 문자를 말하며 C언어의 연산자는 기계 코드연산 명령과 1:1 대응되도록 설계되어 있기 때문에 연산 처리속도가 상당히 빠르다.


연산자

 연산자 종류

 동등우선

 

 

 최우선 연산자

 [ ], ( ), ->, .

 →






 

 단항 연산자

 !, ~, +, -, ++, --, *, &, sizeof(),(자료형)

 ←

 



 산술연산자

 *, /, %

 →

 

 +, -

  →

 

 시프트 연산자

 <<, >>

  →

 

 관계 연산자

 >, <, >=, <=

  →

 
 !=, ==
  → 
 논리 연산자
 이진 논리 연산자 : & > ^ > |
  → 
 일반 논리 연산자 : && > ||
  → 
 삼항 연산자

 ?:

 ← 
 대입연산자 =, +=, -=, *=, /=, %/, &=, ^=, |=, <<=, >>=
 ← 
 컴머 연산자
 , → 


5. input/ouput function

입/출력 처리란 어떤 데이터를 외부 장치(키보드, 마우스, 디스크 등)로 부터 program 내부(memory)로 읽어 들이거나 memory에 있는 data를 외부 장치로 내보내 주는 작업을 말한다.

[ 입/출력 처리]
입력장치((keyboard, mouse, disk etc) →  기억장소(Memory) →  출력장치(Monitor, Disk, printer)


출력함수

name

 usage

 output

 putchar()

 putchar('charatr'); 화면에 한 글자 출력, putchar('A');

 monitor

 puts()

 puts("strings"); 화면에 문자열 출력, puts("Korea");

 printf

 printf("메시지");printf("출력서식 및 메시지", 대상체1,대상체2,...);

화면에 한 글자나 문자열 출력, printf("Korea"); printf("%s", "Korea");

 fputc()

 화일에 한 글자 출력, fputc('charter',화일변수 포인터);

 file

 fputs

 화일에 문자열을 출력, fputs("strings",화일변수 포인터);

 fprintf()

 화일에 문자나 문자열 그리고 숫자등을 출력,

fprintf(화일변수 포인터, "출력서식 및 메시지", 대상체1,대상체2,...);



입력함수

name

 usage

 output

 getchar()

 getchar('charatr'); 화면에 한 글자 출력, putchar('A');

 from keyboard

 gets()

 gets("strings"); 화면에 문자열 출력, puts("Korea");

 scanf

 scanf("메시지");scanf("출력서식 및 메시지", 대상체1,대상체2,...);

화면에 한 글자나 문자열 출력, scanf("Korea"); printf("%s", "Korea");

 fgetc()

 화일에 한 글자 출력, fgetc('charter',화일변수 포인터);

 from file

 fputs

 화일에 문자열을 출력, fgets("strings",화일변수 포인터);

 fscanf()

 화일에 문자나 문자열 그리고 숫자등을 출력,

fscanf(화일변수 포인터, "출력서식 및 메시지", 대상체1,대상체2,...);



6. 제어문

프로그램의 실행 순서를 바꾸어 주는 문을 말한다.


 

 

 

 goto

 무조건 분기문

 goto label;

 if ... else

 조건문

 if(조건식) 명령1

 switch ... case

 조건문

 switch(수식){

           case value 1: command1;command2;...commandn;break;

           case value 2: command1;command2;...commandn;break;

            :

            case value n: command1;command2;...commandn;break;

            default: command1;command2;...commandn;break;

            }

*break가 있으면 switch문 끝으로 이동하고, 없으면 다음 case를 지속 수행한다.

 for

 조건, 반복문

 for(초기식; 조건식; 증감식)

           명령1;

 while

 조건,반복문

 while(조건식)

      명령1;

*while문의 조건식이 거짓이 될때까지 loop내의 명령을 반복 수행한다. 거짓이 되면 빠져나옴.

 do ... while

 반복, 조건문

 do{

      command 1;

     }while(조건식)

 

*do...while문의 조건식이 거짓이 될때까지 loop내의 명령을 반복 수행한다. 거짓이 되면 빠져나옴.

 break

 탈출문

 *while문의 조건식이 거짓이 될때까지 loop내의 명령을 반복 수행한다. 거짓이 되면 빠져나옴.

 continue 게속문

 *for, while, do..while에서 사용되며, block의 끝 부분을 만난 것으로 인식한다. 그러므로 continue를 만나면 조건식으로 이동하여 다음 조건을 수행한다.


 while(조건식){

      1;

      continue;

      command 2;

     }

 return 제어 반환문
 



7. function


8. 기억류(Storage class)


9.선처리부(Preprocessor part)

10. Array

11. Structured type

반응형
반응형

  1 import matplotlib.pyplot as plt
  2 import numpy as np
  3
  4
  5 Fs = 8000
  6 f = 3
  7 sample = 8000
  8 x = np.arange(sample)
  9 y = np.sin(2 * np.pi * f * x / Fs)
 10 plt.plot(x, y)
 11 plt.xlabel('sample(n)')
 12 plt.ylabel('voltage(V)')
 13 plt.show()

 

 

 

 

 

반응형

'python > python basic' 카테고리의 다른 글

[python]class  (0) 2022.08.11
[python]PyMYSQL  (0) 2022.08.07
python basic  (0) 2018.11.12
python programming  (0) 2018.11.12
[python][serial]serial port list  (0) 2018.11.12
반응형

index
my_name[0]

index slicing
my_name[0:5]

docstring
"""this is docstring"""
#19 end escape code
print('This is test') #뒤에 /n이 붙어 있다
print('This is test', end= '')
print('This is test', end='/')

print('This is/n test') #enter
This is
test
print('This is\t test') #Tab
This is  test

print('This', end='\t') print('is')

#20 list
[val1, val2,...]
my_list=[1,2,3]

#20 list add
my_list=[1,2,3]

my_list.append('7')

#my_list
[1,2,3,'7']

#24 tuple
list(mutable)와 동일하게 값을 저장하지만 값을 변경할 수 없는 게 다름

#my_tuple=()

#type(my_tuple)
#class 'tuple'

#my_tuple=(1,2,3)
#my_tubple=1,2,3

#25 packing unpacking
#my_tuple=(1,2,3)
#my_tubple=1,2,3

위 tuple 자체가 packing이다

unpacking은 아래와 같이 packing된 값을 각각의 변수에 대입하는 과정이다.
#num1,num2,num3=my_tuple
#num1
#1
#num2
#2
#num3
#3


만약 num1=1, num2=2의 값을 서로 변경할 경우는
#num1,num2=num2,num1
#num1=2
#num2=1
이렇게 변경된 것을 확인할 수 있다.

#26 for
#
for 변수 in 컨테이너
    실행할 명령어1
    실행할 명령어2
    ...
실행할 명령어  앞에는 space 4개
 또는 tab을 꼭 사용해야 하며 섞어서 사용하면 안되고 1가지로만 사용해야 한다.

#for i in [1,2,3]
    print(i)
#1
#2
#3

#27 range
#range(0,3) # 0,1,2

#
for i in range(1,3)
    print(i)

#28 for x2
#for j in range(2,10)
#    
for i in range(1,10)
#           print('{} * {} = {}' .format{j,i,j*k))

for 2번째 줄은 스페이스 4칸 그 다음줄은 스페이스 8칸을 해야함.

#29 comprehension
나중에 공부하자


#30 할당 연산자(operator)
= += -= *= /=

#31 산술 연산자(operator)
 +  -  *  /
#2+2
#14/3

**(제곱) //(몫만 표시) %
(나머지)
#3**2
#9
#
#32 %
 +  -  *  /
#2+2
#14/3


#33 문자열 연산자
 +  *
#'
hong'+'gil'+'dong'
#honggildong
#'good'*3
#goodgoodgood

#34 비교 연산자(comparison operator)
 ==(같냐?)  != (다르냐?) >(크냐) < (작냐?) >=(크거나 같냐?) <=(작거나 같냐?)


#35 논리 연산자(logical operator)
and or not
#T
rue and True
#True
#True and False
#False
#True or True
#True

#True or False
#True

#not True
#False

#36 맴버쉽 연산자(membership operator)
#member_list=['cat','dog','lion','elephant','lizard']
#'cat' in member_list

#True
#'dong' in member_list

#Flase

#37 if
#if condition:
#    실행할 명령1
#    실행할 
명령2
#        .
#        .
#        .

#38 else, elif
#if condition:
#    실행할 명령1
#    실행할 
명령2
#elif condition:
#    실행할 명령1
#    실행  
명령2

실행할 조건 앞에는 띄어쓰기 4칸을 해야함(권장사항)


#39 while
#while condition:
#    실행할 명령1
#    실행할 
명령2
#elif condition:
#    실행할 명령1
#    실행  
명령2


#40 continue break
continue를 만나면 조건문으로 다시 감.
break 만나면 무한 반복문을 빠져나감.



반응형

'python > python basic' 카테고리의 다른 글

[python]PyMYSQL  (0) 2022.08.07
[python][graph]sine wave  (0) 2018.12.02
python programming  (0) 2018.11.12
[python][serial]serial port list  (0) 2018.11.12
[python][cv2]ImportError:No module named cv2  (0) 2018.11.12
반응형

1.python 특징과 설치

객체 지향언어
대화기능의 인터프리터 언어
동적인 데이터 타입 결정 지원
플랫폼에 독립적
개발 기간 단축에 초점을 둔 언어
간단하고 쉬운 문법
고 수준의 내장 객체 데이터형 제공
메모리 자동 관리(RC)
무료

시스템 관리(스크립팅)-상당히 많은 분야에 사용됨
GUI(pyhQT)
인터넷 프로그래밍
DB 프로그래밍
각종 텍스트 프로세싱
분산처리
수치연산, 그래픽스

2. 데이타 타입
-명명규칙
[_a-zA-Z0-9]*,한글
변수명의예:a,a1,my_name,your_job
잘못된 변수명 : 1abc,@abc,%x
# 주석

-데이터타입
정수
a=10
실수
a=3.14
복소수
a=3+j4
print(a)
print(type(a))
print(a.img)
print(a.real)
print(a.conjugate())
#객체: 속성+메소드
객체.속성
객체.메소드

-문자열 데이터타입
문자열
str
순서있는 데이터 타입
immutable 데이터 타입

#복합(시퀀스) 여러개의 데이터
#순서있는 데이터 타입(인덱스, 슬라이싱)
#[시작:끝:증가치]
#+,*,%
a=10
b=3.14
s='abc'
s1='a=%d b=%f s=%s'%(a, b,s)

s1='abcdefghi'
print(s1[0:4:1])
print(s1[1:4])
print(s1[:5:2])
print(s1[1:])
print(s1[-1:-4:-1])

s = b'abc'
print(s)
print(type(s))
b'abc'
class 'bytes'

s1 = 'abc'
s1 = s1.encode('utf-8')
print(s1)
print(type(s1))
'abc'
class 'bytes'

5강. 시퀀스 데이타타입
순서있는 데이터 타입(인덱스,슬라이싱)
리스트,튜플,문자열,바이트

순서없는 데이터 타입(인덱스,슬라이싱 X)
세트,딕셔너리


변경가능한(mutable) 데이터타입
리스트,딕셔너리,세트

변경불가능한(immutable) 데이터타입
튜플,문자열,바이트


튜플 타입

-오브젝트의 리스트를 저장
-() 또는 tuple() python 내장함수를 이용
-순서있는 데이터 타입
-변경불가능한(immutable) 데이터 타입
-함수의 인자, 리턴에 주로 사용

myT=(10,20,30,40)
print(myT)


packing, unpacking
a,b,c = ( 100,200,300 )# unpacking
a = ( 100,200,300 )# packing


Dictionary Type

-오브젝트를 키와 값으로 저장
-{키:값} 또는 dict() python 내장함수를 이용
-순서없는 데이터 타입
-변경가능한(mutable) data type

myD={10:'aa',20:'bb',30:'cc'}
print(myD.pop(20)) #20요소 삭제됨.
print(myD.keys()) #key값만 출력
print(myD.values()) #value 값만 출력
print(myD.items()) #key값만 출력

Set  Type
-중복없는 데이터를 저장
-{} 또는 set() python 내장함수를 이용
-순서없는 데이터 타입
-변경가능한 데이터 타입
-집합관련 연산자 사용
mySet={10,20,30}
print(mySet[0]) # 순서없는 데이타 타입이므로 에러발생

week#1_exercise

1. 아래의 문자열에 대해 다음을 수행하시오.
s='abcd efgh ijklm'

1)공백을 기준으로 자르시요(리스트의 문자열로).
2)'efgh'문자열을 추출하시요.
   print(s[5:9:1])
3)'ac fhikm'문자열을 추출하시요.
   print(s[::2])
4)'mlkji'문자열을 출출하시요.
    print(s[:8:-1])

2.문자열 객체 변수명이 s인 임의의 하나의 문자열이 주어진 경우 공백 기준으로 자른 뒤 맨 마지막 문자열을 추출하도록 프로그램을 작성하시오.

(예: s='abc def ghi'인 경우 ghi 문자열이 출력되어야 한다.)

Quiz
7.문자열을 bytes type으로 변환하고자 할 때 사용하는 것 
   encode
8.리스트에 요소를 추가하는 리스트 객체 맴버함수명이 아닌것은?
append, put, insert, extend
myList=[1,2,3,4]
my_list.append(50)
myList.insert(1,200)
myList.extend([1,2,3])
myList=myList + [1,2,3]
myList =myList*3
myList.remove(4) #해당 인텍스의 인자를 삭제함.
myList.pop() # 마지막 인자를 삭제
myList.pop(1) #해당 인덱스의 객체를 삭제
del( myList[0] ) #해당 인덱스의 인자를 삭제
n=myList.index(20) #해당값이 있는 인덱스를 리턴해줌
n=len(myList) #요소의 갯수를 리턴



9.아래에 해당하는 데이터 타입에 맞는 것은?
 - 순서있는 데이터 타입
 -변경 불가능한 데이터 타입
 -함수의 인자, 리턴에 주로 사용
 - 함수의 인자, 리턴에 주로 사용
 - 패킹과 언패킹 지원

10.아래의 출력 결과로 맞는 것은?

myD={10:'aa',20:'bb',30:'cc'}
myD[40]='dd'
print(myD)
{40: 'dd', 10: 'aa', 20: 'bb', 30: 'cc'}



함수와 모듈

def 함수명( 인자):

    함수구현부

    return 결과값

함수의 특징

- 두개이상의 값 리턴 가능
- 명시적 인자 호출
- 디폴트인자
- 가변인자
- 정의되지않은 인자

#두개이상의 값 리턴 가능

함수기본

<iframe width="800" height="300" src="http://pythontutor.com/iframe-embed.html#code=def%20hello%28%29%3A%0A%20%20%20%20print%28'hello'%29%0A%20%20%20%20print%28'fn'%29%0A%0Ahello%28%29%0Ahello%28%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=0&heapPrimitives=false&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false"frameborder="0"></iframe>함수기본(리턴과 인자)


================================
def hello():
    print('hello')
    print('fn')

def hap(a,b):
    return a+b

rst=hap(10,20)

def fn1():
    return 10,20,30

rst=fn1()
#hello()
#hello()

=====================================

함수의 특징
-두개 이상의 값 리턴 가능
-명시적 인자 호출
-디폴트인자
-가변인자
-정의되지않은 인자


13강. 파일, 디렉터리 다루기

1.파일객체 = open(파일명, 모드,인코딩)
파일객체를 리턴
2. 파일객체 멤버함수
write
readline
readlines
seek
tell
close
파일열기모드
r
w
a


14강. 시간과 날짜
date():날짜 정보만 가지는 datetime.date 클래스 객체 반환
time():시간 정보만 가지는 datetime.date 클래스 객체 반환
now():날짜 정보만 가지는 datetime.date 클래스 객체 반환

python datetime strtime


시스템과 랜덤함수

sys 모듈 import sys 

- argv: 명령행 인자
- getrefcount(): 참조 개수 반환
- path: 파이썬 패스
- stdin, stdout, stderr: 표준 입력, 출력, 에러 객체

- exit: 스크립트 종료

<sysRandomTest1>

import sys print( sys.argv ) my = sys.argv print( my[1]) 

<sysRandomTest2>

import sys myList = [10,20,30] print( sys.getrefcount(myList)-1 ) 

<sysRandomTest3>

import sys myList = [10,20,30] myList1 = myList print( sys.getrefcount(myList)-1 ) 

<sysRandomTest4>

import sys myList = [10,20,30] myList1 = myList print( sys.getrefcount(myList)-1 ) sys.stdout.write('aa\n') sys.stdout.write('bb'
 

random 모듈 import random

- randrange(시작,끝): 범위의 숫자 반환
- shuffle(시퀀스): 시퀀스를 임의로 배치
- choice(시퀀스 ): 임으로 선택
- Sample(시퀀스,개수): 임으로 갯수만큼선택

<sysRandomTest5>

import sys import random for n in range(5): print( random.randint(1,5) ) 

<sysRandomTest6>

import sys import random myList = [ 1,2,3,4,5] print( myList ) random.shuffle( myList ) print( myList ) 

<sysRandomTest7>

import sys import random myList = [ 1,2,3,4,5] print( myList ) print( random.sample( myList,2 )) 

<sysRandomTest8>

import sys import random #롯또 1~16 임으로 6개선택 rotto = [ n for n in range(1,17)] pr


반응형

'python > python basic' 카테고리의 다른 글

[python][graph]sine wave  (0) 2018.12.02
python basic  (0) 2018.11.12
[python][serial]serial port list  (0) 2018.11.12
[python][cv2]ImportError:No module named cv2  (0) 2018.11.12
[python]SyntaxError:Non-ASCII charater '\xec'  (0) 2018.11.12

+ Recent posts