본문 바로가기

Code/Phyton

[Phyton] String/ Escape Sequence/ Slicing String

문자열(String)

 

 

 

사람들이 만든 정보를 분석하는 bioinformatic으로

앞서 공부한 정수 혹은 실수와 다르게 글자(들)을 저장하는 변수 타입이다. 
실제 변수를 공부할 때 언급되었던 type() 함수를 수행하면, 

str 타입으로 결과값을 돌려주는 변수 타입이다.
문자열에는 알파벳, 한글을 포함한 글자(들)과 숫자 그리고 다양한 기호들이 포함될 수 있다.

 

문자열을 일반적으로 ' ' 혹은 " "의 인용 구문 기호로 앞뒤를 감싸는 것으로 표현한다.

'' ,"" 처럼 Empty string 으로도 표현한다.

이는 나중에 문자열로 채우고싶을때 사용한다.

 

len(): 입력 파라메타로 전달받은 문자열의 길이를 결과값으로 돌려줌

len("abc de") : 6개의 글자(spacebar 포함) 하지만 C++은 이를 6byte로 이해한다. 

 

문자열 + 정수 -> 오류

 

문자열 * 숫자 -> 적용, 반복적으로 동일문자 사용가능!!!!!!!!!!!

 


Escape Sequence

 

 

 

특수목적을 위해 정상작동에서 나온다

문자열 안에 특수 기호를 나타내거나, 혹은 눈으로 볼수 없는 특수기호를 프로그래밍 언어에서 표현하고자 하는 경우에 활용합니다.

 

 

Escape SequenceDescription

'

Single quote

"

Double quote

\

Backslash

\t

Tab

\n

Newline

\r

Carriage return

 

print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False): 입력 파라메타(들)에 대한 자세한 설명

  • sep=' ': 입력 파라메타로 전달받은 값(혹은 변수) 들 사이에 넣을 기호로서, 초기설정 값은 '공란 한칸(space)' 임

  • end='\n': 입력 파라메타들을 모두 출력한 마지막 부분에 삽입할 기호로서, 초기설정 값은 '한 줄 바꾸기(new line)' 임

 

print('a','b','c',sep='-')

 

a-b-c

 

print('a','b','c',sep='!!')

 

a!!b!!c

 

 

species = input() 두번 탭 : 입력가능해짐

문자열로 받음 ->숫자로 하고자하면 int ()로 변환해야됨

 

species = input("enter : ")

 


input() 함수 이해하기

 

 

 

input() 함수는 Python 언어의 내장 함수로서,

사용자에게서 키보드를 통하여 값을 입력 받는 기능으로 사용합니다.

input() 함수는 결과값(return하는 값)으로 문자열을 돌려주기에,

필요한 경우에는 타입의 형변환이 필요합니다.

 

print("Enter 'a' as integer number: ")

a = int(input())

print("Enter 'b' as integer number: ")

b = int(input())

print("a + b = ", a + b)

 

 

Enter 'a' as integer number: 12

Enter 'b' as integer number: 15

a + b = 27


 

a = int(input(prompt="Enter 'a' as integer number: "))

b = int(input(prompt="Enter 'b' as integer number: "))

print("a + b = ", a + b)

 

 

Enter 'a' as integer number: 12

Enter 'b' as integer number: 15

a + b = 27

 


Slicing string 

 

 

 

 

0번째에서 카운팅 시작한다. -> 컴퓨터 성능을 위한 선택

a[9:12] -> 9,10,11 까지 : 뒤에있는 숫자가 본인을 포함하지않게 설정, 9이상 12미만

 

a = "You only live once." 일때

 

a[10:]

 

ive once.

 

뒤에서부터 카운팅 가능하다

익숙하지 않은 표현 일수 있지만, 아래의 그림과 같이 문자열 a의 마지막 글자의 위치를 -1로 지정하여, 첨자를 주는 것도 가능하다.
예를 들어, a[-1] ., a[12:-2] e onc와 같은 방식으로 처리하는 것이다.

 

 

str은 문자열을 의미한다

문자및 특수기호를 포함 -> 프로그래밍코드에 한글로하면 안된다!!!!!!!!!!!

깐깐한 것이 최고의 미덕

 

 


문자열 뒤집기 프로그램 개발하기

 

 

def reverseString(original_string):
    new_string = original_string[::-1]
    return new_string

 

 

assert reverseString("hello") == "olleh"
assert reverseString("world") == "dlrow"
assert reverseString("12345") == "54321"

 

 

나이 계산 프로그램 개발하기

사용자로부터 이름과 나이를 입력 받아서, 10년후와 2098년에서의 나이를 출력하는 프로그램을 만들어 봅니다.
아래의 예시처럼 사용자 이름이 Jane이고 현재 20살인 경우에 결과처럼 출력하는 것입니다.
이를 위해서 calcAge() 함수를 만들고, 입력 파라메타로 1) 현재의 나이와 함께, 2) 현재년도, 그리고 3) 나이를 계산하고 싶은 미래년도를 전달합니다.
calcAge() 함수는 반드시 앞서의 입력 파라메타를 순서대로 받도록 합니다.
calcAge() 함수는 미래년도와 현재년도의 차를 토대로, 미래년도에서의 나이를 계산하여 결과값으로 돌려줍니다.

Hello, what’s your name? Jane
How old are you? 20
Years of this year (ex: 2019) ? 2019

Jane is 20 years old.
Jane becomes 30 years old after 10 years.
Jane becomes 98 years old in 2098.

아래 입력창에 calcAge() 함수와 함께 이 프로그램을 작성하고 실행해 보세요.

 

 

name = str(input(prompt = "Hello, what's your name? "))
current_age = int(input(prompt = "How old are you? "))
current_year = int(input(prompt = "Years of this year? "))

def calcAge(current_age, current_year, future_year):
    return future_year + current_age - current_year -1

print(name," is ",current_age," years old.")
print(name," becomes ",current_age + 10," years old after 10 years")
future_year = int(input( ))
print(name," becomes ",calcAge(current_age, current_year, future_year)," years old in ",future_year)

 

 

 

 

Hello, what's your name? Jane

How old are you? 20

Years of this year? 2019

Jane is 20 years old.

Jane becomes 30 years old after 10 years

2098

Jane becomes 98 years old in 2098

 

 

나이 출력 프로그램 개발하기

 

 

 

사용자로부터 주민등록번호 앞자리를 입력 받아서, "당신의 생일은 OOOO년 OO월 OO일 입니다"라고 출력하는 프로그램을 만들어 봅니다.
이를 위해서, makeBirthdayString() 함수를 개발합니다.
조건문을 배우지 않은 관계로, 모든 사용자는 1900년대에 태어난 것으로 가정합니다.
이 함수는 입력 파라메타로 사용자가 입력한 주민등록번호를 받아서, 출력값으로 "당신의 생일은 OOOO년 OO월 OO일 입니다"과 동일한 문자열을 돌려줍니다.

자가진단을 위하여 아래 예제의 모든 입출력 글자가 정확하게 동일하도록 만들어 보십시오.

주민등록번호 앞자리 6자리를 입력해 주세요: 900216
당신의 생일은 1990년 2월 16일 입니다

아래 입력창에 makeBirthdayString() 함수와 함께 이 프로그램을 작성하고 실행해 보세요.

 

 

personel_number = int(input(prompt="주민번호 앞자리 6자리를 입력해 주세요: "))
def makeBirthdayString(personel_number):
    """
    str->str
    Return the year, month, day of your birth in Korean
    makeBirthdayString(940302)
    당신의 생일은 1994년 3월 2일입니다.
    """
    year=personel_number[0:2]
    month=int(personel_number[2:4])
    day=int(personel_number[4:6])
    return "당신의 생일은 19"+ year + "년 "+str(month)+"월 "+str(day)+"일 입니다."

 

 

쇼핑 총액 계산 프로그램 개발하기

 

 

 

 

마트에서 파는 물품의 종류와 가격이 다음과 같이 주어질때,
사용자에게 위에서 아래의 품목에 대해서 몇개를 구매할 건지 차례대로 물어본 후, 총액을 계산하여 알려주는 프로그램을 만들어 봅니다.
이를 위하여, calcProductSum() 함수를 개발하며, 해당 함수는 상품별 주문 갯수를 표에 적힌 순서대로 입력 받아서, 출력값으로 총액을 돌려줍니다.

품목가격

사과

3000

바나나

2500

멜론

10000

복숭아

5000

포도

4000

아래 입력창에 calcProductSum() 함수와 함께 이 프로그램을 작성하고 실행해 보세요.

In [*]:

 

 

a= int(input(prompt= "apple_num: "))

b= int(input(prompt="banana_num: "))

c=int(input(prompt="melon_num: "))

d=int(input(prompt="peach_num: "))

e= int(input(prompt="grape_num: "))

def calcProductSum(a,b,c,d,e):

    apple = 3000*a

    banana= 2500*b

    melon = 10000*c

    peach = 5000*d

    grape = 4000*e

    return apple+banana+melon+peach+grape

 

 


해당 자료는 경희대학교 소프트웨어융합학과 이성원교수님 수업내용을 참조하였습니다.