Python вводит недопустимый литерал для int() с основанием 10

#python #string #input #literals

#python #строка #ввод #литералы

Вопрос:

Мой код на python работает отлично. Но проблема заключается в веб-сайте, где требуется, чтобы входные данные были в строковом формате с пробелами между ними и принимались как целое число

Ниже приведен мой фактический код на python

     x = int(input())
    n = int(input())
    
    prod = 1
    
    if(x >= 0 and x <= 9 and n >=0 and n <= 9):
        for i in range(n):
            prod = prod * x
    print(prod) 
  

Этот код фактически вычисляет степень числа.
Пример: x = 3, n = 4, prod = 81

Теперь ошибка заключается в том, что

     ValueError: invalid literal for int() with base 10: ' 3 4'

    x = int(input())
    n = int(input())
  

Я должен принять два входных данных x amp; n в этом формате 3 4 . Кто-нибудь может мне помочь с этим?

Комментарии:

1. x, y = map(int, input().split())

Ответ №1:

заменить

 x = int(input())
n = int(input())
  

с

 s = input('enter two integers: ')
x, n = [int(i) for i in s.split()]
  

Ответ №2:

Это недопустимо, потому что в вашей строке есть пробелы. Просто split нажмите пробел, чтобы получить список из двух чисел, и, возможно, также проверьте длину результирующего списка, в зависимости от того, что вы можете получить в качестве входных данных.

Ответ №3:

Здесь вы используете int(). Следовательно, для ввода () требуется целочисленное значение в кавычках. Пробел не подпадает под категорию, называемую целыми числами. Чтобы устранить эту ошибку, используйте split()

Ответ №4:

Вот код

 x=int(input("Enter number1:"))
n=int(input("Enter number2:"))
prod = 1
if(x >= 0 and x <= 9 and n >=0 and n <= 9):
    for i in range(n):
        prod = prod * x
print(prod) 
  

Надеюсь, это полезно