Python输入多行和多个空格

2024-09-30 01:26:39 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图解决一个a2oj问题“给定三个数字a、b和c。打印三个数字加在一起的总和。

我带着这个来的

import sys

numbers = [int(x) for x in sys.stdin.read().split()]

print(numbers[0] + numbers[1] + numbers[2])

我看了很多主题,但我不知道如何从输入中读取3个值。我知道我可以通过键入CTRL+D来停止这个过程,但是有没有可能使它自动(在达到第三个值之后)

谢谢

//谢谢您的快速回答,我犯了一个错误,只发布了没有输入格式的问题陈述:“三个数字由一堆空格和/或新行分隔”

例如,输入应该如下所示:

2                  

1                  4

//好的,多亏了你们,我终于做到了:

n = []

while len(n) < 3:
    s=input()
    i = s.split()       
    [n.append(int(j)) for j in i]

print(2 * sum(n))

它正在工作,但当我发送结果时,我得到了运行时错误。我不知道为什么: 链接:https://a2oj.com/p?ID=346


Tags: inimport主题forread错误stdinsys
3条回答

我不确定您要找的是什么,但似乎您要找的是python内置的输入函数:

x=input()

这将以字符串形式读取用户的任何输入。如果需要,您必须将其转换为数字

您可以读取三个值:

x=input("First value:")
y=input("Second value:")
z=input("Third value:")

由于您现在更精确地指定了问题陈述,我编辑了我的答案:

对你来说,这并不复杂。我不打算马上给你答案,因为这会破坏这一点,但我的想法是将输入封装在一个while循环中。比如:

numbers=[]
while (you have less than 3 numbers):
    (input one line and add the numbers to your list)
(print the sum of your numbers)

这样,您就可以根据需要等待尽可能多的输入,直到达到3个数字。顺便说一句,根据您的输入,您可能需要检查是否获得的数字不超过3个

  1. 当逐行给出输入时
from sys import stdin
sum = 0
for num in stdin.readline(4):
    sum = sum + int(num)
print(sum)
  1. 在CLI上提供输入时
from sys import argv
sum = 0
for num in argv[1:4]:
    sum = sum + int(num)
print(sum)

根据您的用例使用Python strip()split()函数

您可以使用:

sys.argv

  import sys
  numbers = [int(x) for x in sys.argv[1:4]]
  print(numbers)
  print(sum(numbers))

相关问题 更多 >

    热门问题