# 打印正方形
# 三种状态分别逐行打印
sideLen = int(input('>>>')) # 不要用小驼峰命名变量
print('*'*sideLen)
for i in range(sideLen-2):
print('*',' '*(sideLen-2),'*',sep='')
print('*'*sideLen)
# 两种状态逐行打印
top = '*'*sideLen
mid = '*'+ ' '*(sideLen-2)+'*'
for i in range(sideLen):
if i == 0 or i == (sideLen-1):
print(top)
else:
print(mid)
# 二维矩阵,单个字符逐行打印
for i in range(sideLen):
for j in range(sideLen):
if i == 0 or i == sideLen-1:
print('*',end='')
else:
if j==0 or j == sideLen-1:
print('*',end='')
else:
print(' ',end='')
print()
# 菱形,找对称,三元表达式
space = ' '
pixel = '*'
number = int(input('请输入一个奇数:'))
middle = (number-1)//2
for i in range(-middle,middle+1):
print(space*abs(i),pixel*(number-2*abs(i)),sep='')
# 意外打出箭头
for i in range(-middle,middle+1):
print(space*(middle-abs(i)),pixel*(number-2*abs(i)),sep='')
# 箭头
for i in range(-middle,middle+1):
print(space*3*abs(i),pixel*(number-2*abs(i)),sep='')
# 漏斗
for i in range(-middle,middle+1):
print(space*(middle-abs(i)),pixel*(1+2*abs(i)),sep='')
# 闪电
for i in range(-middle,middle+1):
if i > 0:
print(space*abs(i),pixel*(middle-abs(i)+1),sep='')
elif i < 0:
print(space*middle,pixel*(middle-abs(i)+1),sep='')
else:
print(pixel*number)
# 另一种实现,二维矩阵,单字符逐行打印
# 菱形
for i in range(-middle,middle+1):
for j in range(-middle,middle+1):
if abs(i)+abs(j) >= middle+1:
print(space,end='')
else :
print(pixel,end='')
print()
# 闪电
for i in range(-middle,middle+1):
for j in range(-middle,middle+1):
if (i < 0 and j > 0) or (i > 0 and j < 0):
print(space,end='')
else:
if abs(i)+abs(j) >= middle+1:
print(space,end='')
else :
print(pixel,end='')
print()
# 漏斗
for i in range(-middle,middle+1):
for j in range(-middle,middle+1):
if abs(i) >= abs(j):
print('*',end='')
else:
print(' ',end='')
print()
# 九九乘法表,三元表达式,format格式化
# 将每一个小单元格式化,组成一个大单元
for i in range(1,10):
s = ''
for j in range(1,i+1):
s += '{}*{}={:<{}} '.format(j,i,i*j,1 if j==1 else 2)
print(s)
print('……'*20)
for i in range(1,10):
s = ''
for j in range(i,10):
s += '{}*{}={:<{}} '.format(i,j,i*j,1 if j<4 else 2)
print('{:>60}'.format(s))
print('……'*20)
for i in range(1,10):
print(' '*7*(i-1),end='')
for j in range(i,10):
print('{}*{}={:<{}}'.format(i,j,i*j,2),end=' ')
print()
print('……'*20)
# 不同点在乘积的宽度
for i in range(1,10):
for j in range(1,i+1):
product = str(i*j)
if j>1 and i*j<10:
product += ' '
print('{}*{}={} '.format(i,j,product),end='')
print()