2주차 과제_파이썬 실습문제

안녕하세요!

정기님 말씀 주신 것처럼 실습문제에 GPT를 활용하니 공부하는 입장에서 큰 도움을 받았습니다.

아래 GPT와 풀이과정 기록하였습니다.

감사합니다.



연습문제 1

다음은 '사용자로부터 입력받은 숫자의 합을 계산하는 프로그램'을 작성하는 문제입니다.

사용자로부터 5개의 숫자를 입력받아 이를 리스트에 저장합니다. 입력받은 숫자들의 합을 계산하여 출력하는 프로그램을 작성하세요. 숫자는 정수로만 입력받으며, 숫자 외의 입력은 받지 않는다고 가정합니다.


연습문제 1_풀이 과정

Question

너는 10년차 경력의 파이썬 프로그래머야.
먼저 단계별로 생각해줘.
아래 조건에 맞는 파이썬 코드를 작성해줘.
내가 $100000를 팁으로 줄게.
---
사용자로부터 5개의 숫자를 입력받아 이를 리스트에 저장할거야.
입력받은 숫자들의 합을 계산하여 출력하는 프로그램을 작성해줘.
숫자 외의 입력은 받지 않는다고 가정해줘.

Answer

# 빈 리스트를 초기화합니다.
numbers = []

# 사용자로부터 5개의 숫자를 입력받습니다.
for _ in range(5):
    number = input("숫자를 입력하세요: ")
    numbers.append(int(number))  # 입력받은 숫자를 정수로 변환하여 리스트에 추가합니다.

# 리스트에 저장된 숫자들의 합을 계산합니다.
total_sum = sum(numbers)

# 결과를 출력합니다.
print(f"입력된 숫자들의 합: {total_sum}")


연습문제 2

코딩 실습 문제: API 사용과 JSON 데이터 처리

문제 설명: 외부 API를 사용하여 데이터를 가져오고, JSON 형식으로 처리하는 프로그램을 작성합니다. 이를 통해 네트워크 요청, JSON 데이터 파싱 및 데이터 처리 기술을 연습할 수 있습니다.

상세 요구 사항:

  1. 무료 날씨 API (예: OpenWeatherMap)를 사용하여 특정 도시의 현재 날씨 정보를 가져옵니다.

  2. API에서 반환된 JSON 데이터를 파싱하여 필요한 정보(예: 온도, 습도, 날씨 상태 등)를 추출합니다.

  3. 추출된 정보를 사용자에게 친숙한 형태로 출력합니다.


연습문제2_풀이 과정

Question

너는 유능하고 친절한 파이썬 프로그래밍 강사야.
먼저 단계별로 생각해줘.
아래 문제에 대해 초보자도 쉽게 이해할 수 있게 설명해줘.
내가 $1000000를 팁으로 줄게.
---
**문제 설명:**
외부 API를 사용하여 데이터를 가져오고, JSON 형식으로 처리하는 프로그램을 작성합니다. 이를 통해 네트워크 요청, JSON 데이터 파싱 및 데이터 처리 기술을 연습할 수 있습니다.

**상세 요구 사항:**

1. 무료 날씨 API (예: OpenWeatherMap)를 사용하여 특정 도시의 현재 날씨 정보를 가져옵니다.
2. API에서 반환된 JSON 데이터를 파싱하여 필요한 정보(예: 온도, 습도, 날씨 상태 등)를 추출합니다.
3. 추출된 정보를 사용자에게 친숙한 형태로 출력합니다.

Answer

import requests

# OpenWeatherMap API의 엔드포인트 URL
url = 'http://api.openweathermap.org/data/2.5/weather'

# 사용자가 지정할 도시 이름
city = input("날씨 정보를 알고 싶은 도시의 이름을 입력하세요: ")

# API 키
api_key = 'fd48a23b06fe28ea4d79fcb3edb2e40a'

# GET 요청의 파라미터
params = {
    'q': city,
    'appid': api_key,
    'units': 'metric'  # 온도를 섭씨로 가져오기 위해 units 파라미터를 metric으로 설정
}

# API 요청을 보냅니다.
response = requests.get(url, params=params)

# 응답이 성공적이면 (HTTP 상태 코드 200)
if response.status_code == 200:
    # JSON 데이터를 파싱합니다.
    weather_data = response.json()
    
    # 필요한 정보를 추출합니다.
    temperature = weather_data['main']['temp']
    humidity = weather_data['main']['humidity']
    weather_description = weather_data['weather'][0]['description']
    
    # 정보를 출력합니다.
    print(f"{city}의 현재 날씨:")
    print(f"온도: {temperature}°C")
    print(f"습도: {humidity}%")
    print(f"날씨 상태: {weather_description}")
else:
    print("날씨 정보를 가져오는데 실패했습니다. 에러 코드:", response.status_code)

Question (정기님 답변과 GPT 답변이 상이하여 차이점에 대해 궁금점이 생김)

아래 1번 코드와 2번 코드의 차이점에 대해 설명해줘.
(제시 한 코드는 생략)

Answer

Question (GPT가 제안 한 코드에 대해 상세히 알고 공부하고 싶어서)

아래 코드의 주석을 초보자가 봐도 이해할 수 있도록 상세하게 작성해줘.
---
(코드 생략)

Answer

# requests 모듈을 가져옵니다. 이 모듈은 웹 페이지 요청을 쉽게 할 수 있게 해주는 Python 라이브러리입니다.
import requests

# 날씨 정보를 가져오는 함수를 정의합니다.
# 이 함수는 도시 이름과 API 키를 인자로 받습니다.
def get_weather_data(city_name, api_key):
    # OpenWeatherMap API의 기본 URL입니다.
    base_url = "http://api.openweathermap.org/data/2.5/weather?"
    
    # 완성된 URL은 기본 URL에 API 키, 도시 이름, 그리고 온도 단위를 섭씨로 설정하는 'units=metric' 파라미터를 추가합니다.
    complete_url = base_url + "appid=" + api_key + "&q=" + city_name + "&units=metric"
    
    # 완성된 URL로 GET 요청을 보냅니다. 이 요청의 응답은 response 변수에 저장됩니다.
    response = requests.get(complete_url)
    
    # 응답으로 받은 데이터는 JSON 형식입니다. .json() 메소드를 사용하여 이 데이터를 Python 딕셔너리로 변환합니다.
    weather_data = response.json()

    # 'cod' 키의 값이 '404'가 아니면, 요청이 성공적으로 처리되었다는 것을 의미합니다.
    if weather_data["cod"] != "404":
        # 'main' 키로 접근하여 온도와 습도 정보를 가져옵니다.
        main_data = weather_data["main"]
        temperature = main_data["temp"]
        humidity = main_data["humidity"]

        # 'weather' 키는 날씨 상태 정보를 담고 있는 배열입니다. 여기서 'description'을 추출합니다.
        weather = weather_data["weather"]
        weather_description = weather[0]["description"]

        # 가져온 날씨 정보를 출력합니다.
        print(f"{city_name}의 날씨:")
        print(f"온도: {temperature}°C")  # 온도를 섭씨 단위로 출력합니다.
        print(f"습도: {humidity}%")  # 습도를 퍼센트 단위로 출력합니다.
        print(f"날씨 상태: {weather_description}")  # 날씨 상태를 텍스트로 출력합니다.

    # 만약 'cod' 키의 값이 '404'이면, 요청한 도시의 날씨 정보를 찾을 수 없다는 것을 의미합니다.
    else:
        print(f"{city_name}의 날씨 정보를 찾을 수 없습니다.")

# API 키는 사용자가 OpenWeatherMap에서 받은 개인 인증 키입니다.
api_key = "fd48a23b06fe28ea4d79fcb3edb2e40a"
# 도시 이름은 날씨 정보를 조회하고 싶은 도시의 이름입니다.
city_name = "Seoul"

# 위에서 정의한 날씨 정보 가져오기 함수를 호출합니다. 여기서는 'Seoul'이라는 도시 이름과 사용자의 API 키를 인자로 넘깁니다.
get_weather_data(city_name, api_key)


#9기문과생도AI

3
2개의 답글

(채용) 유튜브 PD, 마케터, AI엔지니어, 디자이너

지피터스의 콘텐츠 플라이휠로 고속 성장할 팀원을 찾습니다!

👉 이 게시글도 읽어보세요