如何输出N行,每行N,N-1,..,1个字符

时间:2015-08-17 23:17:05

标签: python

目前正在学习python并遇到了一个问题我如何才能做到这一点?以下示例是问题所在。

$q3 = "select * from alerts";
$r3 = mysql_query($q3) or die(mysql_error());
$a3 = mysql_fetch_array($r3);

if(($a3['rentsale'] == '' || $a3['rentsale'] == $_POST['rentsale']) && ($a3['propertytype'] == '' || $a3['propertytype'] == $_POST['propertytype'])) {

header("location:manage.php?result=True");  
exit(); 

}
else {
header("location:manage.php?result=False");
exit();
}

因此,它会向后计入您输入的数字,例如,如果它为5,它将显示5'x并计算它们。此外,它需要用户输入任何数字,它将执行该操作。

2 个答案:

答案 0 :(得分:1)

这应该做你想要的:

from __future__ import print_function

num = int(input("Number of lines: "))  # Use raw_input() on Python 2

for count in range(num, 0, -1):
    print('x' * count)
    print()

演示:

$ ./SO_32061218.py 
Number of lines: 5
xxxxx

xxxx

xxx

xx

x

答案 1 :(得分:0)

您可以使用for循环以降序迭代范围:

n = int(input("Number of lines: "))
for i in range(n, 0, -1):
    print('x' * i)

如果您使用的是Python 2,则应将input()替换为raw_input()

作为替代方案,您可以按升序生成“x”序列,然后在输出之前将其反转。

n = int(input("Number of lines: "))
print(*reversed(['x' * i for i in range(1, n+1)]), sep='\n')