# 초심 중요합니다

길지 않은 시간에 많은 공부를 해야 하는데, 힘든 것은 당연합니다.

지나치게 무리하지는 말고 감당 가능한 선에서 꾸준히 진행하세요.

꾸준함이 쌓이면 목표로 한 성과를 얻을 수 있습니다.

markdown 문법 html 같은 markup 언어 중 하나라고 함

마크업 언어(markup language) : 태그 등을 이용해 데이터의 구조를 표현하는 방식을 말한다. 일반적인 프로그래밍언어와 약간의 차이를 보인다. 

## 2개
### 3개 
#### 4개 
## 목록 기호
- -쓰거나 
* *쓰거나 
+ +쓰거나 
똑같이 취급된다.
단계depth는 탭으로 구분할 수 있다. 
- 목록1 
    * 목록1-1
    + 목록1-2
        - 목록1-2-1 
        * 목록1-2-2
## 표
열1 | 열2 
----|----
행1열1|행1열2
행2열1|행2열2
행3열1|행3열2

## 링크
[표시하고 싶은 내용](링크)

## Python 코드
```python

```

 

 

github 연동 작업 진행..

save
add
commit
push
full
Sync changes :::: github랑 내 PC
clone

 

Git 깃 (소프트웨어)

깃(Git/ɡɪt)은 컴퓨터 파일의 변경사항을 추적하고 여러 명의 사용자들 간에 해당 파일들의 작업을 조율하기 위한 스냅샷 스트림 기반의 분산 버전 관리 시스템이다. 또는 이러한 명령어를 가리킨다. 소프트웨어 개발에서 소스 코드 관리에 주로 사용되지만 어떠한 파일 집합의 변경사항을 지속적으로 추적하기 위해 사용될 수 있다. 기하학적 불변 이론을 바탕으로 설계됐고, 분산 버전 관리 시스템으로서 빠른 수행 속도에 중점을 두고 있는 것이 특징이며 데이터 무결성, 분산, 비선형 워크플로를 지원한다.

깃은 2005년에 리눅스 커널 개발을 위해 초기 개발에 기여한 다른 커널 개발자들과 함께 2005년에 리누스 토르발스가 처음 개발한 것이다. 2005년부터 지금까지 주니오 하마노(Junio Hamano)가 소프트웨어의 유지보수를 맡고 있다.

다른 대부분의 분산 버전 관리 시스템처럼, 또 대부분의 클라이언트-서버 시스템과 달리, 모든 노드의 모든 깃 디렉터리는 네트워크 접속이나 중앙 서버와는 독립적으로 동작하는 완전한 이력 및 완전한 버전 추적 등, 모든 기능을 갖춘 저장소이다.

깃은 GNU 일반 공중 사용 허가서 v2 하에 배포되는 자유 소프트웨어이다.

- https://ko.wikipedia.org/wiki/깃_(소프트웨어)

 
 

 

tuple() 튜플형

튜플형의 가장 큰 특징은 element 값이 정해지면 값을 수정할 수 없다는 점이다.

mutable 변하기 쉬운 / immutable 불변하는.

iterable한 데이터 타입들이 이 두 가지 속성에 의해 구분된다.

 

mutable 수정 가능한 것
imutable 수정 불가능 한 것
list, dict
int, float, str, tuple

 

# 변수 이름과 변수 값을 따로 관리함

 

# 변수에 할당하는 것 : 바인딩

# mutable 바인딩을 바꿀 수 있다. immutable 못 바꾼다.

# 두 데이터 타입의 특징이 달라서 사용 시 신경써야 함

 

# 메모리에서 무슨 일이 벌어지는가를 이해하면 알 수 있다.

(메모리 바인딩 파이썬 뮤터블 등등 찾아 보자)

# 어떤 언어는 10이란 데이터 값을 20으로 직접 바꿈

# 파이썬은 10이 들어있는 것이 아니라 10으로 가는 화살표가 있다.

# 10으로 가는 화살표를 20으로 가는 화살표로 변경함.

# tuple연산에서도 마찬가지임!!

 

# 혹시라도 누가 수정하지 않아야 할 때 사용. 삭제도 안됨

my_list = [1, 2, 3]
my_list[0] = 5
print(my_list)


# TypeError: 'tuple' object does not support item assignment 
# 튜플형은 수정 불가능 
my_tuple = (1, 2, 3)
my_tuple[0] = 5
print(my_tuple)

 

# 문자형, 숫자형, 튜플형, 혼합형 등 모두 사용 가능하다.

tuple_1 = ("Hello", "world", "python")
t2 = (1, 2, 3, 4, 5)
t3 = (1, 2, "Hello")
t4 = 1, 2, 3 
t5 = (1, 2, (3, 4, 5))

# + * 연산이 가능함. 새로운 튜플을 만든다고 생각하면 된다.

t6 = tuble_1 + t2 
t7 = t3 * 3

# indexing spacing 가능, tuple형태로 뽑힘

t3 = (1, 2, "Hello")
print(t3[2]) # Hello 출력
print(t3[0:2]) # (1, 2) 출력
print(len(t3)) # 3 출력


t5 = (1, 2, (3, 4, 5))
print(t5[2][1]) # 4 출력

   

tuple은 시퀀스 형태의 데이터 타입 리스트

데이터 값의 순서 위치 바꾸는 것도 값을 수정하는 것이다.

시퀀스 타입의 데이터에서는 순서도 중요한 정보다.

정렬 변경 안됨, 추가 안됨, 뒤집는 것 안됨

중요한 데이터들, 좌표들, 돈, 반드시 참고해야 하는 값들에 tuple을 사용한다.

 

 

# 5, 3, 1, 4, 2 순으로 출력된다.

t8 = (5, 3, 1, 4, 2)
for i in t8:
    print(i)

ex) 2 ~ 9 사이의 숫자를 입력받아, 해당하는 단의 구구단을 출력하세요.

2 ~ 9 사이의 숫자가 아닌 값이 입력된 경우, "잘못 입력되었다고 출력"하고 "다시 입력" 받으세요.

# while not : 조건이 True면 그만 반복하고 다음 줄로 내려감. false면 안의 내용을 실행한다.

# 조건문, 반복문, input, int 

n = int(input("몇 단? "))
while not 2 <= n <= 9:   
    print("2 ~ 9 사이의 숫자를 입력해 주세요.")
    n = int(input("몇 단? "))

print("----------")
for i in range(1, 10):
    print(n, "*", i, "=", n*i)
print("----------")
# 아래 두 개의 결과가 같겠죠!  
if nn < 2 and nn > 9: # 일 때는 pass 할 것, 
   pass

if nn >= 2 and nn <= 9: # 일 때는 구구단 출력 할 것. 
   구구단 출력


# python에서는 조건을 아래와 같이 줄여서 표기할 수 있다. 
if nn >= 2 and nn <= 9:
if 2 <= nn >= 9

 

ex) 2 이상의 정수를 입력받고, 그 정수보다 작은 수 중 가장 큰 제곱수를 출력하세요.

n = int(input("숫자를 입력하세요."))
i = 1
while True:
    if i ** 2 >= n:
        break
    oo = i ** 2
    i += 1
print(oo)

 

ex) 3개의 리스트에서 같은 인덱스의 값끼리 더하여 출력하세요.
# for문으로 할 수 있는 것은 while로도 해 보세요!

a = [1, 2, 3, 4, 5]
b = [10, 20, 30, 40, 50]
c = [532, 5941, 54682, 58, 5]

for i in range(5): 
    print(a[i] + b[i] + c[i])
a = [1, 2, 3, 4, 5]
b = [10, 20, 30, 40, 50]
c = [532, 5941, 54682, 58, 5]
i = 0 

while i < 5:
    print(a[i] + b[i] + c[i])
    i += 1

 

 

zip()

길이가 같은 list를 묶어서 for문 등으로 사용가능한 iterable을 반환한다.

a = [1, 2, 3, 4, 5]
b = [10, 20, 30, 40, 50]
c = [532, 5941, 54682, 58, 5]

for x, y, z in zip(a, b, c):
    print(x + y + z)
    print(x, y, z)

 

 

ex) 정수를 입력받고 1부터 입력받은 정수까지 모두 출력하세요.

단, 숫자에 3, 6, 9가 들어있는 경우 숫자 대신 "짝" 이라고 출력하세요.

n = int(input("숫자를 입력하세요. "))
for i in range(1, n + 1):
    # 3, 6, 9가 들어 있으면
    # 931 --> "931" 
    answer = i 
    for j in str(i):
        if int(j) % 3 == 0 and j != "0": 
            answer = "짝"
            break
    print(answer) 


# 나중에 다양한 방법으로 풀어보세요.
# 힌트 ------------------------------
# "3", "6", "9"
# 931 // 100
# 931 % 100
# 31 // 10 == (931 % 100) // 10
# 나머지 
# 각 자리수의 숫자를 확인해야 함

 

ex) 정수를 입력하고 그 수보다 작은 수 중 가장 큰 제곱수를 구하라 (?)

i = int(input("숫자를 입력하세요."))
b = 1

while (b ** 2) > i > 2:
    print(b ** 2)
    i += 1
    
# 1/2 == 0.5
# 4 ** 1/2 == 2 == 4 ** 0.5

 

ex) 정수를 입력받고 그 정수의 약수를 모두 출력하시오.

약수 : 나누었을 때 나머지가 0으로 나누어 떨어지는 수

n = int(input("약수구하기 : "))
for i in range(1, n+1):
    if n % i == 0:
        print(i)

 

 

 

Python's Mutable vs Immutable Types: What's the Difference? – Real Python

 

Python's Mutable vs Immutable Types: What's the Difference? – Real Python

In this tutorial, you'll learn how Python mutable and immutable data types work internally and how you can take advantage of mutability or immutability to power your code.

realpython.com

 

+ Recent posts