상세 컨텐츠

본문 제목

[Python 파이썬 독학 2일차]

파이썬 스터디/파이썬-Python 기본편

by 후즈테크 2020. 9. 22. 14:48

본문

반응형

1. 문자열 찾기(index, find)

결과
python = "Python is Amazing"   #변수 선언
print(python.lower()) python is amazing # 소문자
print(python.upper()) PYTHON IS AMAZING # 대문자
print(python[0].isupper()) TRUE # 1번째 글자가 영문 대문자 인지 확인
print(len(python)) 17 #문자 길이
print(python.replace("Python","Java")) Java is Amazing #특정 문자 변경
index = python.index("n")   # 변수 index python이라는 변수에서
"n" 몇번째에 포함되어 있는지 찾아주는 변수.
print(index) 5  
index = python.index("n", index +1 )   #2번째 "n" 찾아주는 변수
print(index) 15  
print(python.find("Java")) -1 해당 값이 없을 경우, -1 출력
print(python.index("Java")) ValueError:
substring not found
해당 값이 없을 경우, 프로그램 종료
print(python.count("n")) 2 #n 나오는지 확인하는 변수 출력

 

 

* .find 와 .index 차이점

=> 둘다 조건이 동일하게 찾아 질 경우에는 결과값이 같으나,

찾지 못 할 경우, find는 -1 값 출력 후, 이후 프로그램 실행,

index는 프로그램을 종료 시킴.

반응형

2. 문자열 포맷

print("a" + "b") # 결과 값 : ab

print("a" , "b") # 결과 값 : a b (띄어 쓰기가 포함됨)

 

* 문자열을 출력하는 방법

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

원하는 결과 값 : 나는 20살입니다.

나는 파이썬을 좋아해요

Apple은 A로 시작해요.

나는 파란색과 빨간색을 좋아해요.

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

 

#방법 1 (%s) 정수형 , 문자형 등 입력 type을 설정해서 출력

print("나는 %d살입니다." % 20) #%d : 정수(int)

print("나는 %s을 좋아해요."% "파이썬") #%s : 문자열(string)

print("Apple 은 %c로 시작해요." %"A") #%c : 문자 1글자(character)

print("나는 %s색과 %s색을 좋아해요." %("파란", "빨간")) # %s에 2개 이상 입력 하는 방법

# %s(문자열)이 정수와 각 각의 글자를 포함하므로, %d 와 %c 대신 %s를 써도 동일한 결과 출력

#방법 2 ( {} ) / 중괄호 사용

print("나는 {}살입니다." .format(20)) # .format 에서 '.' 꼭 찍을 것

print("나는 {}색과 {}색을 좋아해요." .format("파란", "빨간")) # {}에 2개 이상 입력 하는 방법

print("나는 {0}색과 {1}색을 좋아해요." .format("파란", "빨간")) # .format 뒤에 0번째 1번째 값 출력

print("나는 {1}색과 {0}색을 좋아해요." .format("파란", "빨간")) # .format 뒤에 1번째 0번째 값 출력

#방법 3 ({변수}~~ .format(변수=변수 값) .변수 처럼 중괄호 값을 사용 할 수 있음)

print("나는 {age}살이며, {color}색을 좋아해요." .format(age=20, color="빨간"))

print("나는 {age}살이며, {color}색을 좋아해요." .format(color="빨간", age=20))

#변수처럼 선언되기 때문에 순서 상관없음

#방법 4 (Python ver 3.6이상 사용 가능) 변수 선언 후, 사용

age =20

color ="빨간"

print(f"나는 {age}살이며, {color}색을 좋아해요." ) # 실제 선언된 변수의 값을 이용함

3. 탈출문자

- 역슬러쉬(\)를 포함한 탈출문자를 이용하여 문장 내 수정 및 원하는 결과 값 출력

 

탈출문자
\n 문장(결과 ) 내에서 줄바꿈(Enter) 사용
코딩 :
print("백문이 불여일견 \n백견이 불여일타")
결과 :
백문이 불여일견
백견이 불여일타
\" 문장(결과 ) 내에서 쌍따옴표("), 따옴표(') 사용
코딩 :
print("저는 \"나도코딩\" 입니다.")
print("저는 \'나도코딩\' 입니다.")
결과 :
저는 "나도코딩" 입니다.
저는 '나도코딩' 입니다.
\\ 문장(결과 ) 내에서 역슬러쉬(\) 사용, 경로 표기 사용.
코딩 :
print("C\\Users\\Admin\\Desktop")
결과
C\Users\Admin\Desktop
\r 문장(결과 ) 입력 , 탈출 문자에 따라 커서가 가장 앞으로 이동 , 덮어쓸 사용
코딩 :
print("Red Apple \rPine")
결과
PineApple
1. Red Apple # 좌측부터 Red Apple 입력
2. 탈출문자(\r) 따라 커서 가장 앞으로 이동
3. 앞에서 부터 Pine 입력('Red ' 띄어쓰기 포함 4Byte 덮어씀)
\b 문장(결과 ) 내에서 한칸 지움(Back Space) 사용
코딩 :
print("Redd\bApple")
결과
RedApple
\t 문장(결과 ) 내에서 Tab 사용
코딩 :
print("Red\tApple")
결과
Red Apple

 

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

Quiz 3.사이트 별로 비밀번호를 만들어 주는 프로그램을 작성하시오.

예) http://naver.com

규칙 1 : http:// 부분은 제외 => naver.com

규칙 2 : 처음만나는 점(.) 이후 부분은 제외 => naver

규칙 3 : 남은 글자 중 처음 세자리(nav) + 글자 갯수(5) + 글자 내 'e' 갯수 (1) + "!"로 구성

예) 생성된 비밀번호 : nav51!

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

 

Ans 1. 내가 작성한 코딩

web = "http://naver.com"

​

print(web)

​

​

print(web.replace("http://","")) # 규칙 1. http:// 제거

print(web.replace("http://","").find(".")) #규칙 2-1 . 위치 찾기 5

print(web.replace("http://","")[:5]) #규칙 2-2 . 위치 앞으로 슬라이싱

​

web1 = web.replace("http://","")[:5] # naver

web2 = web1[:3] # nav

length1 = len(web1) # length(길이) 5

count1 = web1.count("e") # count("e" 갯수 확인) 1

​

print(web1)

print(web2)

print(length1)

print(count1)

​

print(web2+str(length1)+str(count1)+"!")

 

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

 

 

Ans 2. "나도코딩" 님 답안

url = "http://naver.com"

my_str = url.replace("http://","") # 규칙 1

#print(my_str)

my_str = my_str[:my_str.index(".")] # 규칙 2

#my_str[0:5] -> 0 ~ 5 직전까지. (0, 1, 2, 3, 4)

#print(my_str)

password = my_str[:3] + str(len(my_str)) + str(my_str.count("e")) + "!"

print("{0}의 비밀번호는 {1} 입니다." .format(url, password))

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

답안 비교 Feedback

1. 변수 선언 시 1개 변수로 유지

나의 경우, 'http;//' 와 '.com' 제거를 위해 2개의 변수를 이용하였으나,

web1 = web.replace("http://","")[:5] # naver

web2 = web1[:3] # nav

나도코딩 님은

my_str = url.replace("http://","") # 동일한 my_str 이라는 변수를 규칙 1 적용 시 , 1번

#print(my_str) : naver.com

my_str = my_str[:my_str.index(".")] # 규칙 2 적용 시, 2번 사용하여 변수 갯수를 줄임.

#print(my_str) : naver

2. "." 의 위치를 찾고 수동으로 5를 입력하여 슬라이싱 범위를 설정하였으나,

print(web.replace("http://","").find(".")) #규칙 2-1 . 위치 찾기 5

print(web.replace("http://","")[:5]) #규칙 2-2 . 위치 앞으로 슬라이싱

"나도코딩" 님 코딩은 슬라이싱 범위에 명령어를 적용함

my_str = my_str[:my_str.index(".")] # 규칙 2

스스로 코딩 후, 전문가의 코딩과 비교해 보니 결과는 같으나, 확실한 센스의 차이를 느꼈다....

유튜버 '나도코딩' 님의 영상을 보며 공부 및 노트 작성합니다.

 

함께 공부해 나가실 분은

www.youtube.com/watch?v=kWiCuklohdY&feature=youtu.be

 

 

반응형

관련글 더보기

댓글 영역