문자열 인덱싱, 슬라이스, 내장함수


1. 문자열 인덱싱 또는 추출

   문자열에서 한문자를 얻기 위해서 문자열 이름뒤에 대괄호([ ])로, 

   배열같이 offset을 지정합니다.

   첫번째는 [0] 이며, 마지막은 [-1]이며, [-2], [-3] 순서로 진행됩니다.

 

>>> alphaletters = 'abcdefghijklmnopqrstuvwxyz'
>>> alphaletters[0]
'a'
>>> alphaletters[1]
'b'
>>> alphaletters[-1]
'z'
>>> alphaletters[-2]
'y'

   

   기본적으로 문자열도 immutable 변수 이기 때문에, index로 변경이

   변경이 불가능합니다.

>>> Test = 'abcde'
>>> Test[0] = 'A'  // Error 발생

   대신 나중에 설명할 내부함수 replace를 통해 변경할 수 있습니다.



2. 문자열 슬라이스

  문자열 슬라이스는 [start:end:step] 으로 표현할 수 있습니다.

  [:] : 처음부터 끝까지 전체 문자열을 추출합니다.

  [start:] : start 부터 끝까지 추출합니다.

  [:end] : 처음부터 end-1까지 추출합니다.

  [start:end] : start부터 end-1까지 추출합니다.

  [start:end:step] : step만끔 점프하면서 start에서 end-1까지 추출합니다.


>>> alphabet = 'abcdefghijklmnopqrstuvwxyz'
>>> alphabet[:]
'abcdefghijklmnopqrstuvwxyz'

>>> alphabet[20:]
'uvwxyz'

>>> alphabet[:10]
'abcdefghij'

>>> alphabet[12:15]
'mno'

>>> alphabet[-4:]
'wxyz'

>>> alphabet[18:-3]
'stuvw'

>>> alphabet[::7]
'ahov'

>>> alphabet[4:20:3]
'ehknqt'

>>> alphabet[19::4]
'tx'

>>> alphabet[:21:5]
'afkpu'

>>> alphabet[::-1]
'zyxwvutsrqponmlkjihgfedcba'



3. 문자열 내장함수

  (1) 문자열 길이 및 문자개수 세기 - len / count

       len 은 전체 문자열 길이, count는 문자열 중에 특정문자 갯수

>>> s = "abcefg"
>>> len(s) // 전체 문자열 길이
7
>>> s.count('a') // 문자열 중 'a'의 갯수
1


  (2) 문자열 나누기 - split

      split은 나누며, 나중에 정리할 리스트자료형으로 반환합니다.

>>> str = "test1, test2, test3, test4"
>>> str.split(',')
['test1', ' test2', ' test3', ' test4']


  (3) 위치 알려주기 - find / index 

      find/index 모두 위치를 반환하지만, index는 없으면 error 발생

>>> str = "Python is fun for me."
>>> str.find('i')
7
>>> str.index('i') // 찾는 문자열 존재안하면 error 발생함
7


  (4) 문자열 결합하기 - join

      join은 split과 반대의 역할을 한다. string.join(list)형태로 결합한다.

>>> list = ['test','test1','test2','test3']
>>> ",".join(list)
'test,test1,test2,test3'


  (5) 문자열 다루기 

    여러가지 문자열 함수의 예제를 들면서 보겠습니다.

>>> python_define = 'Python is a widely used high-level, general-purpose, 
interpreted, dynamic programming language.'

>>> len(python_define)
95

>>> python_define.startswith('Python')
True

>>> python_define.endswith('language.')
True

>>> python_define.find('level')
29

>>> python_define.count('level')
1

>>> python_define.isalnum()
False


  (6) 대소문자

      이번에는 대소문자를 바꾸는 방법을 한번 보겠습니다.


>>> python_define = 'Python is a widely used high-level, general-purpose, 
interpreted, dynamic programming language.'

#첫번째 단어 대문자
>>> python_define.capitalize()
'Python is a widely used high-level, general-purpose, interpreted, dynamic programming language.'

#모든 단어의 첫글자 대문자
>>> python_define.title()
'Python Is A Widely Used High-Level, General-Purpose, Interpreted, Dynamic Programming Language.'

#글자를 모두 대문자
>>> python_define.upper()
'PYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.'

#글자를 모두 소문자
>>> python_define.lower()
'python is a widely used high-level, general-purpose, interpreted, dynamic programming language.'

#대문자는 소문자, 소문자는 대문자,
>>> python_define.swapcase()
'pYTHON IS A WIDELY USED HIGH-LEVEL, GENERAL-PURPOSE, INTERPRETED, DYNAMIC PROGRAMMING LANGUAGE.'


  (7) 대체하기 - replace()

      문자열에서 특정 문제를 특정 문자로 바꾸는 예제를 보겠습니다.


# 문자열에서 ,를 and로 모두 바꾸는 경우
>>> python_define.replace(',', ' and')
'Python is a widely used high-level and general-purpose and interpreted and dynamic programming language.'
# 문자열에서 ,를 and로 2번만 바꾸는 경우
>>> python_define.replace(',', ' and',2)
'Python is a widely used high-level and general-purpose and interpreted, dynamic programming language.'


'프로그래밍 > Python' 카테고리의 다른 글

[Python] 자료형 (문자열)  (0) 2016.04.25
[Python] 기본자료형 (숫자형)  (0) 2016.04.20
[Python] Linux(우분투) Python 설치  (0) 2016.04.19
[Python] 기본 자료형이란?  (0) 2016.04.13
[Python] Python 철학  (0) 2016.04.13

제어문 두번째, switch case break 문


여러가지 중 선택을 표현할때, if문을 쓸수도 있고 switch case 문을 쓸 수 도 있다.

두가지 중에 상황에 맞게 써야 하는데, 조건이 많아지는 경우 if문보다는 switch case 문이 효율적일 때가 있다. 컴파일시 JVM이 그 위치를 기억하고 해당하는 case 문으로 바로 이동하기 때문이다.



아래에서 사용하는 형식에 대해서 알아보자.


 
 switch (char, short, int, byte의 자료형 또는 메서드)
 {
     case VALUE1:
           // 진행 내용부
           break;
     case VALUE2:
           // 진행 내용부
           break;
     case VALUE3:
           // 진행 내용부
           break;
     case VALUE4:
           // 진행 내용부
           break;
     default:
           // 진행 내용부
           break;
 }


기본적으로 위와 같이 switch 구문안에는 char/byte/int/short 자료형 또는 메서드를 넣고

case 뒤에 해당하는 조건의 값을 기입한다

해당하는 값이 없을 때 실행되는 default도 마지막에 기입한다.

'프로그래밍 > Java' 카테고리의 다른 글

[Java] 제어문 네번째, While 문  (0) 2016.05.23
[Java] 제어문 세번째, For 문  (0) 2016.05.18
[Java] 제어문 첫번째, If 문  (0) 2016.05.02
[Java] 연산자-5  (0) 2016.04.14
[Java] 연산자-4  (0) 2016.04.14

NGINX 재시작


# /etc/init.d/nginx restartOR
# /etc/init.d/nginx reload

OR

# service nginx restartOR
# service nginx reload


정상적으로 재시작 되면 아래와 같은 결과를 볼 수 있습니다.



'프로그래밍 > 리눅스' 카테고리의 다른 글

[Linux] 설치된 package 보기  (0) 2016.05.02
[Linux] 파일 찾기  (0) 2016.04.27

Java 제어문 If 문


IF문은 조건에 따라 진행에 대한 선택을 하게하는 구문입니다.


제어문 IF는 아래 3가지 정도의 방법이 있습니다.


필요에 따라 단독 IF 문 / IF & ELSE / IF & ELSE IF & ELSE 나눠서 쓰면 됩니다.


  
// 첫번째
if(조건)
{
    조건이 참일때, 실행되는 구문
}

// 예시
int a = 5;

if(a<4)
{
   System.out.println("a는 4보다 큽니다.");
}


  
// 두번째
if(조건)
{
    조건이 참일때, 실행되는 구문
}
else
{
    조건이 거짓일때, 실행되는 구문
}

// 예시
int a = 5;

if(a>4)
{
   System.out.println("a는 4보다 큽니다.");
}
else
{
   System.out.println("a는 4보다 작거나 같습니다.");
}



  
// 세번째
if(조건)
{
    조건이 참일때, 실행되는 구문
}
else if(두번째 조건)
{
    두번째 조건이 참일때, 실행되는 구문
}
else
{
    모든 조건이 거짓일때, 실행되는 구문
}

// 예시
int a = 2;

if(a>4)
{
   System.out.println("a는 4보다 큽니다.");
}
else if(a ==2)
{
   System.out.println("a는 2와 같습니다.");
}
else
{
   System.out.println("a는 2가 아니고, 4보다 작거나 같습니다.");
}



'프로그래밍 > Java' 카테고리의 다른 글

[Java] 제어문 세번째, For 문  (0) 2016.05.18
[Java] 제어문 두번째, switch case break 문  (0) 2016.05.09
[Java] 연산자-5  (0) 2016.04.14
[Java] 연산자-4  (0) 2016.04.14
[Java] 연산자-3  (0) 2016.04.10

설치된 Package 보기


To get a list of packages installed locally do this in your terminal:

설치된 package를 보기 위해서 아래 명령어를 입력합니다.

dpkg --get-selections | grep -v deinstall

(The -v tag "inverts" grep to return non-matching lines)


To get a list of a specific package installed:

특정단어가 들어간 Package List

dpkg --get-selections | grep "찾고자하는 Package 이름"

Alternatively, simply use (다른 방식으로도 볼수 있습니다.)

dpkg -l


'프로그래밍 > 리눅스' 카테고리의 다른 글

[Linux] NGINX 재시작하기  (0) 2016.05.03
[Linux] 파일 찾기  (0) 2016.04.27

AMQP(Advanced Message Queing Protocol) 란?

AMQP is an open standard application layer protocol for message-oriented middleware. 

The defining features of AMQP are message orientation, queuing, routing

(including point-to-point and publish-and-subscribe), reliability and security.


AMQP는 메세지기반 미들웨어를 위한 어플리케이션 프로토콜 오픈 규격입니다.

AMQP의 feature로는 메세지기반, 큐, 라우팅, 신뢰성, 보안 등으로 정의할 수 있습니다.


참고 Site는 https://www.amqp.org/


이후로는 AMQP중 유명한 RabbitMQ에 대해서 포스팅 하도록 하겠습니다.

'프로그래밍 > AMQP' 카테고리의 다른 글

[RabbitMQ] RabbitMQ 란?  (0) 2016.05.16

C# Enum 형


Enum type은 문자와 숫자 모두 병행해서 사용이 가능합니다.

물론 casting을 하면 서로 값을 얻을 수 있습니다.


아래는 Enum 정의 하는 법입니다.

    enum Name
    {
         KIM,
         LEE,
         PARK,
         JUNG,
         HWANG  
    }


간단하게, int와 문자 서로 병행해서 사용하는 예제입니다.


출력결과는 리터럴로 확인 할 수 있고, int형으로 캐스팅하면 해당하는 value로 됩니다.


class Program
    {
        static void Main(string[] args)
        {

            Name myName;
            myName = Name.Lee;

            Console.WriteLine("Name.Lee is " + Name.Lee);
            Console.WriteLine("myName is "+ myName);
            Console.WriteLine("myName is " + (int)myName);

            Console.ReadLine();

        }
    }

// 결과
// Lee
// Lee
// 1


당연히 아래 같이 if 문으로도 쓸 수 있습니다.


if(myName = Name.Lee) 


리눅스(Linux) 파일 찾기


$ find / -name '파일명'
$ find / -name '파일명*'
$ find / -name '*파일명'


'프로그래밍 > 리눅스' 카테고리의 다른 글

[Linux] NGINX 재시작하기  (0) 2016.05.03
[Linux] 설치된 package 보기  (0) 2016.05.02

+ Recent posts