pycharm에서 문자열 입력에 이상이 있습니다

조회수 5363회
import random
def shuff():
    num = ['2', '3', '4', '5', '6', '7', '8', '9', 'T', 'J', 'Q', 'K', 'A']
    suit = ['s', 'd', 'h', 'c']
    deck = []
    for i in suit:
        for j in num:
            deck.append(j + i)

    random.shuffle(deck)

    return deck




while True:
    inp = str(input("Wanna deal?:"))
    if inp == 'y':
        print(shuff())
    else:
        continue

웹 인터프리터에 넣으면 정상작동을 하는데 pycharm에 넣으면

C:\Python27\python.exe C:/Users/Alpaca/PycharmProjects/test/n.py Wanna deal?:y Traceback (most recent call last): File "C:/Users/Alpaca/PycharmProjects/test/n.py", line 18, in inp = str(input("Wanna deal?:")) File "", line 1, in NameError: name 'y' is not defined

Process finished with exit code 1

이런 에러가 뜨네요... 무엇이 문제일까요?

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

1 답변

  • 로그를 보니 파이참에서 python2.7 버전을 쓰고 계시네요 아마 웹 인터프리터는 python3이고 pycharm은 python2를 써서 그럴 겁니다.

    python3에서 input()은 standard input(키보드 인풋)을 받아오는 함수입니다.

    반면 파이썬2에서 input()은 python expression을 받아서 run하는 함수입니다. 예를 들어 지금 코드를 run해서 y와 같은 문자가 아니라 3 또는 1+2같은 expression을 입력하면 에러가 발생하지 않을거에요.

    고치는 방법은 다음과 같습니다. 사용하실 인터프리터에 따라 하나만 선택해주세요

    1. python2를 쓰실 경우

    코드에 input함수를 raw_input으로 바꿔주세요

    inp = str(raw_input("Wanna deal?:"))
    

    와 같이 바꾸시면 됩니다

    2. python3을 쓰실 경우

    pycharm 설정에서 인터프리터를 2에서 3으로 바꿔주셔야 합니다.

    설정 - 프로젝트: {프로젝트 명} - 프로젝트 인터프리터

    에 들어가시면 인터프리터 설정을 바꿀 수 있어요~

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

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

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

(ಠ_ಠ)
(ಠ‿ಠ)