#正方形
#三种状态分别逐行打印
sideLen = int(input('>>>'))
print('*'*sideLen)
for i in range(sideLen-2):
print('*',' '*(sideLen-2),'*',sep='')
print('*'*sideLen)
#二维矩阵,单个字符逐行打印
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()
#两种情况逐行打印
top = '*'*sideLen
mid = '*'+ ' '*(sideLen-2)+'*'
for i in range(sideLen):
if i == 0 or i == (sideLen-1):
print(top)
else:
print(mid)
#菱形,找对称,三元表达式
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()
python学习习题总结(2)——正方形,菱形,九九乘法表
猜你喜欢
转载自blog.csdn.net/qq_33287645/article/details/79684591
今日推荐
周排行