앱 다운로드
폴더를 선택하고 편집하기 전에 관련 파일을 읽도록 요청하세요. 작업의 목표와 변경 범위를 명확히 정합니다.
표시 폭 1~10000과 밀도 비율 1/4~8을 사용해 URL과 폭의 쌍 1~64개 중에서 선택합니다. 정확한 임계값과 가장 큰 후보로의 대체를 시험하고 선택한 URL을 가져오지 않으면서 중복 폭이나 잘못된 수를 거부합니다.
폴더를 선택하고 편집하기 전에 관련 파일을 읽도록 요청하세요. 작업의 목표와 변경 범위를 명확히 정합니다.
호환되는 엔드포인트를 선택하세요. 사용 가능한 도구와 응답 품질은 설정한 모델과 서버에 따라 달라집니다.
변경 사항과 명령 출력을 검토하세요. 결과를 채택하기 전에 프로젝트 검사를 실행해야 합니다. 생성된 코드는 자동으로 테스트된 코드가 아닙니다.
실제 동작을 예상 결과와 비교하세요. 검사가 실패하면 다음 변경을 하기 전에 원인을 조사하세요.
import math
def image_candidate(candidates, width, ratio):
if type(width) is not int or not 1 <= width <= 10000 or type(ratio) not in (int, float) or not 0.25 <= ratio <= 8 or not math.isfinite(ratio):
raise ValueError("image.viewport")
if type(candidates) is not list or not 1 <= len(candidates) <= 64:
raise ValueError("image.candidates")
sizes, seen = [], set()
for pair in candidates:
if type(pair) not in (list, tuple) or len(pair) != 2:
raise ValueError("image.pair")
url, pixels = pair
if type(url) is not str or not 1 <= len(url) <= 2048 or any(ord(c) < 32 or ord(c) == 127 for c in url):
raise ValueError("image.url")
if type(pixels) is not int or not 1 <= pixels <= 100000 or pixels in seen:
raise ValueError("image.size")
seen.add(pixels)
sizes.append((pixels, url))
sizes.sort()
target = width*ratio
return next((url for pixels, url in sizes if pixels >= target), sizes[-1][1])
적용하기 전에 검토하세요. 변경 사항과 명령 출력을 검토하세요. 결과를 채택하기 전에 프로젝트 검사를 실행해야 합니다. 생성된 코드는 자동으로 테스트된 코드가 아닙니다.