whatisthis?
Phython. 파이썬 코딩 기초편-03 본문
문자열 / 슬라이싱 / 문자열 처리함수 / 포맷(format)
<Day 02 Quiz>
당신은 코딩 스터디 모임을 새로 만들었다.
월 4회 스터디를 하는데, 3번은 온라인으로 하고 1번은 오프라인으로 한다.
아래 조건에 맞는 오프라인 모임 날짜를 정해주는 프로그램을 작성하시오.
조건1 : 랜덤 날짜여야함.
조건2 : 한달은 28일로 정함.
조건3 : 매월 1-3일은 스터디 준비를 해야하므로 제외한다고 침.
from random import *
date = (randint(1, 25) + 3)
date2 = (int(random() * 25) + 4) # 4 ~ 28일까지 출력
date3 = (randrange(1, 26) + 3) # 4 ~ 28일
print("오프라인 스터디 모임 날짜는 매월 " + str(date) + "일로 선정되었습니다.")
print("오프라인 스터디 모임 날짜는 매월", date , "일로 선정되었습니다.")
print("오프라인 스터디 모임 날짜는 매월 " + str(date2) + "일로 선정되었습니다.")
print("오프라인 스터디 모임 날짜는 매월 " + str(date3) + "일로 선정되었습니다.")
총 3가지 경우로 작성했다. 1. randint(시작,끝) + a 이용 2. int(random() * 끝값 ) + a ) 이용 3. randrange(시작, 끝+1) + a 이용 또한 변수를 출력할때도 date값이 정수, 즉 숫자이므로 str()함수를 이용한 것과 (+로 연결) str 없이 변수이름만 이용한것 (,로 연결) 총 두가지로 작성함. |
< 답안 >
내가 작성한 코드의 문제점 -> 왜 굳이 randint(1,25) + 3을 했는가?
int(random() * 끝값) 의 경우에만 뒤에 플러스를 해주고
randrange랑 randint는 애초에 시작값을 0이 아닌 다른 값으로도 할 수 있다.
실행 결과는 같지만, 간결한 코드를 작성하려고 노력해보자. ☆☆
1. 문자열 (string)
sentense = 'thisisyjin 이라고 합니다'
print(sentense)
sentense2 = "파이썬을 공부중 입니다"
print(sentense2)
sentense3 = """
저는 thisisyjin이고,
파이썬을 공부중 입니다.
"""
print(sentense3)
각각 변수(sentense, sentense2, sentense3)에 문자열을 입력한다.
' ' 작은따옴표
" " 큰따옴표
""" """ 큰따옴표 * 3개 = 여러 줄 입력시
2. 슬라이싱
jumin = "990120-1234567"
print("성별 : " + jumin[7])
print("년도 : " + jumin[0:2]) # 0부터 2직전까지
print("월 : " + jumin[2:4]) # 2부터 4직전까지
string변수의 경우에는 N번째 글자를 가져오기 위해
__(변수명)__[N-1] 을 입력하면 된다.
N-1인 이유는 첫번째 자리를 0번지로 보기 떄문.
즉, jumin 변수의 8번째 글자를 가져오기 위해선 print( jumin[7] ) 을 입력.
시작값이 0이면 > 0은 생략해도 좋다. 예> jumin[:6] = 처음부터 6번째 직전까지. |
끝값이 끝까지라면 > 생략해도 좋다. 예> jumin[7:] = 7번째자리부터 끝까지. |
만약 값을 거꾸로 불러오려면? > ' - ' 를 앞에 붙인다. 예> jumin[-7:] = 7번째부터 끝까지의 값을 거꾸로 ** 단, [0:6]이나 [:6] 같은 경우엔 안먹힌다. |
3. 문자열 처리함수
python = "Python is Amazing"
print(python.lower())
print(python.upper())
print(python[0].isupper()) # python변수의 첫글자가 대문자면 true
print(len(python)) # 문자열 길이 반환
print(python.replace("Python", "Java")) # replace("찾을문자","바꿀문자")
index = python.index("n")
print(index) # python변수에서 n글자가 몇번째에 위치했는지
index = python.index("n", index + 1) # 변수명.index("찾을문자", 시작위치)
print(index) # 그 다음으로 몇번째로 위치했는지
print(python.find("n"))
print(python.find("Java")) # find에서는 없는 문자 검색시 -1을 반환함
print(python.index("Java")) # index에서는 없는 문자 검색시 에러
print(python.count("n") # 해당 문자가 몇번 등장하는지 카운트
1) 변수명.lower() = 소문자로 / .upper() = 대문자로
2) 변수명[0].isupper() = 변수의 0번째 값이 대문자인지 True/False
3) len(변수명) = 문자열 길이
4) 변수명.replace("찾을문자", "바꿀문자")
5) 변수명.index("찾을문자", 시작위치) = 변수로 지정하여 print(index) 해주면 해당 문자가 몇번째로 위치한건지 나옴.
시작위치는 처음부터 검색하면 생략 가능함. 그러나 두번째 값을 찾고싶다면 index+1을 시작값으로 해주면 됨.
6) 변수명.find("찾을문자") = index와 같은 기능임.
find("찾을문자") | 없는 문자 검색시 -1을 반환 |
index("찾을문자") | 없는 문자 검색시 에러 발생 (해당 코드 이후의 코드들은 다 실행X) |
7) 변수명.count("찾을문자") = 변수에 해당 문자가 몇번 등장하는지 카운트
4. 문자열 포맷
print("a" * 3) # aaa
print("a" + "b") # ab
print("a" , "b") # a b
+는 띄어쓰기 없고,
,는 띄어쓰기가 포함되어있다.
< 방법 1 > % 이용하기
print("나는 %d살 입니다." % 22) # %d는 정수
print("나는 %s을 좋아합니다." % "파이썬") # %s는 문자열
print("Apple은 %c로 시작합니다." %"A") # %c는 캐릭터, 문자(한 글자만)
%d | 정수 (Decimal) |
%s | 문자열 (String) |
%c | 문자 (Character |
< 방법 2 > 중괄호 { } 와 .format( ) 이용하기
print("나는 %d살 입니다." % 22)
print("나는 {}살 입니다.".format(22))
두 코드의 값은 정확히 일치한다.
>> print(" 나는 {}살 입니다. ".format(22))
print("나는 {}와 {}를 좋아합니다.".format("html","css"))
2개 입력시 중괄호 2개, format("___", "___")
** 중괄호{} 안에 숫자를 입력할 수 있다.
이 또한 .format()에 나오는 첫번째 값을 0으로, 그 다음값을 1로 표현한다.
print("나는 {0}와 {1}를 좋아합니다.".format("html","css"))
print("나는 {1}와 {0}를 좋아합니다.".format("html","css"))
만약 위와 같이 0과 1의 위치를 바꾸게 되면, 출력 또한 순서가 바껴서 나오게된다.
< 방법 3 > .format()안에서 변수 선언
print("나는 {age}살이며, {color}색을 좋아해요".format(age = 22, color = "파란"))
변수처럼 format안의 값을 가져다 쓸 수 있음.
< 방법 4 > 변수를 직접 선언하되, print문 내에서 f로 문장 시작.
age = 22
color = "파란"
print(f"나는 {age}살이며, {color}색을 좋아해요")
>> print( f " {변수명} " )
5. 탈출 문자
1. 줄바꿈
print("백문이 불여일견\n백견이 불여일타")
> 두줄에 걸쳐서 나오게 (즉, 한줄 띄기)
2. 문장에 ""가 있는 경우
다음과 같이 문장에 " " 가 포함된 경우 print문을 감싸는 ""와 혼동되어 오류가 발생한다.
이때, \" 으로 감싸주면 해당 부분은 " " 그대로 출력이 된다.
+) 작은따옴표도 마찬가지 ( ' )
3. 역슬러시(\\) 두개 입력시 = 문장 내에서 \
4. \r = 커서를 맨 앞으로 보낸 후 덮어쓰듯이 작성
print("Red Apple\rPine")
<결과> PineApple
(즉, 커서를 맨 앞으로 이동해서 Pine을 작성)
5. \b = backspace (한글자 지움) / \t = tab
print("Redd\b Apple") # \b = backspace
print("Red\tApple") # \t = tab
<Quiz>
사이트별로 비밀번호를 만들어주는 프로그램.
<규칙>
1. http:// 부분은 제외 -> naver.com
2. 처음만나는 점(.) 이후 부분은 제외 -> naver
3. 남은 글자중 처음 세자리 + 글자갯수 + 글자 내 'e'갯수 + "!"로 구성
(nav) (5) (1) (!)
예 > nav51!
(1:17:13)
'WEB STUDY > PHYTHON | BACK-END' 카테고리의 다른 글
Phython. 파이썬 코딩 기초편-06 (4) | 2021.09.15 |
---|---|
Phython. 파이썬 코딩 기초편-05 (2) | 2021.09.14 |
Phython. 파이썬 코딩 기초편-04 (5) | 2021.08.31 |
Phython. 파이썬 코딩 기초편-02 (2) | 2021.08.27 |
Phython. 파이썬 코딩 기초편-01 (1) | 2021.08.24 |