1.使用while循环输出正三角形
*
* *
* * *
* * * *
* * * * *
参考答案:
i = 1
while i <= 5:
j = 1
while j <= i:
print("* ", end = '')
j += 1
print(" ")
i += 1
2.使用while循环输出倒三角形
* * * * *
* * * *
* * *
* *
*
参考答案:
i = 5
while 0 < i <= 5:
j = 1
while j <= i:
print("* ", end = '')
j += 1
print(" ")
i -= 1
3.使用while,输出等边三角形
*
* *
* * *
* * * *
* * * * *
* * * *
* * *
* *
*
参考答案1:
i = 1
while i <= 9:
if i <= 5:
print('* '*i)
else:
print('* '*(10 - i))
i += 1
参考答案2:
i = 1
while i <= 9:
if i <= 5:
j = 1
while j <= i:
print("* ", end="")
j += 1
else:
k = 1
while k <= (10-i):
print("* ", end="")
k += 1
print()
i += 1
参考答案3:
i = 1
while i <= 5:
j = 1
while j <= i:
print("* ", end = '')
j += 1
print(" ")
i += 1
i = 4
while 0 < i <= 4:
j = 1
while j <= i:
print("* ", end = '')
j += 1
print(" ")
i -= 1
4.使用循环嵌套打印九九乘法表
输出图形:
参考答案:
# 3.
i = 1
while i <= 9:
j = 1
while j <= i:
print("%d*%d=%-2d " % (i, j, i*j), end = '')
j += 1
print(" ")
i += 1
5.使用while,输出菱形
*
***
*****
*******
*********
*******
*****
***
*
思路分析1:
设总的行数为2a+1
- 先思索怎么打印出三角形:
对于三角行星阵而言,可以将图形认为是由空格和组成的(2a-1)xa的阵列
对于第i行而言,j<=(a-i)和j>=(a+i)为空格,其余为
因此,可以用if-else语句进行判断,画出三角形阵列。 - 思索怎么将三角形星阵对称:
发现当打印到第a行时,i == a,此时可以将i递减1,从而打印出另外一半
但是,最外面的while语句判断条件将变成i>=1时,才执行。
因此,因此引入变量n和x,当i==a时,改变x和n的值,可以改变判定条件。
参考答案1:
a = 5
i = 1
n = 1
x = a
while (n * i) <= x:
j = 1
while j < (a * 2 + 1):
if j <= (a-i) or j >= (a+i):
print(" ", end = "")
else:
print("*", end = "")
j += 1
print("\n")
i += n
if i == a:
n = -1
x = -1
思路分析2:
前5行规律:
先打印空格,再打印*,又打印空格
第1行: 4空格+1星号+4空格
第2行: 3空格+3星号+3空格
第3行: 2空格+5星号+2空格
第4行: 1空格+7星号+1空格
第5行: 0空格+9星号+0空格
…
第i行: (5-i)空格+(9-2*(5-i))星号+(5-i)空格
后面4行规律:
第6行: 1空格+7星号+1空格
第7行: 2空格+5星号+2空格
第8行: 3空格+3星号+3空格
第9行: 4空格+1星号+4空格
…
第i行: (i-5)空格+(9-2*(i-5))星号+(i-5)空格
参考答案2:
i = 1
while i <= 9:
if i <= 5:
# 前5行规律:
# 第i行: (5-i)空格+(9-2*(5-i))星号+(5-i)空格
print(' '*(5-i) + '*'*(9-2*(5-i)) + ' '*(5-i))
else:
# 后面4行规律:
# 第i行: (i-5)空格+(9-2*(i-5))星号+(i-5)空格
print(' '*(i-5) + '*'*(9-2*(i-5)) + ' '*(i-5))
i += 1