我正在尝试在循环中的一行中读取整数。例如,如果我需要读取5个Nos,则需要从运行时读取它们,假设为1 3 2 1 2
。问题是我不知道我需要读取多少个整数,因为它也会在运行时提供。
到目前为止,我已经尝试过:
c1=input()
c1=int(c1)
for i in range(c1):
ar[i]=int(input())
但是它将整数读取为:
1
3
2
1
2
有人可以帮忙吗?
答案 0 :(得分:1)
使用以下命令进行输入:
ar = input().split()
您将收到的输入,即ar [0]将在类'str'中
为了获取整数,可以使用列表理解
ar = [int(data) for data in input().split()]
答案 1 :(得分:1)
# if the enter is formatted as int plus white space. I think this would solve your problem.
num_str = input() # 1 3 2 1 2
num_str_arr = num_str.split(' ')
num_arr = [int(x) for x in num_str_arr]
print(num_arr)
# output: [1, 3, 2, 1, 2]
# with the list I believe you can do whatever you want.
答案 2 :(得分:0)
您是否正在尝试做类似的事情?'
functions
控制台
import numpy as np
import pydot
from sklearn.datasets import load_iris
iris = load_iris()
test_idx = [0, 50, 100]
train_target = np.delete(iris.target, test_idx)
train_data = np.delete(iris.data, test_idx, axis=0)
test_target = iris.target[test_idx]
test_data = iris.data[test_idx]
clf = tree.DecisionTreeClassifier()
clf.fit(train_data, train_target)
print(test_target)
print(clf.predict(test_data))
from sklearn.externals.six import StringIO
dot_data = StringIO()
tree.export_graphviz(clf,
out_file=dot_data,
feature_names=iris.feature_names,
class_names=iris.target_names,
filled=True, rounded=True,
impurity=False)
graph = pydot.graph_from_dot_data(dot_data.getvalue())
graph.write_pdf("iris.pdf")
print(test_data[0], test_target[0])
答案 3 :(得分:0)
您可以简单地通过列表理解将字符串映射到int。
>>> [int(n) for n in input().split()]
2 3 4 5 6 7 8 9
[2, 3, 4, 5, 6, 7, 8, 9]
使用此代码,您无需预先知道会有多少个。因为它们都在同一条线上。
对于没有输入有效整数的情况,这没有错误处理。