본문 바로가기
#단편모음/낱 장

[혼공파] C02 자료형_230511木

by taeni 2024. 4. 16.

 

직접 해보는 손코딩 따라하기 + 챕터- 의 소단원의 마무리의 확인문제의 코딩 직접작성하기 

 

02-1 자료형과 문자형

 
앞에서부터 선택 [0] [1] [2] [3] [4]
뒤에서부터 선택 [-5] [-4] [-3] [-2] [-1]

[ ] 기호를 이용해 문자열의 특정 위치에 있는 문자 참조하는 것을 인덱싱 indexing 이라고 하고, 

[:] 기호를 이용해 일부를 추출하는 것을 슬라이싱slicing 이라고 합니다.

 

 

(왼쪽사진)

오류 발생하면 밑에 정상적인 코드들도 진행하지 않고 

오류난 지점에서  맥혀버림.

 

#확인4 👉 파이썬은 문자 선택 연산자에서 인덱싱할 때 0부터 셉니다.   👉 안녕하세요. 5글자 니까 5-1 = [0부터:4까지]

IndexError: string index out of range

인덱스의 범위를 넘어가는 인덱싱을 할 때는 오류를 발생합니다.   

 

 

02-2 숫자 자료형과 문자형

  • 소수점이 없는 숫자 : 0, 1, 273, -52 👉 정수(integer)
  • 소수점이 있는 숫자 : 0.0 , 52.273 , -1.2 👉 실수(floating point, 부동 소수점)

네이버 지식백과 : 네이버캐스트, "사칙연산"    https://terms.naver.com/entry.naver?docId=3567720&cid=58944&categoryId=58970 

 

사칙연산

111+1×2를 계산하면, 곱셈을 덧셈보다 먼저 하니까 113이 정답이다. 그런데 이걸 왼쪽부터 차례대로 계산해서 224가 답이라고 우기는 사람도 있다. 그러고 보니 왜 덧셈보다 곱셈을 먼저 하도록 규

terms.naver.com

https://zomzom.tistory.com/4123

 

사칙연산 계산 순서가 괄호→곱셉,나눗셈→덧셈,뺄셈인 진짜 이유

전국민 중 대부분이 아마 '수학'이라는 말을 듣는 순간 인상을 구길 거에요. 학창 시절에 수학 때문에 머리 아팠고 고생했던 안 좋은 기억이 모두 하나씩은 다 있을 거니까요. 그래서 수많은 사

zomzom.tistory.com

ㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋㅋ

 

02-3 변수와 입력

변수(變數) = 변할수 있는 자료, 숫자 뿐만 아니라 모든 자료형을 의미.

파이썬에서는 변수를 생성하는 그 자체가 사용하겠다고 선언하는 것. 변수에는 모든 자료형의 값을 저장可

 

첫째, 변수를 선언하는 방법 : 변수를 생성하는 것    ex. 3.14159265.... 라는 원주율의 값을 π라는 기호로 정의하듯이, pi를 "사용하겠댜"라고 선언하는 것

 

둘쨰, 변수에 값을 할당하는 방법

변수에 값을 넣는 것을 의미.  π=3.14159265...이듯이 변수로 사용하겠다고 선언한 pi에 값을 넣는 것, 즉 pi=3.14159265...

이때 = 기호는 '같다'는 의미가 아닌 우변의 값을 좌변에 '넣겠다','할당하겠다'라는 의미입니다. 

= 할당연산자

 

셋째, 변수를 참조하는 방법

변수에서 값을 꺼내는 것을 의미     ...  (중략)...   

변수 안에 있는 값을 사용하는 것을 '변수 참조'라고 합니다.  ex. 계산할 때 값인   3.1415926를 일일히 작성하지 않고 pi, π 기호를 작성해서 원의 둘레, 원의 넓이를 구하는 공식에 사용하는 것.

 

변수 만들기/사용하기

82쪽 입력 자료형 확인하기     -  type()

input()함수로 자료를 입력받은 후 입력받은 것과 숫자를 더하는 코드를 작성하려고 하면

위 결과 사진 같은 문제점이 발생하게 된다.

  • 가운데 사진(진리값 True 를 문자열 로 취급.)
  • 오른쪽 사진(숫자값 30을 문자열로 취급.)

문제 원인 : 문자열은 문자열끼리 연산해야 하고, 숫자는 숫자끼리 연산해야 하기 때문이다.

 

 

복합 대입 연산자

연산자 이름  설명
+= 숫자 덧셈 후 대입, 문자열 연결 후 대입
-= 숫자 뺄셈 후 대입
*= 숫자 곱셈 후 대입, 문자열 반복 후 대입
/= 숫자 나눗셈 후 대입
$= 숫자의 나머지를 구한 후 대입
**= 숫자 제곱 후 대입

 

사용자 입력:input()

입력받은 값 30과 100을 더하고자 한 것이었으나 input()함수로 입력받은 자료는 모두 문자열로 저장되므로 "30"+100이 되어 문자열과 숫자는 더할 수 없어 발생한 에러이다. 

TypeError: can only concatenate str (not "int") to str   

👉 입력받은 문자열을 숫자로 변환해야 숫자 연산에 활용할 수 있다는 메시지이다.

 

문자열을 숫자로 바꾸기    

 

ValueError 에외

 자료형을 변환할 때 ' 변환할 수 없는 것'을 변환하려고 하면 ValueError 예외가 발생합니다.

이 예외가 발생하는 경우는 2가지가 있습니다.

 

  • 첫째, 숫자가 아닌 것을 숫자로 변환하려고 할 때
  • 둘째, 소수점이 있는 숫자 형식의 문자열을 int()함수로 변환하려고 할 때

숫자를 문자열로 바꾸기

str(다른 자료형) : 다른 자료형의 값을 str()함수의 매개변수에 넣으면 문자열로 변환된다.

⭐ input()함수의 입력 자료형은 항상 문자열이기 때문에 입력받은 문자열을 int()혹은 float()함수를 사용해 숫자로 변환해야 숫자 연산에 활용할 수 있습니다.

 

 

 

02-4 숫자와 문자열의 다양한 기능

문자열의 format()함수

format()함수로 숫자를 문자열로 변환하기

 

format()함수는 문자열이 가지고 있는 함수입니다. 중괄호{}를 포함한 문자열 뒤에 마침표(.)를 찍고 format()함수를 사용하는데, 중괄호의 개수와 format 함수 괄호 안 매개변수의 개수는 반드시 같아야 합니다. 

숫자10의 자료형 ☞ 문자열 10 로 변환

앞쪽에 있는 문자열의 {}기호가 format()함수 괄호 안에 있는 매개 변수로 차례로 대치되면서 숫자가 문자열이 되는 것입니다.

 

문자열의 format()함수

{}기호의 개수가 format함수의 매개변수 개수보다 많으면 IndexError예외가 발생

(    {}기호의 개수 > format함수의 매개변수 개수   )

 

format()함수의 다양한 기능 

{: d} d에 공백을 두면 양수의 경우에 기호 위치를 공백으로 비워줍니다.

 

 

부동 소수점 출력의 다양한 형태

 

의미 없는 소수점 제거하기 

기호 위치를 공백으로 비워줍니다.

 

대소문자 바꾸기 : upper()와 lower()

upper()함수는 문자열의 알파벳을 대문자로 만든다.

lower()함수는 문자열의 알파벳을 소문자로 만든다.

 

✔️비파괴적 함수

upper()함수와 lower()함수를 이용하면 a 의 문자열이 바뀔 것으로 생각하는데, 절대로 원본은 변하지 않는다는 것을 기억하세요👉이렇게 원본을 변화시키지 않는 함수를 '비파괴적 함수'라고 부릅니다.    (이와 반대되는 파괴적 함수는 4장에서 알아보도록 하겠습니다.)

 

문자열 양옆의 공백 제거하기: strip()

upper()함수는 문자열의 알파벳을 대문자로 만든다.

  • strip() : 문자열 양옆의 공백을 제거합니다.
  • lstip() : 문자열 왼쪽의 공백을 제거합니다.  (거의 사용 △)
  • rstrip() : 문자열 오른쪽의 공백을 제거합니다. (거의 사용 △)

문자열의 구성 파악하기 : isOO()

 

  • isalnum() : 문자열이 알파벳 또는 숫자로만 구성되어 있는지 확인합니다.
  • isalpha() : 문자열이 알파벳으로만 구성되어 있는지 확인합니다.
  • isidentifier() : 문자열이 식별자로 사용할 수 있는 것인지 확인합니다.
  • isdecimal() : 문자열이 정수 형태인지 확인합니다.
  • isdigit() : 문자열이 숫자로 인식될 수 잇는 것인지 확인합니다.
  • isspace() : 문자열이 공백으로만 구성되어 있는지 확인합니다.
  • islower() : 문자열이 소문자로만 구성되어 있는지 확인합니다.
  • isupper() : 문자열이 대문자로만 구성되어 있는지 확인합니다.

문자열 찾기 : find()와 rfind()

문자열 내부에 특정 문자가 어디에 위치하는지 확인할 때 사용합니다.

  • find() : 왼쪽부터 찾아서 처음 등장하는 위치를 찾습니다.성되어 있는지 확인합니다.
  • rfind() : 오른쪽부터 찾아서 처음 등장하는 위치를 찾습니다.

문자열과 in연산자

문자열 내부에 어떤 문자열이 있는지 확인하려면 in연산자를 사용합니다.

출력은 Boolean값(True-맞다, False-아니다)라고 나옵니다.

 

문자열 자르기 : split()

문자열을 특정한 문자로 자를 때는 split() 함수를 사용합니다.

실행결과로 리스트가 나오게 됩니다.