• 菱形--for循环解决


     1 '''
     2 正常菱形,不能使用一个一个打印,那就没什么意思,这里使用的是对称,也可以使用坐标的方式,如第四版
     3    *
     4   ***
     5  *****
     6 *******
     7  *****
     8   ***
     9    *
    10 
    11 '''
    12 # 第一版 繁琐的
    13 n = 7
    14 e = -(n//2)
    15 for i in range(e,1-e): # [-3,3]
    16     #print(-i * ' ' + (n - abs(-i) * 2) * '*') if i <= 0 else print((4-i)*' '+(n-2i) * '*')
    17     if i <= 0:
    18         print(-i * ' ' + (n - 2 * (-i)) * '*')
    19     else:
    20         print(i * ' ' + (n - 2 * i) * '*')
    21 
    22 # 第二版,优化版,只是把上个版本归纳了一下
    23 n = 7
    24 e = -(n//2)
    25 
    26 for i in range(e,1-e):
    27     i = -i if i <= 0 else i
    28     print(i * ' ' + (n - 2 * i) * '*')
    29     
    30 # 第三版 两重for 循环,降低效率
    31 n = 7
    32 e = n//2
    33 for i in range(-e, 1+e): # -3,3
    34     for j in range(1,n+1): # 1,7
    35         if abs(i) < j < n - abs(i) + 1: #  3< j < 5  最左侧的点
    36             print('*' , end='')
    37         else:
    38             print(' ', end='')
    39     print()
    40           
    41 # 第四版  利用了数学上的直线 阴影部分   |x|+|y|<4
    42 for i in range(3, -4, -1): # 3,-3
    43     print(abs(i) * ' ',end='') # i = 3   3空    2 2空
    44     for j in range(-3,4): # j = -3,-2,-1 ,0,1,2,3
    45         if abs(i) + abs(j) < 4:# 从上往下一个一个打印
    46             print('*', end='')
    47     print()
    48     
    49 print('-----------------------------------------------------')
    50 
    51 
    52 
    53 for i in range(-3, 4): # 3,-3
    54     print(abs(i) * ' ',end='') # i = 3   3空    2 2空 -1 1空 0 0
    55     for j in range(-3,4): # j = -3,-2,-1 ,0,1,2,3
    56         if abs(i) + abs(j) < 4:#   x + y <4 加绝对值,就是菱形
    57             print('*', end='')
    58     print()
    为什么要坚持,想一想当初!
  • 相关阅读:
    【设计模式】迭代器模式
    SpringMVC+Hibernate+Junit4+json基本框架近乎0配置
    Python
    Flex中TabNavigator隐藏和显示选项卡
    Android调试工具_ Stetho
    discuz的php7版本号
    分组加密的四种模式(ECB、CBC、CFB、OFB)
    人件札记:保持高效的办公室环境
    UVA 4857 Halloween Costumes 区间背包
    相机标定(Camera calibration)
  • 原文地址:https://www.cnblogs.com/JerryZao/p/9417314.html
Copyright © 2020-2023  润新知