디지털·가전제품
파이썬 관련된 질문 있습니다!!!!
이거 파이썬 읻데요,for 반복문을 사용하여 어떻게 구할 수 있나요?🥺🥺🥺 도와주세요
12의 약수를 구해야합니다. 😱😱😱😱
2개의 답변이 있어요!
파이썬을 배우시면서 반복문을 익히시는 거로 보이는데요, 문자열 포맷팅으로 f-string까지 쓰시고 잘했으나 약간의 수정이 필요해보여요.
먼저 프린트문에서 약수를 뽑아내셔야 하는데 따로 n을 빼주지 않으셔서 약수가 나오지 않으셨고, end부분을 한칸 띄우신 건 구별을 하기 위함이라고 보여지는데, 매번 12의 약수라는 말이 나오니 출력부분에서 가독성이 떨어져보입니다.
따라서 저 부분에서 조금만 수정해본다면
num = int(input("정수 입력>>> "))for n in range(1,13):
if num%n==0:
print(f"{num}의 약수 {n}", end="\n")
이런식으로 써서 반복마다 해당하는 약수 n을 뽑아내고 end쪽에서 한 줄 씩 띄어 가독성을 올릴 수 있겠습니다.최대한 작성자님의 코드를 살리는 측면으로 수정해봤고, 여기서 좀 더 제 나름대로 깔끔하게 수정을 해본다고 하면
try:
num = int(input("정수 입력>>> "))
if num <= 0:
print("양의 정수를 입력해주세요.")
else:
print(f"{num}의 약수: ", end="")
for n in range(1, num + 1):
if num % n == 0:
print(n, end=" ")
except ValueError:
print("유효한 정수를 입력해주세요.")
이런 식으로 써보는게 좋겠습니다. 입력하는 사람이 정수만을 입력한다는 보장도 없거니와 숫자가 아닌 다른 문자를 입력하게 된다면 에러가 뜰텐데 그것보다는 try - except문을 활용하시는게 좋습니다.
코딩테스트를 해보시면 어느정도 감이 잡히시겠지만 아직 파이썬을 익히시는 단계이기에 전부 이해하려고 하지 마시고 이런 방법도 있겠구나 생각해보시는 것도 좋을 것 같습니다.
혹시라도 코드보시고 설명이 필요하시다면 따로 코멘트 드리겠습니다.
글쎄요 divisors라는 빈 리스트 하나 만들고 1~12 안에서 12%i가 0일 때마다 divisors.append(i)함수 쓰시고 나중에 divisors 리스트요소를 print하시면 될거같습니다
divisors = []
for i in range(1, 13):
if 12 % i == 0:
divisors.append(i)
print(divisors)