강해져서 돌아온 ChatGPT에게 코딩을 시켜보자

아니 자기가 강해져서 돌아왔대잖아요…

일단 이번에 시켜볼 것은 매우 간단한 코딩들… 뭐 import 할 수는 있겠지만 패키지 설치를 요하는 건 아닌, 그런 것들을 시켜볼거다. 참고로 오늘 제일 많이 본 거…

강해져서 돌아왔다며?


Hello, World! 출력하기

print("Hello, World!")

프로그래밍 책에서도 첫빠따로 나오는 헬로월드다. 따옴표는 “”도 되고 ”도 되는데 아무튼 저 코드 자체는 잘 됐음.

일차원 배열 만들기

반복문을 사용하지 않고 a = [1,2,3,4,5] 이런 식으로 직접 할당하는 배열 말하는거다.

my_list = [i for i in range(1, 6)]
print(my_list)

오 고급기술… 원래 의도했던 건 a = [1,2,3,4,5]였는데 이것도 일단 맞는 방법이다. 컴프리헨션에 익숙해지면 이게 훨씬 더 편하기도 하고.

그럼 위에 있는 리스트 컴프리헨션을 조금 응용해보자. 이번에는 리스트 컴프리헨션으로 1부터 20까지의 수 중 소수만 배열에 소(별)장 해보도록 했다.

prime_list = [num for num in range(2, 21) if all(num % i != 0 for i in range(2, num))]
print(prime_list)

def로 따로 함수를 밖에서 정의하는 방식이 아니라 안에서 걍 함수까지 정의해버렸다. 예전에 본인이 예시로 했던 건

def isprime(a):
    sqrt = int(a ** 0.5)
    if a <= 1: 
        return False
    for i in range(2,sqrt+1):
        if a % i == 0:
            return False
    else: 
        return True
# a == 1을 a <= 1로 바꿨다. 
a = [i for i in range(100) if isprime(i)]
print(a)
[2, 3, 5, 7, 11, 13, 17, 19, 23, 29, 31, 37, 41, 43, 47, 53, 59, 61, 67, 71, 73, 79, 83, 89, 97]

이런 식이었다. isprime이 소수 판별 함수이고 밖에서 정의를 해서 안에 굳이 정의 안했음.

반복문(for&While)

여기서는 더 재볼 것도 없이 2^1~2^10을 반복문을 이용해서 배열로 만들어 볼 예정이다. for랑 while 둘 다.

근데 내 질문에 뭐 문제 있나?

my_list = []
for i in range(1, 11):
    my_list.append(2 ** i)
print(my_list)

for는 여부터 여까지 반복하슈라는 반복문이라 걍 이렇게 하면 2부터 1024까지 등비수열로 나온다. 그냥 배열로 만들어달라고 했을 때는 리스트 컴프리헨션을 썼었는데 지금은 내가 for문으로 해달라고 주문한 것임.

my_list = []
i = 1
while i <= 10:
    my_list.append(2 ** i)
    i += 1
print(my_list)

while문은 for문과 달리 어떤 조건을 만족할때까지 뺑뺑이를 도는거라고 보면 된다. 그리고 ChatGPT는 for와 while의 맥락이 서로 다른것도 이해하고 있었다. 근데 에러 슈밤…

그럼 마지막으로 while True:를 출동시켜봅시다. 에러 몇번뜨나 봐야지

my_list = []
i = 1
while True:
    my_list.append(2 ** i)
    i += 1
    if i > 10:
        break
print(my_list)

와일트루에 콜론 다니까 에러뜨는거 실화냐… 5트만에 성공함 ㅋㅋㅋㅋㅋㅋ 아무튼… 아일트루는 무한뺑뺑이라 특정 조건을 만족하면 나가게끔 조건을 정해줘야 한다. 일단 세가지 코드는 다 이상 무.

입력 받기

입력 받고 문구 출력만 하면 땡인데, 파이썬에는 방법이 두 가지 있다. 바로 input()과 sys.stdin.readline(). 과연 ChatGPT는 import sys를 할 수 있을 것인가? (sys.stdin.readline() 하려면 필요함)

일단 결론부터 말하자면 못했다. 자꾸 에러가 뜨더니 접속이 아예 안되는데 서버가 터진건지;;

총평

일단 밥이 걸려있으니 저녁에 후속 질문할 것을 정리해보자면

  1. 위에 4번
  2. 2차원 배열 만들기
  3. 함수 정의하기
  4. 별찍기

이정도..

전에 ChatGPT vs Bing에서도 얘기했듯이 기본적으로 얘는 한글로 입력하면 느려진다. 근데 에러까지 떠서 실질적으로 걸리는 시간이 훨배 느려졌다. 심지어 이거 되게 기초적인 부분이라 구글링 하거나 책 찾아보고 해도 기본적인 응답 시간에 비해 빠르고 어느정도 백그라운드가 있다면 물어볼 시간에 직접 코딩하는 편이 더 빠르다. 배우는 입장에서 궁금해서 코딩 맡겨보는거면 몰라도 업무때문에 그러는거면 걍 구글링 하던가 수제로 코딩하자. 에러 자체는 ChatGPT의 문제라기보단 서버 문제로 보인다. (인공지능은 서버든 본인 컴퓨터든 어따 모셔놓고 쓴다)