Python 3:读取输入,直到输入-1

时间:2018-03-29 11:13:42

标签: python input

在Python中,我想读取整数,直到输入-1。

示例输入:

1, 2, 3, 4, 5, 6, 7, 10, -1 # (Commas indicate new entries)

期望效果:

nums = [1,2,3,4,5,6,7,10]

附加说明: 你能用列表理解简明扼要吗?

4 个答案:

答案 0 :(得分:1)

我假设示例输入将是单个字符串并以逗号分隔。

nums = "1,2,3,4,5,6,7,10,6,7,8,20,25,30,40,55,60,-1"
nums = nums[:nums.index(",-1")].split(",")
nums = [int(x) for x in nums]

这将找到“-1”元素的索引并切断结果。然后列出理解以将所有字符串强制转换为整数,如果您将其存储为字符串,则此部分是可选的。

答案 1 :(得分:0)

您可以使用while loop

<强>实施例

inVal = input("Enter Num: ")

res = []
while int(inVal) != -1:    #Break loop if user enters -1
    res.append(inVal)
    inVal = input("Enter Num: ")
print(res)                 #Print user entered numbers

答案 2 :(得分:0)

假设您有逗号分隔值,您可以在以下行中执行以下操作:

from itertools import takewhile

s = '1,2,3,4,5,6,7,10,6,7,8,20,25,30,40,55,60,-1'

g = takewhile(lambda x: x != '-1', s.split(',')) #generator

list(map(int,g)) # convert str to in

答案 3 :(得分:0)

试试这段代码。我在这里做的是,我创建了一个空列表并保持向其附加值,除非输入为-1。希望这会对你有所帮助

choice = int(input("Enter Numbers: "))
nums = []

while choice!= -1:
 nums.append(choice)
 choice = int(input("Enter Numbers: "))

print(nums)