-
7.13.목요일/ 초보자를 위한 파이썬300제 중에서TIL( Today I Learned) 2023. 7. 13. 20:56
23-- 아래의 문자열에서 '홀' 만 출력하세요.
string = "홀짝홀짝홀짝" print(string[::2])
- string = "Single sip sip"은 주어진 문자열을 변수 string에 할당합니다.
- string[::2]은 string에서 하위 문자열을 추출하는 슬라이싱 작업입니다. 슬라이싱 표기법 [::2]는 시작, 중지 및 단계의 세 가지 매개변수를 지정합니다. 이 경우 시작 및 중지 매개변수가 생략되므로 슬라이스가 전체 문자열에 걸쳐 있습니다.
- step 매개변수는 2로 설정되어 문자열의 모든 두 번째 문자가 슬라이스에 포함되어야 함을 나타냅니다.
- 결과 부분 문자열은 print() 함수를 사용하여 인쇄됩니다.
024 문자열 슬라이싱
문자열을 거꾸로 뒤집어 출력하세요.
string = "PYTHON" print(string[::-1])string="PYTHON"은 주어진 문자열을 변수 string에 할당합니다.
string[::-1]은 string에서 하위 문자열을 역순으로 추출하는 슬라이싱 작업입니다.
슬라이싱 표기법 [::-1]은 시작, 중지 및 단계의 세 가지 매개변수를 지정합니다.
이 경우 세 매개변수가 모두 생략되어 슬라이스가 전체 문자열에 걸쳐 있습니다.
-1인 'step' 매개변수는 슬라이스가 문자열의 마지막 문자에서 시작하여 역순으로 가져와야 함을 나타냅니다.
025 문자열 치환
아래의 전화번호에서 하이푼 ('-')을 제거하고 출력하세요.
phone_number = "010-1111-2222"
실행 예 010 1111 2222
코드 1
phone_number = "010-1111-2222"
phone_number_without_hyphen = phone_number.replace("-", "")
phone_number_int = int(phone_number_without_hyphen)
print(phone_number_int)코드는 int(phone_number)는 phone_number 문자열을 정수로 변환하려는 시도입니다. phone_number에는 숫자가 아닌 문자(하이픈 "-")가 포함되어 있으므로 직접 정수로 변환하면 ValueError가 발생합니다.
phone_number 문자열에서 하이픈을 제거하고 정수로 변환하려면 먼저 하이픈을 제거한 다음 정수로 변환하면 됩니다. 수정된 코드는 다음과 같습니다.
이 코드에서 phone_number.replace("-", "")는 replace() 메서드를 사용하여 phone_number 문자열에서 하이픈을 제거합니다. 결과 문자열 phone_number_without_hyphen에는 숫자만 포함됩니다. 그런 다음 int(phone_number_without_hyphen)은 이 문자열을 정수로 변환합니다. 마지막으로 결과 정수 값인 phone_number_int가 인쇄됩니다.
정수로 변환하기 전에 하이픈을 제거함으로써 코드는 ValueError를 피하고 성공적으로 전화 번호의 숫자 부분을 정수로 변환합니다.
코드2
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace("-", " ")
print(phone_number1)
코드2는 그냥 하이펀'-'만 제거한 것이다
코드3
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace("-", " ")
print(phone_number1)
print(int(phone_number1))이것은 오류가 된다
그 이유는 010 1111 2222 사이에 공백이 숫자아닌 문자로 인식되기에 ValueError 가 된다
그래서 공백을 무시하고 phone_number1 문자열을 정수로 변환하려면 변환하기 전에 공백을 먼저 제거해야 합니다.
수정된 코드는 다음과 같다.
phone_number = "010-1111-2222"
phone_number1 = phone_number.replace("-", "")
phone_number1 = phone_number1.replace(" ", "")
phone_number_int = int(phone_number1)
print(phone_number_int)
026 문자열 다루기
25번 문제의 전화번호를 아래와 같이 모두 붙여 출력하세요.
실행 예
01011112222코드
p_n = "010-1111-2222"
p_n1 = p_n.replace("-","")
p_n1_int= int(p_n1)
print(p_n1_int)이것은 1011112222가 나오는데 왜 0부터 안나오는 걸까?
그것은
출력 '1011112222'는 주어진 코드 스니펫을 기반으로 예상되는 결과입니다. 선행 0이 나오지 않는 이유는 기본적으로 Python의 정수 값이 선행 0을 유지하지 않기 때문입니다.
p_n.replace("-", "")를 사용하여 전화번호에서 하이픈을 제거하면 결과 문자열 "01011112222"는 선행 0이 없는 숫자 값을 나타냅니다.
그러나 출력에 선행 0을 포함하려면 전화 번호를 정수 대신 문자열로 저장하도록 코드를 수정해야한다.
그래서 수정코드는
p_n = "010-1111-2222"
p_n1 = p_n.replace("-", "")
print(p_n1)
이거슨 정수배열 대신 문자열로 바꾸었기때문에 출력값은
01011112222가 된다.
그러나 또
p_n = "010-1111-2222"
p_n1 = p_n.replace("-", " ") <--------------- 이 부분을 주의, 왜냐면 "" 와 " "는 다르다 ""는01011112222이고
print(p_n1) # Output: 010 1111 2222 " "는 010 1111 2222 이다027 문자열 다루기
url 에 저장된 웹 페이지 주소에서 도메인을 출력하세요.
>> url = "http://sharebook.kr"Copy실행 예: krurl = "http://sharebook.kr"
url_split = url.split('h')
print(url_split[-1])
print(url_split[0])
print(url_split[1])
print(url_split[2])# h를 기준으로 url을 나누어 보았다.
arebook.kr ttp://s arebook.kr코드 r-1string = 'abcdfe2a354a32a'
string.replace("a","A")
print(string)abcdfe2a354a32a코드 r-2
s= string = 'abcdfe2a354a32a'
s1 = s.replace("a","A")
print(s1)Abcdfe2A354A32AIn [121]:코드 r-1와 r-2를 구별해야 한다.문자열은 바꿀수 없다. 그러나 그것을 변수저장한 상태에서는 바꿀수 있다는 이야기가 된다.~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
다시
S-1 코드
lang = 'python'
lang1 = lang.replace("p", "P")
print(lang1)-->Python
S-2 코드
ls = 'python'
ls[0]= "P"
print(ls)-->python
아래 코드S-2는 왜 Python으로 출력이 안돼는걸까?~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
일단 출력을 하려면 문자열은 변경 즉 재 할당이 안된다.
변경한 모습으로 보이려면 리스트를 (list)를 사용해야 한다.
이렇게
ls = list('python')
ls[0] = "P"
ls_modified = "".join(ls)
print(ls_modified)
이 코드에서 list('python')는 문자열 'python'을 개별 문자 목록으로 변환합니다.
결과 목록은 ['p', 'y', 't', 'h', 'o', 'n']입니다.
그런 다음 "".join(ls)을 사용하여 구분 기호로 빈 문자열과 함께 목록의 요소를 결합합니다.
이것은 효과적으로 문자를 단일 문자열로 연결하여 'python'이 됩니다.
마지막으로 문자열 'python'이 ls_modified 변수에 저장되고 출력됩니다.
join() 메서드는 문자열 사이에 사용되는 구분 기호를 제어하여 목록 또는 반복 가능한 문자열을 연결하는 강력한 도구이다.
그래서 join() 메서드에 대해 알아보자
join() 메서드는 Python의 문자열 메서드로, 여러 문자열을 단일 문자열로 결합할 수 있습니다. 문자열 목록(또는 이터러블)을 가져와 지정된 구분 기호를 사용하여 함께 연결한다.
쉬운 예)
my_list = ['Hello', 'World', '!']
joined_string = " ".join(my_list)
print(joined_string)
--> Hello World !
my_list = ['Hello', 'World', '!']
joined_string = " ///".join(my_list)<----" " 대신 "///" 를 넣었다 그 변화는, 즉 공백" " 대신 "///"을 넣었다란 말이다
print(joined_string)-->
Hello/// World/// !'TIL( Today I Learned)' 카테고리의 다른 글
2023.7.15.토요일 // 기초 300제 & 프로그래머스 문제 (0) 2023.07.15 2023.7.14.금요일. 파이썬 기초문제 (0) 2023.07.14 7.12.수요일, 데이타 공부에서 & 프로그래머스 기초문제 풀이 (0) 2023.07.12 7.11.화요일 (0) 2023.07.12 7.10.월요일 - 데이타 오류 경험 (0) 2023.07.10