Python 기초정리

11558 단어 pythonpython

Print?


파이썬에서 화면에 출력을 하고자 할때는 print 명령어를 사용할 수 있다.
예를 들어, "Hello World!"를 출력하고자 할때 다음 코드를 실행하면 된다.

print("Hello Wolrd!")

print의 정확한 문법은 다음과 같다.

1. print라는 function(함수) 이름이 위치

2. 괄호가 위치

3. 괄호 안에 따옴표가 위치

4. 마지막으로 따옴표 안에 출력하고자 하는 string(문자열) 위치


string

문자열을 나타내는 data type.

두개의 따옴표("")사이에 있는 문자열을 string이라 한다. 파이썬이 string을
출력할 때 따옴표들은 제외하고 출력하게 된다. 따옴표들은 단순히 print의
괄호 안에 들어가는 값들이 string이라고 알려주는 역할을 할 뿐 이다.

화면에 "Hello World!"라는 string을 출력하려면 다음과 같은 코드를 작성하면된다.

print("Hellow World!")

Data Types

Data Types은 해당 데이터가 숫자인지 문자인지 등의 타입을 이야기 한다.
예를 들어, 숫자 2와 문자열 "2", 그리고 소수점 숫자 2.0은 사람에게는 문맥상
같은 의미를 가지지만 컴퓨터에게는 3개가 전부 다른 의미를 가진다.
따라서 정확한 data type의 값을 지정하는것이 중요하다.

파이썬에서는 다음과 같은 데이터 타입들이 존재한다.

string(문자열)

큰따옴표("")안에 있는 글자들은 string 이다.
ex)"안녕하세요", "Hello World!", "100"

Integer(정수)

정수 값을 의미한다.
ex)1, 2, 100

Float(소수)

소수점 숫자를 의미한다.
ex)2.0, 3.7, 9.99

Complex Numbers(복소수)

실수와 허수를 포함하고 있는 복소수를 의미한다.
파이썬에서는 j를 사용하여 허수를 표현한다.
ex)1+3j, 2-4j

Boolean(비교)

True나 False 이 2가지 값만 가지고 있으면 조건문에서 많이 사용한다.
ex) 1 == 1 -> True
2 == 3 -> False
3 == "3" -> False(Data type이 틀리기 때문에 False가 리턴)


Variables for Strings

파이썬에서 variables(변수)는 데이터의 별명(식별자)라고 생각하면 된다.

ex) 제 이름은 최창현 입니다.
제 성별은 남자 입니다.

위 두 문장을 읽으면 다음과 같이 이해된다.

이름 = 최창현
성별 = 남자

파이썬에서 variables(변수)는 위의 "이름" 그리고 "성별"과 같은 역할을 한다.
즉, 어떠한 특정값을 저장하고 있는 '명사'라고 생각하면 된다.

위의 두 문장을 파이썬으로 표현하면 다음과 같다.

name = "최창현"
gender = "남자"

여기서 variable은 name 과 gender 이고 "최창현"은 name 변수가 나타내는 값이며,
마찬가지로 "남자"는 gender 변수가 나타내는 값이다. 이름이라는 단어가 나타내는 값은 사람마다 다를 수 있듯이 파이썬에서 변수도 다른 값으로 바뀔 수 있다.

다음 처럼 name 변수와 gender 변수의 값을 다르게 바꿀 수 있다.

name = "아이유"
gender = "여자"

위에서 보았듯이 파이썬에서 변수는 = 기호의 왼쪽에 위치하고 입력 값은 = 기호의
오른쪽에 위치한다. 그리고 = 기호는 "assignment"즉 값 지정을 뜻한다.

변수가 지정되면 파이썬은 변수의 실제 값을 자동으로 적용한다.
예를 들어, print 문에 실제 string 값을 적용한 대신에 변수를 사용할 수 있다.

name = "최창현"
print(name) ## "최창현" 출력

한가지 참고 해야 할 점은, 실제 문장에서는 특정 단어가 뜻하는 문맥이 존재하지만 파이썬은 그러한 문맥이 없다는 점이다.

예를 들어, name 이라는 단어는 이름을 뜻하는 단어 이기 때문에 자동차를 가리키면서
"that's my name"이라고 할 수 없지만 파이썬에서는 그러한 문맥이 없기 때문에
name이라는 변수에 "car"라는 값을 지정할 수 있다.

name ="car"

변수 이름 법칙

변수 이름을 정하는 것에도 법칙이 있다.

  1. 변수 이름은 영어 알파벳과 숫자 그리고 underscore(_)으로만 구성해야 한다.
  2. 변수 이름 첫글자는 알파벳이나 underscore(_)로만 시작해야 한다.
  3. 숫자로 시작될 수 없다.
  4. 영어 알파벳은 대문자와 소문자가 구분 된다.
  5. 올바른 변수 이름: name, _name, my_name, myName
  6. 잘못된 변수 이름: 7name, my name

Variables For Numbers

변수에 저장할 수 있는 값(value)은 string 뿐만 아니라 다음 처럼 숫자 값도 저장할 수 있다.

age = 27
print(age) ## 출력 27
  

! 숫자를 변수에 저장할 때 만일 따옴표를 사용함녀 숫자가 아니라 string로 인식하게 된다.

다음과 같은 코드를 실행시키면 에러가 발생한다.

age = "23"
next_year = age + 1

print(next_year)

#출력(에러 발생)
Traceback (most recent call last):
	File "python", line 2, in <module>
TypeError: must be str, not int

변수 age의 값이 숫자가 아니라 string 인데 거기에 숫자 1을 더하는 연산을 하려고 하니 string은 숫자 연산이 안되기 때문에 에러가 나는 것이다.

age의 값을 string이 아닌 숫자로 변경하면 코드가 정상 작동한다.

age = 23
next_year = age + 1

print(next_year)

#출력(에러 발생)
24

가능한 숫자 타입

숫자 값은 integer(정수) 이외에도 floating(부동 소수점), 음수 값도 가능하다.

price = 24.90
stock_profit_percentage = -10

Math Expressions - Add(1)

add 함수를 다음과 같은 조건으로 작성해보자.

  1. int_sum이라는 변수가 선언되어 있다.
  2. 변수 int_sum은 + 연산자를 사용하여 두 숫자를 더한 값이 할당되어 있다.
  3. 변수 int_sum의 숫자의 조합을 바꾸어 리턴값이 15가 되게 해보자.

add(); # --> 15

def add():
	int_sum = 3 + 12;
    return int_sum;

print(add())

위의 코드를 실행하면 15가 출력되는것을 확인할 수 있다.


Math Expressions - Add(2)

기본 수학연산 표현해보기.


+(더하기)

num1 = 7
num2 = 10
num3 = num1 + num2 # 17

num3의 값은 7 + 10, 즉 17이 된다.


-(빼기)

num1 = 7
num2 = 10
num3 = num2 + num1 # 3

num3의 값은 10 - 7, 즉 3이 된다.


*(곱하기)

num1 = 7
num2 = 10
num3 = num1 * num2 # 70

num3의 값은 10 * 7, 즉 70이 된다.


/(나누기)

num1 = 7
num2 = 10
num3 = num1 / num2

num3의 값은 7 / 10, 즉 0.7이 된다.


Math Expressions - Divide

devide 함수를 다음과같은 조건으로 작성한다.

  1. 파이썬에서는 / 연산자를 사용하여 나누기를 실행할 수 있다.
  2. 하지만, 파이썬3에서는 자바스크립트와 다르게 자동으로 결과값에 대해 형변환을 한다.
    ex) 66 / 2 = 33.0
  3. 함수는 66 나누기 2 의 결과가 최초 전달값인 정수형으로 리턴되어야 한다.
  4. 그러기 위해서 파이썬에서는 나누기의 결과 값에 대해 몫만 제공하기 위해 //를 제공하고 있다.
  5. result라는 변수가 있고 66 나누기 2의 값이 할당되어 있다.
  6. 2이라는 숫자를 바꾸어 divide 함수의 리턴값이 6이 되도록 한다.

ex) divide(); // --> 6

작성한 코드는 다음과 같다.

def divide():
    result = 66//10
    return result
    
출력
6

Increment a Number

Increment 함수를 다음과 같은 조건으로 작성한다.

  1. 파이썬 증감 연산자는 일반적인 ++과 다르게 += 연산자를 사용한다.
  2. my_int의 값을 1증가시켜야한다.
  3. increment 함수의 리턴값은 84가 되어야 한다.

예시는 다음과 같다.

my_int = 10
my_int += 1
print(my_int)

#출력
11

작성한 코드는 다음과 같다.

def increment():
	my_int = 83
    my_int += 1
    
    return my_int
    
my_int()

#출력
84

Decrement a Number

decrement 함수를 다음과 같은 조건으로 작성한다.

  1. -= 연산자를 사용하여 변수의 값을 1 감소시킬 수 있다.
  2. 변수 num1과 num2가 이미 정의 되어 있다.
  3. num1의 값은 1 증가시키고, num2의 값은 1 감소시켜 함수의 리턴값이 "pass"가 되게 한다.

예시는 다음과 같다.

number = 10
number -= 1
print(number)

#출력
9

작성한 코드는 다음과 같다.

def decrement():
	num1 = 11
    num2 = 44
    
    num1 += 1
    num2 -= 1
    
    if num1 == 12 and num2 == 43:
    	return "Pass";
    else:
    	return "Try Again";

decrement();

#출력
Pass

Finding a Remainder

python 산술연산자에는 기본적인 +,-,*,/,// 외에도 (%) 연산자가 있다.
%를 사용하여 다음과 같은 조건을 가진 find_remainder 함수를 작성한다.

  1. remainder 변수에 % 연산자를 사용한 값을 할당한다.
  2. find_remainder 함수의 리턴 값은 1이 되어야 한다.
def find_remainder():
	number = 6
    remainder = number % 5
    
    return remainder

find_remainder()

#출력
1

Advanced Math Expressions

파이썬은 기본적인 수학 연산 표현 이외에도 다음과 같은 상급 수학 연산 표현 또한 지원한다.

%

%는 modulo operator 라고 하며, 나누기의 나머지 값을 계산할때 사용한다.
예를 들어 , 10% 3 은 1을 리턴한다.

print(10 % 3)

#출력
1

+=

만약 어떠한 변수의 값에 1을 더하고 싶다면 다음과 같이 구현한다.

num1 = 10
num1 = num1 + 1

위의 방식도 문제는 없지만, 대신 변수 이름을 2번 반복해서 입력해야 한다는 점이
번거로울 수 있다. 그래서 파이썬에서는 위와 같이 어떠한 변수에 값을 더하여 동일한 변수에
저장하는 것을 더 짧은 방식으로 표현할 수 있도록 지원한다.

num1 = 10
num1 += 1
print(num1)

#출력
11

-=

-=는 +=와 비슷하지만 더하기 대신 빼기를 실행한다.

num1 = 10
num1 -= 1

print(num1)

#출력
9

*=

*=는 곱하기를 실행한 후의 값을 변수에 저장한다.

num1 = 10
num1 *= 2
print(num1)

#출력
20

/=

/=는 나누기를 실행한 후의 값을 변수에 저장합니다.

num1 = 10
num1 /= 2
print(num1)

#출력
5

**

** 는 수학에서 멱법(Exponentiation)을 구할때 사용한다.
예를 들어, 10의 2승은 다음과 같이 구현할 수 있다.

num1 = 10 ** 2
print(num1)

#출력
100


Order of Arithmetic Operators

파이썬(그리고 일반적으로 다른 프로그래밍 언어도 마찬가지)을 사용하여 수학 연산을 할 때
조심해야 할 점이 있다. 그건 바로 어떠한 연산을 하느냐에 따라 실행되는 순서가 달라질 수 있다는 점이다.

다음의 코드를 예로 든다.

result = 10 + 20 * 3

result의 값을 90이라고 생각할 수 있지만, result의 값은 70이다.
결과 값이 70인 이유는 이 +보다 먼저 실행되기 때문이다. 즉, 20 3이 먼저 실행된 후
그 결과 값인 60에 10이 더해지기 때문에 70이다.

파이썬 수학 연산 표현들의 순서는 다음과 같다.
1. ( )
2. *
3.
, / , %
4. +, -

만일 실행되는 순서가 동일한 연산들이 있을 경우(예를 들어 곱하기와 나누기),
먼저 나오는 연산이 실행된다.

여기서 중요하게 기억해야 할 점은 괄호 이다. 괄호안에 포함된 연산은 항상 먼저 실행된다.
앞서 본 연산의 값을 70이 아닌 90으로 만들기 위해서는 괄호를 사용해야한다.

result = (10+ 20) * 3

연산의 순서는 혼동되기 쉬워 버그가 날 수 있는 요인이 될 수 있으므로 괄호를 적절히 사용해서
명확히 해주는 것이 코드의 가독성을 높일 수 있다.


Concatenating Text Strings

숫자와 마찬가지로 string도 더할 수 있다. 이를 string concatenation 이라고 한다.
2개 혹은 그 이상의 문자열들을 잇는걸 뜻한다. 예를 들어, 이전에는 "Hello, World!"를
출력하기 위해서는 다음과 같이 구현한다.

print("Hello, World")

다음 처럼 구현할 수 있다.

print("Hello, " + "World")

위의 코드처럼 string을 잇기 위해서 +를 사용할 수 있다.
string concatenation은 특정 문자열만 변수에 저장되어 있을 때 사용하면 좋다.

예를 들어, input으로 받은 유저의 이름을 저장한 변수를 사용해서 출력 하고 싶을 경우에는
'string concatenation 을 사용하면 편리하다.

name = input()
print("Hello, " + name)

만일 "John" 이란 값이 input으로 입력 되었다면 "Hello,John"이라고 출력이 되게 된다.


복잡한 string concatenation

string concatenation을 하는 방법에는 + 이외에도 다른 방법도 있다. 특히 길고 복잡한
문자열인 경우에는 + 보다는 다른 방법을 사용하는게 효과적이다. 그 중 가장 편리한 방법중 하나가 바로 literal string interpolation 이다.

name = input()

print(f"Hello, {name}")

literal string interpolation 을 사용하려면 다음의 문법을 지켜야 한다.

먼저 따음표 앞에 f를 붙여야 한다.
치환 하고 싶은 변수 (혹은 변수가 아니여도 된다. 예를 들어 함수 호출)
를 {}를 사용해서 표시한다.

좋은 웹페이지 즐겨찾기