我对python和编码非常陌生,课程并不太糟糕,但有时一个简单的概念会让我感到难过。一旦我学会了解决方案,我就会感到愚蠢,但此时我已经感到愚蠢。请帮我解决这个问题。
我想创建一个函数,它接受输入(num_input)在for循环中重复多少次(对于num_input中的i),它提示用户输入另一个输入(这是一个数字列表)但是N个数量次,然后在最后打印总输出列表。每次我尝试编写代码时,它都会返回给定的最后一个输入,或者返回一个none语句。任何指导都会受到赞赏,我已经彻底看了,我向你保证,我很无能为力。
num_input = eval(input("How many cages?: "))
for i in num_cages:
i = eval(input("Please input list numbers separated by commas: "))
in = list(i)
print (in)
答案 0 :(得分:2)
我知道你用于循环的目的是什么?
num_input = int(input("How many cages? : "))
num_list=[]
for i in range(num_input):
val = input("Please input the numbers: ")
num_list.append(val)
print(num_list)
希望它有所帮助。快乐编码:)
答案 1 :(得分:1)
print([input() for i in range(n)])
棘手的方式。
答案 2 :(得分:0)
首先,您使用 num_input 接受笼子的数量,但是在您使用变量 num_cages 的下一行上,请对其进行纠正。
现在,在for循环(for i in num_input)
中你接受一个以逗号分隔的数字,你将它存储在循环变量 i 中,使用另一个变量,然后将你的下一行移动到你所在的位置将列表存储在某个变量中并打印它。此外, in 是保留字,不能用于变量。因此,更改后您的代码应该是
num_input = eval(input("How many cages?: "))
for i in range(num_input):
temp = eval(input("Please input list numbers separated by commas: "))
print(list(temp))
答案 3 :(得分:0)
很抱歉,如果这是错误的,但正如Racialz所说,你想要实现的目标有点不清楚。
首先,您尚未定义num_cages
。我假设您打算使用num_input
。此外,如果要运行for
循环一定次数,则必须使用range()
函数。另外,要保存用户输入的各种列表,您应该创建一个空白列表(我称之为我的num_list
),以附加输入。
num_input = eval(input("How many cages?: "))
num_list = []
for i in range(num_input):
i = eval(input("Please input list numbers separated by commas: "))
num_list.append(i)
print(num_list)
这会将输入保存为元组,但如果您想要这样做,则可以将它们更改为列表。
我希望这有帮助!
编辑:你也尝试将in
定义为一个变量,但它是一个python关键字,所以你应该把它称之为其他。
答案 4 :(得分:0)
让我试着指导你完成这件事。
首先,目的略显清晰:我们想要做的是生成列表清单。用户输入一个数字(@PostConstruct
),确定我们要求他提供数字列表的次数。然后,我们循环num_input
次,每次都要求用户给我们一个数字列表。最后,我们要打印结果。
让我们开始吧。
首先,我们需要哪些变量?用于保存最大列表数(num_input
)的东西,用于保存用户输入的列表(num_input
),用于保存用户输入的临时变量(user_lists
)和计数器在循环中使用(temp
)。
要做的第一件事是从用户获取循环迭代次数:i
。这很简单:
num_input
此代码与您的代码之间的主要区别在于使用 num_input = int(input("How many cages? "))
。通常不建议在用户输入情况下使用eval
,尤其是因为您非常清楚您的预期输入类型(整数)。并且,作为不使用eval
的另一个优点,如果用户提交的不是整数(例如字符),程序将停止并给出错误。
在我们收到用户输入后,让我们开始要求用户输入数字列表。像这样:
eval
在这段代码中,我们获取用户输入并处理该输入并保存。但首先我们将 user_lists = []
for i in range(0, num_input):
temp = input("Please input list numbers separated by commas: ")
temp = [int(n) for n in temp.split(",")]
user_lists.append(temp)
初始化为空列表。然后,从0到user_list
次计数,我们开始实际过程。一旦我们将用户输入(假设是一个数字列表)保存在temp中,我们就会启动实际棘手的处理部分。
这一行:
num_input
负责处理用户输入并将其从字符串转换为列表。这里发生了什么?好吧,我们使用名为" list comprehensions"的python技巧。它是一个漂亮的快捷方式,允许您使用循环来定义列表的内容。我们正在做的是获取用户输入,将其拆分为组件列表(消除逗号),然后循环遍历这些组件并将它们转换为整数。如果这有点难以理解,请查看下面的示例代码,它与上面的单行代码相同:
temp = [int(n) for n in temp.split(",")]
好的捷径对吗?
所以,现在我们将结果放在 entry_list = user_input.split(",")
result_list = []
for entry in entry_list:
result_list.append(int(character))
变量中并想要打印它们。在这里你有几个选择。
1.您可以将其打印为列表清单:
user_lists
2.或者你可以打印它更加用户友好,每行一个列表:
print user_list
我希望这个相当长的解释可以帮助您更好地理解代码。 作为对你的挑战,尝试理解这个单线:
for entry in user_list:
print entry
它与上面的代码完全相同。