Python入门笔记(七)

人生苦短 我用Python

循环结构

  • 嵌套循环

在一个循环结构中嵌套另一个完整的循环结构

1
2
3
4
5
6
7
8
9
# ----------------------------
while 表达式1:
while 表达式2:
语句块2
# ----------------------------
for 循环变量1 in 遍历对象1:
for 循环变量2 in 遍历对象2:
语句块2
# ----------------------------

生成三行四列*号:

1
2
3
4
for i in range(1,4):
for j in range(1,5):
print('*',end='')
print() #换行

生成直角三角形:

1
2
3
4
for i in range(1,6):
for j in range(1,i+1):
print('*',end='')
print() #换行

生成倒直角三角形:

*****
****
***
**
*

1
2
3
4
for i in range(1,6):
for j in range(1,7-i): # 1-->5 2-->4 ...
print('*',end='')
print() #换行

生成等腰三角形:
&&&&*
&&&***
&&*****
&*******
********\ *

1
2
3
4
5
6
for i in range(1,6):
for j in range(1,6-i):
print(' ',end='')
for k in range(1,2*i):
print('*',end='')
print() #换行

生成棱形:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
row=eval(input('请输入棱形的行数:'))
while row%2==0:
print:('请重新输入棱形的行数,限奇数:')
row=eval(input('请输入棱形的行数:'))
# ---先生成上半部分---
top_row=(row+1)//2 # 上半部分行数
for i in range(1,top_row+1):
for j in range(1,top_row+1-i):
print(' ',end='')
for k in range(1,2*i):
print('*',end='')
print() #换行
# ---在生成下半部分---
bottom_row=row//2
for i in range(1,bottom_row+1):
for j in range(1,i+1):
print(' ',end='')
for k in range(1,2*bottom_row-2*i+2):
print('*',end='')
print()

生成空心棱形:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
row=eval(input('请输入棱形的行数:'))
while row%2==0:
print:('请重新输入棱形的行数,限奇数:')
row=eval(input('请输入棱形的行数:'))
# ---先生成上半部分---
top_row=(row+1)//2 # 上半部分行数
for i in range(1,top_row+1):
for j in range(1,top_row+1-i):
print(' ',end='')
for k in range(1,2*i):
if k==1 or k==2*i-1:
print('*',end='')
else:
print(' ',end='')
print() #换行
# ---在生成下半部分---
bottom_row=row//2
for i in range(1,bottom_row+1):
for j in range(1,i+1):
print(' ',end='')
for k in range(1,2*bottom_row-2*i+2):
if k==1 or k==2*bottom_row-2*i+2-1:
print('*',end='')
else:
print(' ',end='')
print()