print("*", end="")
print("*", end="")
print("*", end="")
print("*", end="")
print()
print("*", end="")
print("*", end="")
print("*", end="")
print("*", end="")
print()
print("*", end="")
print("*", end="")
print("*", end="")
print("*", end="")
print()
#简化成双for循环
for r in range(3): # 外层循环控制行
for c in range(4): # 内层循环控制列
print("*", end="")
print()
"""
练习1:
画出:
*#*#*#
*#*#*#
*#*#*#
*#*#*#
"""
for r in range(4):
for c in range(6):
if c % 2 == 0:
print("*", end="")
else:
print("#", end="")
print()
"""
练习2:
*
**
***
****
"""
for r in range(4): # 0 1 2 3
for c in range(r + 1): # 1 2 3 4
print("*", end="")
print()
"""
练习3:
列表排序(升序 小 -> 大)
[3,80,4,45,5,7,9,1]
目标:列表中所有元素两两比较
思想:
1.取出第一个元素,与后面的元素进行比较,
2.取出第二个元素,与后面的元素进行比较,
3.取出第三个元素,与后面的元素进行比较,
....
N.取出倒数第二个元素,与后面元素进行比较
如果取出的元素大于(>)后面的元素,
则交换。
"""
list01 = [3, 80, 4, 45, 5, 7, 9, 1]
# 思路:
# 取出第一个元素,与后面元素进行比较
# list01[0] list01[1]
# list01[0] list01[2]
# list01[0] list01[3]
# for c in range(1, len(list01)):
# # list01[0] list01[c]
# pass
#
# 取出第二个元素,与后面元素进行比较
# for c in range(2, len(list01)):
# # list01[1] list01[C]
# pass
#
# 取出第三个元素,与后面元素进行比较
# for c in range(3, len(list01)):
# # list01[2] list01[c]
# pass
for r in range(len(list01) - 1): # 0
# 作比较
for c in range(r + 1, len(list01)):
# list01[2] list01[c]
if list01[r] > list01[c]:
list01[r], list01[c] = list01[c], list01[r] # 元素交换
print(list01)
"""
练习4:
判断列表[3, 80, 45, 5, 80, 1]
思路:
所有元素两两比较,发现相同的则打印结果
所有元素比较结束,都没有发现相同项,则打印结果。
"""
list02 = [3, 81, 45, 5, 80, 1]
# 取出第一个,与后面比较
# list02[0] list02[1]
# list02[0] list02[2]
# list02[0] list02[3]
# for c in range(1, len(list02)):
# # list02[0] list02[c]
# pass
# for c in range(2, len(list02)):
# # list02[1] list02[c]
# pass
# for c in range(3, len(list02)):
# # list02[2] list02[c]
# pass
# 结果:假设没有相同项
result = False
for r in range(0, len(list02) - 1):
for c in range(r + 1, len(list02)):
# list02[r] list02[c]
if list02[r] == list02[c]:
print("具有想同项:")
result = True
break # 退出循环
if result:
break
if not result:
print("没有相同项:")
"""
练习5:
list03=[
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
]
1.打印第二行第三个元素
2.打印第三行每个元素
3.打印第一列每个元素
"""
list03 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
]
# 1.打印第二行第三个元素
print(list03[1][2])
# 2.打印第三行每个元素
for itme in list03[2]:
print(itme)
# 3.打印第一列每个元素
# 00 10 20 30 [行索引][列索引]
for r in range(len(list03)):
print(list03[r][0])
"""
练习6:
矩阵转置
将二维列表的列,变成行,形成一个新列表
第一列变成第一行
第二列变成第二行
第三列变成第三行
list04 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
]
"""
list04 = [
[1, 2, 3, 4],
[5, 6, 7, 8],
[9, 10, 11, 12],
[13, 14, 15, 16],
]
# 方法一:
result = []
for c in range(4):
line = [] # 行
result.append(line)
# 00 10 20 30
for r in range(4):
line.append(list04[r][c])
print(result)
# 思路:内循环出现多个,所以套用一个外层for
# line = []
# # 00 10 20 30
# for r in range(4):
# line.append(list03[r][1])
# print(line)
# line = []
# # 00 10 20 30
# for r in range(4):
# line.append(list03[r][2])
# print(line)
# 方法二:
result = []
for c in range(len(list04[0])):
result.append([])
# 00 10 20 30
for r in range(len(list04)):
result[c].append(list04[r][c])
print(result)