리스트에서 연산자를 뽑아 연산을 하는방법!!

조회수 3664회

import random op_box = ["+", "-","//","*"] #4가지의 연산을 넣는 상자입니다.

print("안녕하세요. 산수문제 발생기입니다.")

while True: x = random.randint(50, 100) y = random.randint(1, 20) z = random.randint(0,3) #상자에서 무작위로 뽑아내기 위한 수

print(x,str(op_box[z]),y,"=",end='')
answer = int(input())
if answer == x+y or answer == x-y or answer == x//y or answer == x*y:
    print("정답입니다.")
else:
    print("다음엔 더 잘할 수 있죠?")

질문..op_box(연산자가 담겨있는 리스트) 에서 z번째 문자를 뽑아서

생성된 난수 x와 y사이에 삽입하여 연산을 처리하는 방법이 있을까요?

x,str(op_box[z]), y 이런식으로요 !! 뭔가 연결고리가 있을 것 같은데 모르겠습니다. 위와 같이 적으면 신택스 에러가 나네요!

  • (•́ ✖ •̀)
    알 수 없는 사용자

2 답변

  • 이정도면 되나요?

    a = '3'
    b = '4'
    sign = '+'
    s = a + sign + b
    eval(s)
    
    7
    
    • 안녕하세요 주신 아이디어로 다음과 같은 코드를 작성하여 해결하였습니다. 알 수 없는 사용자 2018.5.5 22:47
    • int와 str은 +로 이을 수 없다는 것도 알게되었습니다. 감사합니다^^ 알 수 없는 사용자 2018.5.5 22:51
  • op_box = ["+","-","*","//"] #4개의 연산자가 담겨있는 상자입니다.
    x = random.randint(50, 100)
    y = random.randint(1, 20)
    z = random.randint(0,3) #상자에서 무작위로 뽑아내기 위한 난수생성
    Random_Question = str(x)+str(op_box[z])+str(y) #난수z에따른 무작위 식 생성
    print(Random_Question,"=",end='')
    answer = int(input())
    if answer == x+y or answer == x-y or answer == x//y or answer == x*y:
        print("정답입니다.")
    else:
        print("다음엔 더 잘할 수 있죠?")
    
    • (•́ ✖ •̀)
      알 수 없는 사용자

답변을 하려면 로그인이 필요합니다.

프로그래머스 커뮤니티는 개발자들을 위한 Q&A 서비스입니다. 로그인해야 답변을 작성하실 수 있습니다.

(ಠ_ಠ)
(ಠ‿ಠ)