python练习(2)——菱形,九九乘法表

    

# 打印正方形
# 三种状态分别逐行打印
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()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值