Как я могу центрировать вертикально и горизонтально два элемента внутри другого элемента? [Дубликат]

Python 2.x

Для ввода пользовательских данных использовались две функции: input и raw_input . Разница между ними заключается в том, что raw_input не оценивает данные и не возвращает их в виде строки. Но 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, )

Данные 5 + 17 оцениваются, а результат - 22. Когда он оценивает выражение 5 + 17, он обнаруживает, что вы добавляете два числа, и поэтому результат будет иметь одинаковый тип int. Таким образом, преобразование типа выполняется бесплатно, а 22 возвращается в результате input и сохраняется в переменной data. Вы можете думать о input как raw_input, состоящем из вызова eval .

>>> data = eval(raw_input("Enter a number: "))
Enter a number: 5 + 17
>>> data, type(data)
(22, )

Примечание: вы должны быть осторожны, когда используете input в 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', )

Python 3.x

Python 3.x input и 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', )

Решение

Чтобы ответить на ваш вопрос, поскольку Python 3.x не оценивает и не конвертирует тип данных, вам необходимо явно преобразовать его в int s, с int , как это

x = int(input("Enter a number: "))
y = int(input("Enter a number: "))

Вы можете принимать номера любой базы и преобразовывать их непосредственно в base-10 с помощью функции int, например

>>> 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 "", line 1, in 
ValueError: invalid literal for int() with base 2: '1234'

Кроме того, ваша программа может быть немного изменена, например

while True:
    ...
    ...
    if input("Play again? ") == "no":
        break

Вы можете избавиться от переменной play, используя break и while True.

PS: Python не ожидает ; в конце строки:)

0
задан wasanga7 20 March 2019 в 12:07
поделиться