ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [TIL] 멋사 AI스쿨 4일차 파이썬 기초 1- day(4)
    멋쟁이사자 AI 스쿨 8기 2023. 1. 2. 17:04
    728x90

    # 1. 답변 리스트 생성

    # 2. 질문 받기

    # 3. 답변 리스트의 갯수 만큼의 범위에서 랜덤한 정수 1개 생성

    # 4. 랜덤한 정수에 해당하는 답변 리스트의 데이터 출력

    위에 4가지를 통해 알고니즘 만들기

    # 1. 답변 리스트 생성 : answers = [] # 2. 질문 받기 : question = input() # 3. 답변 리스트의 갯수 만큼의 범위에서 랜덤한 정수 1개 생성 : random.randint() # 4. 랜덤한 정수에 해당하는 답변 리스트의 데이터 출력 : answers[random_number]

    최종적으로 만든 코드

    # 1. 답변 리스트 생성 : answers = [] answers = [ '말하는대로 될지어다','아무노래나 일단 틀어','그의 뜻대로 될지어다' ] # 2. 질문 받기 : qusestion = input() qusestion = input("질문을 입력해 주세요: ") # 3. 답변 리스트의 갯수 만큼의 범위에서 랜덤한 정수 1개 생성 : random.randint() idx=random.randint(0,len(answers)-1) # 4. 랜덤한 정수에 해당하는 답변 리스트의 데이터 출력 : answers[radnom_number] answers[idx]

    실수 할만한 코드

    이코드를 보면

    data2의 1의 인덱스를 4로 바꿀려고 하였으나..

    data1,data2가 모두 바뀌어 버리고 말았다...

    data1의 주소와 data2의 주소가 같아서 자동적으로 변하는것이다..

    # id() : 식별자의 주소값 출력 id(data1), id(data2) 출력값 (139844199319360, 139844199319360)

    우리는 이것을 얇은 복사라고 부르기고 했다..

    그렇다면 깊은 복사는?

    data1 = [1, 2, 3] data2 = data1 # 얕은복사 : 주소값 복사 data3 = data1.copy() # 깊은복사 : 데이터 복사 print(data1, data2, data3) data1[1] = 4 print(data1, data2, data3) 출력 (139844199319360, 139844199319360, 139844200077888)

    copy() 를 써야 깊은 복사를 할 수 있다.

    변수의 데이터를 문자열의 삽입 하는 방법과 포멧팅 방법

    이렇게 하면 숫자가 바뀔때 마다 일일이 바꾸어 주어야 한다...

    그래서 나온게 포맷팅

    위에 처럼 2가지의 포맷팅 방법이 있다...

    본인에게 편한걸로 쓰시길...

    728x90
Designed by Tistory.