본문 바로가기

python

6. 문자열, escape

728x90
반응형

33. 문자열 이해하기

→문자열을 나타내는 방법 3가지

1. '문자열'----------> 싱글

2."문자열"---------> 더블

3. """문자열""" -->더블3(여러줄 주석 처리)

 

예제:

data1= 'i am python programer'

data2= "you are a programer"

date3= """i love

                   i love

                   i love"""

data4="my son's name is john"  #문자열에 싱글을 나타내고 싶으면!

data5='name of my son is "john" '  #문자열에 더블을

                                                나타내고 싶으면!

data6= """my son's name is "john" """  #문자열에 싱글,더블을

                                                나타내고 싶으면!

 

                                     

문제90. 문자열 안에 싱글과 더블쿼테이션 마크를 넣고 싶을 어떻게 하는가

 

data6= """my son's name is "john" """

print(data6)


더블 세개 ! """   """

 

 

 

문제91. 아래의 data1~data6 변수에 있는 문자열값을

한번에 출력하시오

 

 

data1= 'i am python programer'

data2= "you are a programer"

date3= """i love

                   i love

                   i love"""

data4="my son's name is john"  #문자열에 싱글을 나타내고 싶으면!

data5='name of my son is "john" '  #문자열에 더블을

                                                나타내고 싶으면!

data6= """my son's name is "john" """  #문자열에 싱글,더블을

                                                나타내고 싶으면!

data7='''my son's name is "john"'''  #작은따옴표 3개도 된다.

data8='my son\'s name is \"john\"'  #백슬래시 뒤의 쿼테이션은 문자로 인식한다.

 

 

 

data1='i am python programer'

data2="you are a programer"

data3=""" i love

          i love

          i love """

 

data4="my son's names is john"    # 문자열에 싱글을 나타내고 싶으면

data5='name of my son is "john"'  # 문자열에 더블을 나타내고 싶으면

print_string = ''

 

for i in range(1,6):

    dt = "data" + str(i)

    print(locals()[dt])

                

설명: locals() : 지역변수의 이름과 값을 확인하는 함수

          globals(): 전역변수의 이름과 값을 확인하는 함수

 

print(locals()[data1])

 

locals()     : 스타벅스의 머그컵(들고나가면 안된다)

globals()  : 스타벅스의 종이컵

             (안에서 먹어도 되고, 들고나가도 된다)

 

지역변수(locals) 함수 내부에서만 유효하고

전역변수(globals) 코드 전반에 걸쳐 유효하다.

  함수의 인자는 지역변수다.

 

94

######################

param=10 #1

strdata='전역변수'#2

 

def func1(): #4

    strdata='지역변수'#5

    print(strdata) #6

   

def func2(param): #8

    param=1 #9

   

def func3(): #11

    global param #12

    param=50     #13

 

func1() #15

print(strdata) #16

print(param) #17

func2(param) #18

print(param) #19

func3()     #20

print(param) #21   

 

 

34. 문자열 포멧팅 이해하기

 "변하는 값을 포함하는 문자열을 표현하기 위해

 하나의 양식으로 문자열을 만드는 "

:

%s : 문자열

%d :  정수

%f :  실수

%% : 기호

 

예제:

'나는 자바보다 파이썬 익숙합니다.'

->자바, 파이썬을 % 이용해서 출력!

 

txt1 = '자바';   txt2='파이썬'

print('나는 %s 보다 %s 익숙합니다.' %(txt1, txt2) )

 

 

문제93. 아래의 변수에 있는 값을 이용해서

아래의 문자를 출력하시오

txt='자바'; txt2='파이썬'

num1=5

결과: 파이썬 자바보다 5 쉽습니다.

 

txt1 = '자바';   txt2='파이썬'

num1=5

print('%s %s보다' %(txt1,txt2), int(num1),'쉽습니다.')

 

문제94. 변하는 값을 포함하는 문자열을 나타내는

아래의 코드를 실행하시오

 

from time import sleep  # time패키지에서 sleep 모듈을

                            #가져와라

for i in range(100):

msg='\r진행률 %d%%' %(100-i-1)

print(msg, end='')

sleep(0.1)

  

 0.1 만큼 잠들겠다.

(그래서 애니메이션 움직이는 것처럼 보인다)

 

※설명: \r  리턴문자 추가하여 msg 변수를 print

         줄바꿈없이 화면에 출력한다.( 자리에서 계속 출력)

 

              print(''*len(msg), end='') msg 길이만큼

         공백문자를 줄바꿈없이 화면에 출력한다.

 

 

문제95. 겨울왕국에서 anna 검색해서 건수를

출력하는 코드를 실행하시오

**readlines()  한문장씩 가져옴.

**read() 통째로 가져와서 list 구분이 안됨.

 

from time import sleep

#다음문장을 위해 쓰신거라함.

file = open("d:\\winter.txt", 'r')

sum=0

for winter_list in file:

a=winter_list.split(' ')

for b in a:

sum=sum+b.lower().count('anna')

print(sum)

 

:685

 

inp=str(input('검색하세요'))

sum=0

file = open("C:\\Users\kight\Desktop\세희쓰\PYTHON\\winter.txt", 'r')

for i in file:

    a=i.lower().split(' ')

    for b in a:

        sum=sum+b.count(str(inp))

print(str(inp),' %d번 입니다' %(sum))

 

 

 

 

 

문제96. 문제94번과 문제95 코드를 조합해서

단어를 물어보게하고 단어를 입력하면

해당 단어의 갯수가 변하는 숫자로 력되어서

나오게 하시오

 

찾고자 하는 단어를 입력하세요 anna

685

 

from time import sleep

 

file = open("d:\\winter.txt","r")

sum = 0

inp = input('찾을 단어 검색: ')

 

for winter_list in file :

    a=winter_list.split(' ')

    for b in a:

        sum+= b.lower().count(inp)

        msg='\r%s 갯수 : %d' %(inp,sum)

        print(msg,end='')

        sleep(0.001)

 

 

파이썬 3 버전의 예

print ("No new line", end=" ");print ("ok?")

 

 

파이썬 3 버전의 경우

줄바꿈 문자를 제거하기 위해서

위와 같이 끝 문자를 지정할 수 있는 end 파라미터를 설정하면 된다. 지정하지 않으면 디폴트로 \n 문자가 세팅된다

( ' ' 널로 지정해줘서 줄바꿈 디폴트가 세팅 안된다)

 

 

 

문제97. 위의 코드를 수정해서 아래와 같이 스크립트도 물어보게 하시오

 

분석할 스크립트를 입력하세요 winter.txt

찾을 단어를 입력하세요 elsa

 

from time import sleep

 

script = input('분석할 대본을 입력하세요.')

file = open('d://%s' %script,'r')

word = input('찾고자 하는 단어를 입력하세요.')

cnt = 0

 

for winter_list in file:

    a = winter_list.split(' ')

    for i in a:

        cnt += i.lower().count(word)

        msg = '\r %d' %cnt

        print(msg, end='')

        sleep(0.001)

 

 

-----------------------------

inp=str(input('검색하세요'))

inp2=str(input('분석할 스크립트를 입력하세요'))

sum=0

from time import sleep

file = open("C:\\Users\kight\Desktop\세희쓰\PYTHON\\%s" %(inp2), 'r')

for i in file:

    a=i.lower().split(' ')

    for b in a:

        sum+=b.count(inp)

        msg='\r %s %d개입니다.' %(inp,sum)

        print(msg, end='')

        sleep(0.0001)

 

 

 

문제98(미리내는 점심시간 문제) 로그함수

(loop 문으로)

로그의 밑수를 입력하세요 2

로그의 진수를 입력하세요 8

3입니다

 

거듭제곱법

a=int(input('밑수를 입력:'))       

b=int(input('진수를 입력:'))

x=0

 

while x<=b:

    x+=1

    if a**x==b:

        print(x)

 

 

진수 나눠서 구하는

a=int(input('밑수를 입력:'))       

b=int(input('진수를 입력:'))

sum=0

x=0

while a<=b:

    if b%a==0:

        b=b/a

        sum+=1

print(sum)

 

 

 

35. 이스케이프 문자 이해하기

*이스케이프 문자

1. \n  : 줄바꾸기

2. \t  :

3. \엔터: 줄계속

4. \\ : \ 기호 자체

 

예제: print('나는 파이썬을 사랑합니다. \n 파이썬은 자바보다 \훨씬 쉽습니다.')


728x90
반응형

'python' 카테고리의 다른 글

★리스트/함수  (0) 2019.03.25
7. 리스트, 튜플, dictionary  (0) 2019.03.25
5. 시퀀스 자료  (0) 2019.03.24
파이썬vs오라클vs판다스 연산자  (0) 2019.03.24
4. 연산자, TRUE/FALSE  (0) 2019.03.24