在同一行插入多个数字Python

问题描述

我试图在此程序的同一行中输入两个数字,但在我输入这两个数字(用空格分隔)时出现以下错误

Traceback (most recent call last):
  File "(the file path)",line 3,in <module>
    for x in range(1,n1 + 1):
TypeError: can only concatenate str (not "int") to str

这是我的代码

n1,n2 = input("Insert two numbers: ").split()
sum1 = 0
for x in range(1,n1 + 1):
    sum1 += x ** n2
    print(f'{x} to the power of {n2} is {x ** n2}')
print('The total sum is:',sum1)

我不明白为什么我会收到那个错误。我做错了什么?

在第一行的输入中,我尝试添加“str”以解决错误

n1,n2 = str(input("Insert two numbers: ").split())

但是现在当我写两个数字时它又返回了另一个错误

Traceback (most recent call last):
  File "(the file path)",line 1,in <module>
    n1,n2 = str(input("Insert two numbers: ").split())
ValueError: too many values to unpack (expected 2)

我不太会使用 Python,我不明白我做错了什么。你能帮我一把吗?

解决方法

您需要将两个数字都转换为 int

n1,n2 = [int(x) for x in input("Insert two numbers: ").split()]

该错误是由 Python 尝试将字符串 n1 和整数 1 连接为字符串引起的:

n1 + 1

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...