【问题标题】:Appending and printing list追加和打印列表
【发布时间】:2017-08-10 13:16:19
【问题描述】:

我尝试在 Python 3 中创建一个列表,它会在其中附加并打印出所有小于用户输入的数字,但是当用户输入 90 或更多时,列表会变为空。为什么?

x = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
num = int(input('Please enter a randome number: '))
a = 0
y = []
while (a < 11):
     if (x[a] < num):
    y.append(x[a])
#   print (x[a])
    a = a + 1
else:
    print (y)
    break

【问题讨论】:

  • 你的缩进到处都是。查看我的答案以了解正确的缩进和更好的循环解决方案

标签: python-3.x list printing append empty-list


【解决方案1】:

这里,这是更干净,正确的缩进,并且不依赖于排序列表:

x = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89]
num = int(input('Please enter a random number: '))

y = []
for item in x:
    if item < num:
        y.append(item)

print(y)

【讨论】:

  • 谢谢!它更干净,更容易理解!
  • 别担心,很乐意帮助@Hernes97
【解决方案2】:

我不知道这是什么语言,所以这可能是完全错误的,但你说你希望它打印小于 90 的数字。

你正在做if (x[a] &lt; num) 然后将数据附加到 y 否则打印 y。

我想你是说

while (a < 11):
    if (x[a] < num):
        y.append(x[a])
    #   print (x[a])
        a = a + 1
print (y)

就像我说我不懂语言,但它看起来像一个缩进问题。

【讨论】:

  • 它是 python 3。所以与其在 else 语句中结束它,我应该只执行 if 语句?
  • 您想创建一个小于num 的数字列表,然后打印它们,所以我不明白您为什么需要 else 语句。 (除非您想在第一次看到大于 num 的数字时停止创建数字)
猜你喜欢
  • 2021-11-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-04-10
  • 2016-08-11
  • 1970-01-01
  • 2020-09-24
相关资源
最近更新 更多