Python 帕斯卡三角形多重误差

Python 帕斯卡三角形多重误差,python,python-3.x,function,Python,Python 3.x,Function,我有这段代码来打印带有N行的pascal三角形(N表示用户输入的所需行数)。我有需要的格式,但我不知道如何使代码工作 一般来说,我对python和编程都是新手,而且在函数方面真的很吃力。我不知道如何为函数编写参数,以及如何正确地传递它们 问题从第二个函数开始(def pascal\u triangle\u tostring())。我可以获得输入并生成列表。但从这里我不知道该怎么办 #should take user input and validates it def get_triangle_

我有这段代码来打印带有N行的pascal三角形(N表示用户输入的所需行数)。我有需要的格式,但我不知道如何使代码工作

一般来说,我对python和编程都是新手,而且在
函数方面真的很吃力。我不知道如何为函数编写参数,以及如何正确地传递它们

问题从第二个函数开始(
def pascal\u triangle\u tostring()
)。我可以获得输入并生成列表。但从这里我不知道该怎么办

#should take user input and validates it
def get_triangle_size():
    while True:
        numberOfRows = input("Enter the no. of rows: ")
        try:
            numberOfRows = int(numberOfRows)
        except ValueError:
             print("N must be an integer")
             continue
        if numberOfRows <= 0:
            print("N must be at least 1")
            continue
        break
    return (numberOfRows)

#Should generate Pascals triangle (shaped like a ladder)
def generate_pascal_triangle():
    n = get_triangle_size()
    if n == 1:
        triangle = [[1]]
    elif n == 2:
        triangle = [[1], [1, 1]]
    else:
        triangle = [[1], [1, 1]]
    for i in range(2, n):
        row = [1]
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)
        triangle.append(row)

#should convert the lists of pascal triangle into a string
def pascal_triangle_tostring():
    output = ""
    triangle = get_triangle_size()
    for row in triangle:
        for value in row:
            output += str(value) + "\t"
        output += '\n'

#Main code body should call these functions to print out pascal triangle
print("This program prints a Pascal's triangle with n line")
triangle_size = get_triangle_size()
pascal_triangle = generate_pascal_triangle()
print("Pascal’s triangle with %d lines:\n" % triangle_size)
print(pascal_triangle_tostring(pascal_triangle))
#应接受用户输入并验证
def get_三角形_大小():
尽管如此:
numberOfRows=输入(“输入行数:”)
尝试:
numberOfRows=int(numberOfRows)
除值错误外:
打印(“N必须是整数”)
持续

如果numberOfRows现在我改进了你的代码,所以现在它似乎可以工作了,所以我知道你有问题,所以请问他们。您还应该真正了解python中的
函数参数
f字符串

#should take user input and validates it
def get_triangle_size():
    # while True:
    numberOfRows = input("Enter the no. of rows: ")
    try:
        numberOfRows = int(numberOfRows)
    except ValueError:
        print("N must be an integer")

    if numberOfRows <= 0:
        print("N must be at least 1")

    return numberOfRows

#Should generate Pascals triangle (shaped like a ladder)
def generate_pascal_triangle(n):
    if n == 1:
        triangle = [[1]]
    elif n == 2:
        triangle = [[1], [1, 1]]
    else:
        triangle = [[1], [1, 1]]
    for i in range(2, n):
        row = [1]
        for j in range(1, i):
            row.append(triangle[i-1][j-1] + triangle[i-1][j])
        row.append(1)
        triangle.append(row)
    return triangle

#should convert the lists of pascal triangle into a string
def pascal_triangle_tostring(triangle):
    output = ""
    for row in triangle:
        for value in row:
            output += str(value) + "\t"
        output += '\n'
    return output

#Main code body should call these functions to print out pascal triangle
print("This program prints a Pascal's triangle with n line")
triangle_size = get_triangle_size()
pascal_triangle = generate_pascal_triangle(triangle_size)
print("Pascal’s triangle with %d lines:\n" % triangle_size)
print(pascal_triangle_tostring(pascal_triangle))
#应接受用户输入并验证
def get_三角形_大小():
#尽管如此:
numberOfRows=输入(“输入行数:”)
尝试:
numberOfRows=int(numberOfRows)
除值错误外:
打印(“N必须是整数”)

如果numberOfRows我注意到的第一件事是你提出了一个
ValueError
,它几乎是由excpet语句立即生成的,因此你应该删除
raisevalueerror
行,因为它比good@Matiiss哦,是的,没错。我有一个while循环,可以检查用户输入是否为正整数。我忘了删除
raisevalueerror
,因为我只是在玩代码,看看它能做什么。非常感谢。我将编辑代码以修复此问题。请从中重复和。您已经转储了大约35行代码,但没有告诉我们出了什么问题。请提供预期的(MRE)。我们应该能够复制和粘贴一个连续的代码块,执行该文件,并再现您的问题以及跟踪问题点的输出。这让我们可以根据您的测试数据和期望的输出来测试我们的建议。显示中间结果与您预期的不同之处。@Prune回答我问题的非常慷慨的人理解我的意思。我试图解释说代码不起作用的错误。我试着调试和搜索谷歌,但没有找到一个我能理解和实现的解决方案。谢谢,非常感谢。我一直在阅读
函数参数
我似乎理解得不够快。我将继续阅读和研究您提供的代码,以便更好地理解它。再次感谢你much@MANNY当然可以,但是学习
f字符串也会很有用,因为它们非常适合字符串格式(不必学习任何复杂的东西,只需学习基础知识),而且如果你有问题,只需提问,我会尝试回答。我一定会查找并学习它(
f字符串
)。我感谢你的帮助