调试python函数
我很难让我的功能正常工作。My functions需要是一个参数,它接受调试python函数,python,Python,我很难让我的功能正常工作。My functions需要是一个参数,它接受*星号字符,并在后续行中打印出1个星号、3个ast、5个奇数。所以第一行有1个ast,第二行有3个ast,依此类推。该参数将接受任何奇数int 我的尝试: def arrowHead(n): spaces = n / 2 for x in range(1, n+2, 2): string_ln = '' for num in range(spaces): string_
*星号
字符,并在后续行中打印出1个星号、3个ast、5个奇数。所以第一行有1个ast,第二行有3个ast,依此类推。该参数将接受任何奇数int
我的尝试:
def arrowHead(n):
spaces = n / 2
for x in range(1, n+2, 2):
string_ln = ''
for num in range(spaces):
string_ln = string_ln + ' '
for num2 in range(x): string_ln = string_ln + '*'
spaces = spaces - 1
print string_ln
final_string = ''
for x in range(n / 2):
final_string = final_string + ' '
final_string = final_string + '*'
for x in range(3):
print final_string
不清楚你的问题,但如果你想打印星号奇数次,就用这个
def arrowHead(n):
print '*' * (2*n-1)
更新:-
>>> def arrow(n,flag=1):
if flag<n:
print (' '*(arrow(n,flag+1))+' * '*(n-(2*flag-1)))
return 2*flag-1
>>> arrow(10)
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
def箭头(n,标志=1):
如果标志>>箭头(10)
*
* * *
* * * * *
* * * * * * *
* * * * * * * * *
您将无法以这种方式打印箭头,因为您无法在空格之间打印字符 你可以试试这样的吗
def arrow(n):
for x in range(n+1):
print (' '*n)+(' *'*x)
n -= 1
>> arrow(7)
>>
*
* *
* * *
* * * *
* * * * *
* * * * * *
* * * * * * *
如果要调试Python脚本,可以使用。例如,在系统的shell或命令行中:
python -m pdb yourscript.py
然后,您可以使用
n
(跳过函数调用)、s
(进入函数调用),使用p yourvarname
打印变量的状态,并使用其他几个命令(尝试使用help
查看所有命令,然后使用help somecommand
查看详细帮助).您还没有告诉我们什么不起作用。@mVChr没有,我将在周一测试之前检查它的样本测试问题。范围(x)内num2的行:string_ln=string_ln+'*'
是一个明显的错误。string\u ln=string\u ln+'*'
应该是它下面缩进代码块的一部分。哇,非常感谢!我明白我做错了什么。最后一个问题,我如何让箭头看起来像钻石而不是白兰地?我很确定你可以从这里看出,我给你的代码是3行,你需要做相反的事情。如果这个答案对原来的问题是正确的,那么接受它,如果需要的话,再问另一个。它是歪斜的,而不是没有多余空间的('*'*x)
?哇哦,是的,对不起,从解释器复制了错误的测试。谢谢!但是,我怎样才能让箭头看起来像钻石而不是白兰地呢?就像箭头(9)一样,你会有一个ast。第一行,第二行2行,第三行3行,第四行2行,最后一行1行?