Django

4일차) 파이썬 기초 다지기

승현0604 2022. 9. 1. 21:40

오늘은 오전에 팀원들과의 회고를 끝내고 수업에 열중을 하였다

 

가장 중요한 python기초 공부를 했는데 오늘 배운내용을 복습하는 차원에서 그리고 문제를 푸는 차원에서 복습을 진행하였다.

 

변수 선언 - 파이썬에서 새 변수를 만들대는 변수 = 값의 형태로 쓰인다. 주의할점이 있다면 a=b,b=a는 다르다는 사실! 이부분도 사실 오늘알았다... 앞에있는값이 무조건 변수이름이 되어야한다!

 

숫자와 자료형 - 숫자를 써야하는 상황, 그리고 문자를 써야하는 상황이 있는데 파이썬에서 어떤값을 쓰는지 알아야 코딩을 할수 있기에 매우 중요한 내용이다

 

a + b
a - b
a * b
a / b
a + 3 * b      # 13 (여러 연산을 한 줄에 할 경우 사칙연산의 순서대로!)
(a + 3) * b    # 20 (소괄호를 이용해서 먼저 계산할 부분을 표시해줄 수 있어요!)
a ** b         # 거듭제곱을 나타낼때 쓰는 연산이다
a = a + 3      # a에다가 5를 더해주면 새로운 a로 저장이 되는형식
a % b          # a를 b로 나누었을 때 나머지를 나타내는 연산이다

이부분은 우리가 정말 많이쓰이는 연산부분이다. 하지만 이것말고 다른부분은 구글링을 통해서 찾는 습관을 가져야한다!!

 

문자열 다루기 - 파이썬에서는 글을 데이터로 사용을 할 수가 있다 그것이 바로 문자열이라고 한다

형식은 " ? " , ' ! ' 두가지 형식으로 저장을 해야한다 .다음과 같이 따옴표로 감싸지 않으면 변수이름을 뜻하는 오류가 생긴다

a = 1
b = "a"
c = a
print(a, b, c) # 1 "a" 1

문자열을 가지고 여러가지 함수를 써서 다양한 값을 구사할 수 있다.

 

처음보기도 하고 생소했던 부분도 몇가지 정리르 해보았다.

 

len함수 - 텍스트의 길이를 구하는 함수이다  

text = 'abcdefghijh'

result = len(text)

print(result)

text[:]형태 - 텍스트에서 중간중간 몇번째부분을 자르는 기능이다

text = 'abcdefghijh'

result = text[:3]

print(result)

다음과 같이 앞에서부터 3번째 까지 자른다는 의미이므로 'abc'가 나온다

반대로 [3:]의 형식이라면 앞에서 3번째부터 나열을 하겠다라는 의미라서 ''defghijk'가 나온다.

[3:7]이라면 어떨까? 'defg'의 형태가 나오게 된다

 

split() - 가로안에들어간 텍스트를 기준으로 양쪽으로 쪼개지는 배열함수이다

myemail = 'abc@sparta.co'

result = myemail.split('@')

print(result)

이렇게한다면 결과적으로 ['abc', 'sparta.co'] 형태로 나오게 된다. 이상태에서 

myemail = 'abc@sparta.co'

result = myemail.split('@')[0]

print(result)

0번째 텍스트의 정보를 입력을 해본다면 결과는 'myemail'가 나오게 된다.

 

 

그 외에 여러가지 파이썬의 기초들은 여기에 정리를 해주셨다

[스파르타코딩클럽] 파이썬 문법 뽀개기 (notion.so)

 

그리고 오늘 파이썬을 이용하여 여러가지 퀴즈문제를 풀어보았다. 바로 

단계별로 풀어보기 (acmicpc.net)

이 사이트에서 진행하는 문제들 중 오늘은 '입출력과 사칙연산'을 풀어보았는데 오늘 무조건 15문제를 다풀어보라고 하셨는데 문제가 생각보다 난이도가 엄청나서 놀랬다. 

 

여기서 가장 많이 사용했던 코드들을 정리해보았다. 

1. 여기가 살짝 심화과정인데 input받는방법하는 과정이 은근 까다로웠다. 

a = input()
print(type(a))
print(a)

input값은 무조건 str형식으로 나오기 때문에 int를 삽입해서 형식을 바꿔야한다는 것을 깨달았다.

 

2. 하나의 인트값 입력받기

a = int(input())
print(type(a))
print(a)

3. 여러개의 스트링값 입력받기(split를 입력하는 이유는 13과 1 3을 구별하기위해서 띄워쓰기코드를 넣는다고생각하면 된다. 위에 정리되어있다.)

a, b = input().split()
print(a)
print(b)

 4. 두개 인트값 입력받기(map함수를 사용하는 이유를 알아보겠다)

a, b = map(int, input().split())
print(type(a))
print(a)
print(type(b))
print(b)

map함수를 쓰는이유 : int형식을 input함수에 넣어서 사용은 할 수 있지만 split()함수까지 씌워지게 된다면 변수속성에 영향이 갈 수도 있기 때문에 map() 함수 형식을 이용하는것이다

 

map형식은  

 

map(function, iterable)

다음과 같은 형태로 첫칸에는 매개변수의 함수가 오고, 두번째칸에는 반복가능한 자료형이 나오게 된다

쉽게 얘기하자면

 

map(적용시킬 함수, 적용할 값들) 이러한 형태인 것이다. 문자열, 숫자, 리스트 형태마다 다른데 그부분을 유연하게 쓸수 있는 부분이라고 보면 될것같다.

 

 

문제 풀면서 중요하게 생각해야 할점!

 

1. input()은 str형식이다 (숫자형으로 받아오고 싶다면 앞에 int()를 달고 print를 해야한다)

2. 사칙연산 할 때 줄을 깔끔하게 나열하고 작성하자 (뒤죽박죽으로 줄을 달다 보니 연산기호가 너무 헷갈려 보여서 시간이좀 걸렸다..)

3. 배열을 이용하는 문제가 있었는데 이부분은 조금 복습이 필요해보였다. 리스트를 사용하면서 딕셔너리를 사용하고 거기안에서 배열을 사용하는데 사용할때마다 함수가 달라지고 계산하는 방식도 달라지다보니 그부분을 더욱 공부를 해야할것같다.

 

오늘 하루를 마무리하며....

 

참 파이썬...쉬운것같은데 문제를 보니 기초공부가 중요하다는 것을 알게되었다. 비록 15문제를 다 맞추긴했지만 속도감에 있어서는 아직 뒤쳐지는 것같은 느낌이 들었다. 그리고 튜터님과의 상담시간도 기억에 남는다. 아직은 부족하지만 4개월지나면서 노력하다보면 누구보다 잘할 수 있다라고 하셨는데 자기하기 나름이라고 생각이 든다. 노력을 더 많이해야겠다