【发布时间】:2018-05-24 16:52:59
【问题描述】:
我正在尝试生成一个代码来验证用户输入是否符合帕斯卡三角形的标准。我知道如何输入行数并让它形成一个帕斯卡三角形,但我无法弄清楚如何让用户输入像1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 这样的东西,并且让我的程序说它是否是帕斯卡三角形或不。
values = input("Enter the numbers: ").split()
pascals_triangle = list(map(list, values))
我知道第一行可以拆分数字,第二行会将数字分配到列表的各个列表中。每次我尝试让列表在每一行中增加 1 时,我都会收到 str/int 错误。一旦我通过了这个小路障,我应该能够找出其余的代码。
data = input("Enter values: ").split()
def pascal_triangle(data):
size = int(data[0])
n = 2 * size + 1
grid = [[0 for x in range(n)] for y in range(size)]
left = 1
for i in range(size, 0, -1):
grids = data[i].split(' ')
count = 0
for g in grids:
grid[i - 1][left + 2 * count] = int(g)
count += 1
left += 1
if count != i:
return False
left = 1
for i in range(size - 1, -1, -1):
if i == 0:
return grid[i][left] == 1
numbers = i + 1
count = 0
while count < numbers:
current = grid[i][left + count * 2]
upper_left = grid[i - 1][left - 1 + count * 2]
upper_right = grid[i - 1][left + 1 + count * 2]
if current != (upper_left + upper_right):
return False
count += 1
left += 1
return False
status = pascal_triangle(data)
if status:
print('It is a pascal triangle')
else:
print('It is not a pascal triangle')
那么,在这段代码中,为什么我仍然没有得到准确的答案?
【问题讨论】:
-
向我们展示您出错的尝试,以便我们可以解释错误或您如何出错。一个简单但通用的答案是使用长度增加的切片。
-
“每次我尝试获取列表时......” 你能展示一下你的尝试吗?这对我们来说也会更容易。
-
如果以下答案之一解决了您的问题,您应该接受它(单击相应答案旁边的复选标记)。这有两件事。它让每个人都知道您的问题已得到您满意的解决,并为帮助您的人提供帮助。有关完整说明,请参阅here。
标签: python python-3.x list