[PYTHON] 입력을 숫자로 읽으려면 어떻게해야합니까?
PYTHON입력을 숫자로 읽으려면 어떻게해야합니까?
왜 아래 코드에 int 대신 x 및 y 문자열이 있습니까? 웹상의 모든 것들은 raw_input ()을 사용한다고하지만, 파이썬 3.x에서 raw_input ()이 input ()으로 이름이 바뀐 스택 오버 플로우 (정수 입력을 다루지 않는 스레드에서)에 대해 읽었습니다.
play = True
while play:
x = input("Enter a number: ")
y = input("Enter a number: ")
print(x + y)
print(x - y)
print(x * y)
print(x / y)
print(x % y)
if input("Play again? ") == "no":
play = False
해결법
-
==============================
1.TLDR
TLDR
Python 2.x
input과 raw_input이라는 두 가지 함수가 사용자 입력을 얻습니다. 그것들의 차이점은 raw_input은 데이터를 평가하지 않고 문자열 형태로 그대로 반환한다는 것입니다. 하지만 입력하면 입력 한 내용이 평가되고 평가 결과가 반환됩니다. 예를 들어,
>>> import sys >>> sys.version '2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]' >>> data = input("Enter a number: ") Enter a number: 5 + 17 >>> data, type(data) (22, <type 'int'>)
데이터 5 + 17이 평가되고 결과는 22입니다. 식 5 + 17을 계산할 때 두 개의 숫자를 추가하는 것을 감지하므로 결과도 같은 int 유형이됩니다. 따라서 유형 변환은 무료이며 22가 입력 결과로 리턴되고 데이터 변수에 저장됩니다. 당신은 input을 eval 호출로 구성된 raw_input이라고 생각할 수 있습니다.
>>> data = eval(raw_input("Enter a number: ")) Enter a number: 5 + 17 >>> data, type(data) (22, <type 'int'>)
참고 : Python 2.x에서 입력을 사용할 때는주의해야합니다. 나는이 대답에서 왜 그것을 사용할 때주의해야하는지 설명했다.
그러나 raw_input은 입력을 평가하지 않고 그대로 문자열로 반환합니다.
>>> import sys >>> sys.version '2.7.6 (default, Mar 22 2014, 22:59:56) \n[GCC 4.8.2]' >>> data = raw_input("Enter a number: ") Enter a number: 5 + 17 >>> data, type(data) ('5 + 17', <type 'str'>)
파이썬 요법
Python 3.x의 입력과 Python 2.x의 raw_input은 비슷하며 raw_input은 Python 3.x에서 사용할 수 없습니다.
>>> import sys >>> sys.version '3.4.0 (default, Apr 11 2014, 13:05:11) \n[GCC 4.8.2]' >>> data = input("Enter a number: ") Enter a number: 5 + 17 >>> data, type(data) ('5 + 17', <class 'str'>)
해결책
귀하의 질문에 대답하기 위해 Python 3.x는 데이터 유형을 평가하고 변환하지 않으므로 int와 같이 명시 적으로 int로 변환해야합니다.
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
당신은 어떤 수의 수를 받아 들일 수 있고 이것을 int 함수로 base-10으로 직접 변환 할 수 있습니다.
>>> data = int(input("Enter a number: "), 8) Enter a number: 777 >>> data 511 >>> data = int(input("Enter a number: "), 16) Enter a number: FFFF >>> data 65535 >>> data = int(input("Enter a number: "), 2) Enter a number: 10101010101 >>> data 1365
두 번째 매개 변수는 입력 된 숫자의 기초가 무엇인지 알려주고 내부적으로 숫자를 해석하고 변환합니다. 입력 된 데이터가 틀리면 ValueError가 발생합니다.
>>> data = int(input("Enter a number: "), 2) Enter a number: 1234 Traceback (most recent call last): File "<input>", line 1, in <module> ValueError: invalid literal for int() with base 2: '1234'
분수 성분을 가질 수있는 값의 경우 유형은 int가 아닌 float가됩니다.
x = float(input("Enter a number:"))
그 외에는 프로그램을 조금 바꿀 수 있습니다.
while True: ... ... if input("Play again? ") == "no": break
break와 True를 사용하여 play 변수를 없앨 수 있습니다.
추신 : 파이썬 기대하지 않는다; 줄 끝에서 :)
-
==============================
2.Python 3.x에서 raw_input은 input으로 이름이 바뀌었고 Python 2.x 입력은 제거되었습니다.
Python 3.x에서 raw_input은 input으로 이름이 바뀌었고 Python 2.x 입력은 제거되었습니다.
이것은 raw_input과 마찬가지로 Python 3.x에서의 입력은 항상 문자열 객체를 반환한다는 것을 의미합니다.
문제를 해결하려면 int에 넣어 입력을 명시 적으로 정수로 만들어야합니다.
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
또한 파이썬은 세미콜론을 사용하지 않아도됩니다. 그래서, 그들에게 긍정적 인 일을하지 마십시오.
-
==============================
3.한 줄에 여러 정수가있는 경우지도가 더 좋을 수도 있습니다.
한 줄에 여러 정수가있는 경우지도가 더 좋을 수도 있습니다.
arr = map(int, raw_input().split())
숫자가 이미 알려지면 (2 개의 정수처럼), 다음을 사용할 수 있습니다.
num1, num2 = map(int, raw_input().split())
-
==============================
4.input () (Python 3)과 raw_input () (Python 2)은 항상 문자열을 반환합니다. int ()를 사용하여 결과를 정수로 명시 적으로 변환하십시오.
input () (Python 3)과 raw_input () (Python 2)은 항상 문자열을 반환합니다. int ()를 사용하여 결과를 정수로 명시 적으로 변환하십시오.
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
프로 팁 : 세미콜론은 파이썬에서 필요하지 않습니다.
-
==============================
5.여러 질문에 한 줄에 여러 정수를 입력해야합니다. 가장 좋은 방법은 숫자의 전체 문자열을 한 줄씩 입력 한 다음 정수로 나누는 것입니다.
여러 질문에 한 줄에 여러 정수를 입력해야합니다. 가장 좋은 방법은 숫자의 전체 문자열을 한 줄씩 입력 한 다음 정수로 나누는 것입니다.
p=raw_input() p=p.split() for i in p: a.append(int(i))
-
==============================
6.정수로 변환 :
정수로 변환 :
my_number = int(input("enter the number"))
부동 소수점 수에 대해서도 마찬가지로 :
my_decimalnumber = float(input("enter the number"))
-
==============================
7.파이썬에서 int로 입력하기 : 우리는 다음을 사용하여 간단한 문자열 입력을 사용합니다.
파이썬에서 int로 입력하기 : 우리는 다음을 사용하여 간단한 문자열 입력을 사용합니다.
input()
이제 int를 input으로 사용하기를 원합니다. 그래서이 문자열을 int로 typecast합니다. 단순히 다음을 사용 :
int(input())
-
==============================
8.파이썬 3.x는 항상 string을 반환하는 input () 함수를 가지고 있습니다. 당신은 int로 변환해야합니다.
파이썬 3.x는 항상 string을 반환하는 input () 함수를 가지고 있습니다. 당신은 int로 변환해야합니다.
연못, 예.
x = int(input("Enter a number: ")) y = int(input("Enter a number: "))
2.h
python 2.x에서 raw_input ()과 input () 함수는 항상 string을 반환하므로 int로 변환해야합니다.
x = int(raw_input("Enter a number: ")) y = int(input("Enter a number: "))
-
==============================
9.파이썬 3.x에서. 기본적으로 입력 함수는 문자열 형식의 입력을받습니다. 정수로 변환하려면 int (input ())를 포함해야합니다.
파이썬 3.x에서. 기본적으로 입력 함수는 문자열 형식의 입력을받습니다. 정수로 변환하려면 int (input ())를 포함해야합니다.
x=int(input("Enter the number"))
-
==============================
10.CodeChef에서 공간을 기준으로 분리 된 두 개의 정수를 한 줄에서 읽어야하는 문제를 해결하면서 정수 입력 문제를 겪었습니다.
CodeChef에서 공간을 기준으로 분리 된 두 개의 정수를 한 줄에서 읽어야하는 문제를 해결하면서 정수 입력 문제를 겪었습니다.
int (input ())는 단일 정수로는 충분하지만 두 정수를 직접 입력하는 방법을 찾지 못했습니다. 나는 이것을 시도했다 :
num = input() num1 = 0 num2 = 0 for i in range(len(num)): if num[i] == ' ': break num1 = int(num[:i]) num2 = int(num[i+1:])
이제 num1과 num2를 정수로 사용합니다. 희망이 도움이됩니다.
-
==============================
11.
def dbz(): try: r = raw_input("Enter number:") if r.isdigit(): i = int(raw_input("Enter divident:")) d = int(r)/i print "O/p is -:",d else: print "Not a number" except Exception ,e: print "Program halted incorrect data entered",type(e) dbz() Or num = input("Enter Number:")#"input" will accept only numbers
-
==============================
12.귀하의 예제에서 int (input (...))는 어떤 경우에도 속임수를 쓰지 만, 파이썬 2의 미래 코드의 builtins.input은 고려해야 할 가치가 있습니다. 파이썬 2와 3 모두에서 코드가 작동하고 파이썬 2의 입력 입력 데이터 타입 (builtins.input은 기본적으로 raw_input처럼 동작 함)에 대해 "똑똑"하려고 노력합니다.
귀하의 예제에서 int (input (...))는 어떤 경우에도 속임수를 쓰지 만, 파이썬 2의 미래 코드의 builtins.input은 고려해야 할 가치가 있습니다. 파이썬 2와 3 모두에서 코드가 작동하고 파이썬 2의 입력 입력 데이터 타입 (builtins.input은 기본적으로 raw_input처럼 동작 함)에 대해 "똑똑"하려고 노력합니다.
-
==============================
13.
n=int(input()) for i in range(n): n=input() n=int(n) arr1=list(map(int,input().split()))
for 루프는 'n'번 실행됩니다. 두 번째 'n'은 배열의 길이입니다. 마지막 명령문은 정수를리스트로 맵핑하고 공백으로 분리 된 형식으로 입력을받습니다. for 루프의 끝에서 배열을 반환 할 수도 있습니다.
-
==============================
14.
play = True while play: #you can simply contain the input function inside an int function i.e int(input("")) #This will only accept int inputs # and can also convert any variable to 'int' form x = int(input("Enter a number: ")) y = int(input("Enter a number: ")) print(x + y) print(x - y) print(x * y) print(x / y) print(x % y) if input("Play again? ") == "no": play = False
-
==============================
15.예, 파이썬 3.x에서는 raw_input이 입력으로 대체되었습니다. 입력 사용의 이전 동작으로 되돌리려면 다음을 수행하십시오.
예, 파이썬 3.x에서는 raw_input이 입력으로 대체되었습니다. 입력 사용의 이전 동작으로 되돌리려면 다음을 수행하십시오.
eval (input ( "숫자 입력 :"))
이렇게하면 입력 된 값이 정수라는 것을 파이썬이 알 수 있습니다.
from https://stackoverflow.com/questions/20449427/how-can-i-read-inputs-as-numbers by cc-by-sa and MIT license
'PYTHON' 카테고리의 다른 글
[PYTHON] 최신 종속성에도 불구하고 파이썬 요청에 SSL 오류가 발생했습니다. (0) | 2018.11.23 |
---|---|
[PYTHON] Python에서 순차적으로 명령 실행 (0) | 2018.11.23 |
[PYTHON] N 포인트와 numpy / scipy에서의 참조 간의 효율적인 거리 계산 (0) | 2018.11.23 |
[PYTHON] MySQL 오류 : 2013, "초기 통신 패킷 읽기 중, 시스템 오류 : 0"에서 MySQL 서버 연결이 끊어졌습니다. (0) | 2018.11.23 |
[PYTHON] 파이썬 : 0으로 나누기 주위에 점점 (0) | 2018.11.23 |