我面临的唯一问题是assert语句。我需要确保用户只输入大于零的整数,而不输入任何字符或字符符号如果用户输入字符或符号,assert语句应该打印错误语句。我已经尝试过isinstance()
,type(variable) == int
,但只得到一个名称错误。有没有不使用if的方法?你知道吗
def PascalTriangle(rows):
ptriangle = [[1], [1, 1]]
if rows == 1:
return ptriangle[0]
else:
for rownumber in range(2, rows):
ptriangle.append([1]*rownumber)
for number in range(1, rownumber):
ptriangle[rownumber][number] = (ptriangle[rownumber-1][number-1]+ptriangle[rownumber-1][number])
ptriangle[rownumber].append(1)
return ptriangle
def PrintPascalTriangle(ptriangle):
largest_element = ptriangle[-1][len(ptriangle[-1]) // 2]
element_width = len(str(largest_element))
def format_row(row):
return ' '.join([str(element).center(element_width) for element in row])
triangle_width = len(format_row(ptriangle[-1]))
for row in ptriangle:
print(format_row(row).center(triangle_width))
rows = input('Enter the number of rows in Pascal`s Triangle: ')
assert (rows > 0),"Number of rows should be greater than zero"
PrintPascalTriangle(PascalTriangle(rows))
是一个很好的开始方式,处理非负整数,因此
'2'.isdigit()
将解析true
我会这样分析:
Checked对输入“1”和“a”起作用,返回正确的结果。请记住,逻辑运算是从左到右解析的,因此如果不是数字,则第二部分
int(rows) > 0
将不会执行。你知道吗快乐编码
.isdigit()
检查输入是否可以是正整数。while not
将用户放入一个循环中,直到他输入一个正整数。你知道吗相关问题 更多 >
编程相关推荐