python 我想接收输入(数字对)并打印每个数字的总和[已关闭]

kokeuurv  于 2023-01-16  发布在  Python
关注(0)|答案(5)|浏览(161)

4小时前关门了。
Improve this question
我的代码:

list1=input('').split('\n')
for i in list(list1):
    number1,number2=i[0].split(' ')
    print(int(number1)+int(number2))

接收到的输入的格式应如下所示:
但是当我使用input('').split('\n')时,我期望:
变成['11',' 23','34'...]但它不起作用。

p1tboqfb

p1tboqfb1#

def function(l):
    for i in range(len(l)):
        l[i]=int(l[i])
c=input("Enter the number:").split(" ")
function(c)
print(sum(c))

希望这对你有帮助。

yk9xbfzb

yk9xbfzb2#

如果您的目的是打印用户输入的每对数字的总和,则以下代码将完成此操作:

user_input = input("Enter one or more pairs of numbers: ")
nums = [int(s) for s in user_input.split()]
for i in range(0, len(nums) - 1, 2):
    print(f"The sum of {nums[i]} and {nums[i + 1]} is {nums[i] + nums[i + 1]}")

输出:

Enter one or more pairs of numbers:  1 1 2 2 3 3 
The sum of 1 and 1 is 2
The sum of 2 and 2 is 4
The sum of 3 and 3 is 6

解决方案的要点是:

  • 将单个字符串数字拆分为一个列表,并将每个字符串数字转换为整数。
  • 以2为步长迭代整数列表,并在两步之间对每对数字求和。
egmofgnx

egmofgnx3#

Python在得到'\n'时会自动将其转换为Enter。但是你不能得到它,因为Python用Enter替换了\n

7gcisfzg

7gcisfzg4#

您似乎要输入两个数字,每个数字用空格分隔。
允许浮点数。使用内置的 sum() 函数。
以下代码允许每个输入包含任意数量的值:

while val := input('Enter numbers separated by whitespace or <return> to end: '):
    print(sum(map(float, val.split())))

示例:

Enter numbers separated by whitespace or <return> to end: 1
1.0
Enter numbers separated by whitespace or <return> to end: 1 2
3.0
Enter numbers separated by whitespace or <return> to end: 1.5 2
3.5
Enter numbers separated by whitespace or <return> to end: 3 4 5
12.0
Enter numbers separated by whitespace or <return> to end:
w51jfk4q

w51jfk4q5#

您必须使用while循环和split,直到input为空或None。
如果要立即打印求和结果:

while n := input().split(): print(sum(map(int,n)))

# 1 1
# 2
# 1 2
# 3
# 3 4
# 7
# 9 8
# 17
# 5 2
# 7

但如果希望在所有输入后打印结果:

list1 = []
while n := input(): list1 += [n]
print(list1)
print(*[sum(map(int,i.split())) for i in list1])

# 1 1
# 1 2
# 2 3
# 3 4
# 9 8
# 5 2

# ['1 1', '1 2', '2 3', '3 4', '9 8', '5 2']
# 2 3 5 7 17 7

相关问题