我不知道如何根据用户选择获取输入。即“您要输入多少个数字?”如果答案为5,则我的数组在一行中有5个空格,其中5个整数用空格隔开。
num = []
x = int(input())
for i in range(1, x+1):
num.append(input())
上面的代码有效,但是输入由enter分隔(下一行)。即:
2
145
1278
我想得到:
2
145 1278
感谢您的帮助。
编辑:
x = int(input())
while True:
attempt = input()
try:
num = [int(val) for val in attempt.split(" ")]
if len(num)== x:
break
else:
print('Error')
except:
print('Error')
这似乎有效。但是,为什么会出现“超出内存限制”错误?
编辑: 无论使用哪种方法,我都会遇到相同的问题。
x = int(input())
y = input()
numbers_list = y.split(" ")[:x]
array = list(map(int, numbers_list))
print(max(array)-min(array)-x+1)
或
x = int(input())
while True:
attempt = input()
try:
num = [int(val) for val in attempt.split(" ")]
if len(num)== x:
break
else:
print('Error')
except:
print('Error')
array = list(map(int, num))
print(max(array)-min(array)-x+1)
或
z = int(input())
array = list(map(int, input().split()))
print(max(array)-min(array)-z+1)
答案 0 :(得分:0)
最简单的方法如下:
input_list = []
x = int(input("How many numbers do you want to store? "))
for inputs in range(x):
input_number = inputs + 1
input_list.append(int(input(f"Please enter number {input_number}: ")))
print(f"Your numbers are {input_list}")
您是否有理由希望输入仅在一行上?因为您只能限制以这种方式存储(或打印)多少个数字,而不能限制用户输入多少个数字。用户只需继续输入即可。
答案 1 :(得分:0)
假设您要在一行中输入数字,这是一种可能的解决方案。用户必须像在示例中一样对数字进行拆分。如果输入格式错误(例如“ 21 asd 1234”)或数字与给定的长度不匹配,则用户必须再次输入值,直到输入有效为止。
row One_X One_Y Two_X Two_Y
0 0 1.1 1.2 1.11 1.22
1 1 1.1 1.2 1.11 1.22
2 2 1.1 1.2 1.11 1.22
# As Labelled Index
In [76]: df = df.set_index('row')
In [77]: df
Out[77]:
One_X One_Y Two_X Two_Y
row
0 1.1 1.2 1.11 1.22
1 1.1 1.2 1.11 1.22
2 1.1 1.2 1.11 1.22
# With Hierarchical Columns
In [78]: df.columns = pd.MultiIndex.from_tuples([tuple(c.split('_'))
....: for c in df.columns])
....:
In [79]: df
Out[79]:
One Two
X Y X Y
row
0 1.1 1.2 1.11 1.22
1 1.1 1.2 1.11 1.22
2 1.1 1.2 1.11 1.22
答案 2 :(得分:0)
您可以使用此功能而无需使用x
:
num = [int(x) for x in input().split()]
答案 3 :(得分:0)
如果要在一行中仅用空格输入数字,则可以执行以下操作:
x = int(input("How many numbers do you want to store? "))
y = input(f"Please enter numbers seperated by a space: ")
numbers_list = y.split(" ")[:x]
print(f"We have a list of {len(numbers_list)} numbers: {numbers_list}")
即使某人输入的数字超出了承诺的数量,它也会返回承诺的数量。
输出:
How many numbers do you want to store? 4
Please enter numbers seperated by a space: 1 4 6 7
We have a list of 4 numbers: ['1', '4', '6', '7']
答案 4 :(得分:0)
尝试一下。
x = int(input())
num = [] # List declared here
while True:
try:
# attempt moved inside while
# in case input is in next line, the next line
# will be read in next iteration of loop.
attempt = input()
# get values in current line
temp = [int(val) for val in attempt.split(" ")]
num = num + temp
if len(num) == x:
break
except:
print('Error2')
也许机器人正在使用换行符而不是空格传递整数,在这种情况下,while循环永远不会终止(假设您的机器人不断发送数据),因为每次都会重写num。
注意-此代码将适用于空格以及换行符分隔的输入