鱼C论坛

 找回密码
 立即注册
查看: 2687|回复: 13

[技术交流] Python:每日一题 136

[复制链接]
发表于 2018-1-10 10:56:51 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本帖最后由 冬雪雪冬 于 2018-1-12 20:48 编辑

我们的玩法做了一下改变:

1. 楼主不再提供答案。
2. 请大家先独立思考”,再参考其他鱼油的解答,这样才有助于自己编程水平的提高。
3. 鼓励大家积极答题,奖励的期限为出题后24小时内。
4. 根据答案的质量给予1~3鱼币的奖励。

题目:
打印出如下的心型图案。
  1. ******************************************
  2. ******************************************
  3. ******************************************
  4. ********       ************       ********
  5. *******         **********         *******
  6. ******           ********           ******
  7. *****             ******             *****
  8. ****               ****               ****
  9. ***                 **                 ***
  10. **                                      **
  11. *                                        *
  12. *                                        *
  13. **                                      **
  14. ***                                    ***
  15. ****                                  ****
  16. *****                                *****
  17. ******                              ******
  18. *******                            *******
  19. ********                          ********
  20. *********                        *********
  21. **********                      **********
  22. ***********                    ***********
  23. ************                  ************
  24. *************                *************
  25. **************              **************
  26. ***************            ***************
  27. ****************          ****************
  28. *****************        *****************
  29. ******************      ******************
  30. *******************    *******************
  31. ********************  ********************
  32. ******************************************
复制代码

本帖被以下淘专辑推荐:

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-10 11:26:17 | 显示全部楼层
for i in range(3):
    print 42*'*'

x,y=8,12
while x > 0:
    t = (42-2*x-y)/2
    if y>0:
        print x*"*"+t*" "+y*"*" + t * " " + x * "*"
    else:
        print x*"*" + (42-2*x)* " " + x*"*"
    x = x - 1
    y = y - 2

i = 1
while i < 22:
    t = 42 - 2*i
    print i*"*" + t*" " + i*"*"
    i = i + 1

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 12:58:31 | 显示全部楼层
本帖最后由 shigure_takimi 于 2018-1-10 13:04 编辑
  1. def heart(width):  # width为宽度的一半
  2.     lines = []
  3.     above = width//2+1  # 上半部分行数
  4.     down = width        # 下半部分行数
  5.     for i in range(above):
  6.         if i in (0,1,2):
  7.             s = '*'*width*2  # 前第三行全部填充为'*'
  8.         else:
  9.             s = ('*'*(above - i)+' '*(2*i+1)+'*'*(above - i))*2 #两个三角形并列
  10.             s = s[:width] + s[::-1][:width][::-1] # 前后各取width个字符
  11.         lines.append(s)
  12.     for i in range(down):
  13.         s = '*'*(i+1)+' '*((width-i-1)*2)+'*'*(i+1)
  14.         lines.append(s)
  15.     for i in lines:
  16.         print(i)

  17. heart(15)

  18. ##    ******************************
  19. ##    ******************************
  20. ##    ******************************
  21. ##    *****       ******       *****
  22. ##    ****         ****         ****
  23. ##    ***           **           ***
  24. ##    **                          **
  25. ##    *                            *
  26. ##    *                            *
  27. ##    **                          **
  28. ##    ***                        ***
  29. ##    ****                      ****
  30. ##    *****                    *****
  31. ##    ******                  ******
  32. ##    *******                *******
  33. ##    ********              ********
  34. ##    *********            *********
  35. ##    **********          **********
  36. ##    ***********        ***********
  37. ##    ************      ************
  38. ##    *************    *************
  39. ##    **************  **************
  40. ##    ******************************
  41.         
  42. heart(21)

  43. ##    ******************************************
  44. ##    ******************************************
  45. ##    ******************************************
  46. ##    ********       ************       ********
  47. ##    *******         **********         *******
  48. ##    ******           ********           ******
  49. ##    *****             ******             *****
  50. ##    ****               ****               ****
  51. ##    ***                 **                 ***
  52. ##    **                                      **
  53. ##    *                                        *
  54. ##    *                                        *
  55. ##    **                                      **
  56. ##    ***                                    ***
  57. ##    ****                                  ****
  58. ##    *****                                *****
  59. ##    ******                              ******
  60. ##    *******                            *******
  61. ##    ********                          ********
  62. ##    *********                        *********
  63. ##    **********                      **********
  64. ##    ***********                    ***********
  65. ##    ************                  ************
  66. ##    *************                *************
  67. ##    **************              **************
  68. ##    ***************            ***************
  69. ##    ****************          ****************
  70. ##    *****************        *****************
  71. ##    ******************      ******************
  72. ##    *******************    *******************
  73. ##    ********************  ********************
  74. ##    ******************************************

  75. heart(30)

  76. ##    ************************************************************
  77. ##    ************************************************************
  78. ##    ************************************************************
  79. ##    *************       ********************       *************
  80. ##    ************         ******************         ************
  81. ##    ***********           ****************           ***********
  82. ##    **********             **************             **********
  83. ##    *********               ************               *********
  84. ##    ********                 **********                 ********
  85. ##    *******                   ********                   *******
  86. ##    ******                     ******                     ******
  87. ##    *****                       ****                       *****
  88. ##    ****                         **                         ****
  89. ##    ***                                                      ***
  90. ##    **                                                        **
  91. ##    *                                                          *
  92. ##    *                                                          *
  93. ##    **                                                        **
  94. ##    ***                                                      ***
  95. ##    ****                                                    ****
  96. ##    *****                                                  *****
  97. ##    ******                                                ******
  98. ##    *******                                              *******
  99. ##    ********                                            ********
  100. ##    *********                                          *********
  101. ##    **********                                        **********
  102. ##    ***********                                      ***********
  103. ##    ************                                    ************
  104. ##    *************                                  *************
  105. ##    **************                                **************
  106. ##    ***************                              ***************
  107. ##    ****************                            ****************
  108. ##    *****************                          *****************
  109. ##    ******************                        ******************
  110. ##    *******************                      *******************
  111. ##    ********************                    ********************
  112. ##    *********************                  *********************
  113. ##    **********************                **********************
  114. ##    ***********************              ***********************
  115. ##    ************************            ************************
  116. ##    *************************          *************************
  117. ##    **************************        **************************
  118. ##    ***************************      ***************************
  119. ##    ****************************    ****************************
  120. ##    *****************************  *****************************
  121. ##    ************************************************************
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 19:45:52 | 显示全部楼层
  1. print("""******************************************
  2. ******************************************
  3. ******************************************
  4. ********       ************       ********
  5. *******         **********         *******
  6. ******           ********           ******
  7. *****             ******             *****
  8. ****               ****               ****
  9. ***                 **                 ***
  10. **                                      **
  11. *                                        *
  12. *                                        *
  13. **                                      **
  14. ***                                    ***
  15. ****                                  ****
  16. *****                                *****
  17. ******                              ******
  18. *******                            *******
  19. ********                          ********
  20. *********                        *********
  21. **********                      **********
  22. ***********                    ***********
  23. ************                  ************
  24. *************                *************
  25. **************              **************
  26. ***************            ***************
  27. ****************          ****************
  28. *****************        *****************
  29. ******************      ******************
  30. *******************    *******************
  31. ********************  ********************
  32. ******************************************""")
  33. 这个算曲解楼主用意吗?
复制代码

点评

算是曲解  发表于 2018-1-12 20:50

评分

参与人数 1荣誉 +1 鱼币 +1 收起 理由
solomonxian + 1 + 1 好直接的思维,哈哈哈哈

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-10 21:47:00 | 显示全部楼层
逐行分解可以分成上下两个部分,上面"M",下面接"V"
具体规律没找,纯粹按比例算的一个,
fun(10)以后看起来才像心形
  1. def fun(n=42):
  2.     m_part = [("*" * (int(n/2.3) - 2*i)).center(int(n/2.3) + 2*i + 2).center(n, "*")
  3.               if i >= n/14 else "*"*n for i in range(int(n/4)+1)]
  4.     v_part = [(" "*(n - 2 - 2*j)).center(n, "*") for j in range(int(n/2))]
  5.     return "\n".join(m_part + v_part)
  6. print(fun(42))
复制代码

评分

参与人数 1荣誉 +5 鱼币 +5 收起 理由
冬雪雪冬 + 5 + 5

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2018-1-10 21:49:16 | 显示全部楼层
c = 8
d = 12
e = 9
f = 0
for a in range(3):
    print('*'*50)
for b in range(8):
    c = c -1
    d = d - 2
    if d < 0:
        e = e + 1
    else:
        e = e + 2
    if c>0:
        print('*'*c,' '*e,'*'*d,' '*e,'*'*c)
for i in range(24):
    f = f+1
    g = 48 - 2*f
    print('*'*f,' '*g,'*'*f)
print('*'*50)

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 22:55:55 | 显示全部楼层
本帖最后由 wyp02033 于 2018-1-10 22:59 编辑
  1. def main():
  2.     for i in range(3):
  3.         print('*' * 42)
  4.     for i in range(8, 0, -1):
  5.         print(("*" * i).ljust(14), end='')
  6.         print(("*" * (i*2-4)).center(14), end='')
  7.         print(('*'*i).rjust(14))
  8.     for i in range(1, 22):
  9.         print(('*' * i).ljust(21), end='')
  10.         print(("*"*i).rjust(21))

  11. if __name__ == '__main__':
  12.     main()
复制代码

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-1-10 23:20:02 | 显示全部楼层
1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2018-1-11 16:51:30 | 显示全部楼层
print('*'*42)
print('*'*42)
print('*'*42)
n = 8
m = 7
z = 12
while n > 2:
    print('*'*n + ' '*m + '*'*z + ' '*m + '*'*n)
    n -= 1
    m += 2
    z -= 2
print('*'*n + ' '*38 + '*'*n)
print('*' + ' '*40 + '*')
a = 1
b = 42
while b > 0:
    print('*'*a + ' '*(b-2) + '*'*a)
    a += 1
    b -= 2

评分

参与人数 1荣誉 +3 鱼币 +3 收起 理由
冬雪雪冬 + 3 + 3

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2018-5-7 09:46:34 | 显示全部楼层
for i in range(3):
    print("*"*42)
a = 12
for i in range(8, 0, -1):   
    b = (42 - a- 2*i)//2
    if a <= 0:
        b = (42 - 2*i)//2
    print("*"*i + " "*b+ "*"*a +" "*b+ "*"*i)
    a = a - 2
    #print(a)
for i in range(1,21):
    b = (42- 2*i)
    print("*"*i+" "*b+ "*"*i)
print("*"*42)
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-3-23 16:46:45 | 显示全部楼层
  1. #心形函数公式:17 x^2 – 16|x|y + 17 y^2 < 225
  2. def fun136():
  3.     #先创建一个50*50的矩形
  4.     canvas = [["*"]*50 for i in range(50)]
  5.    
  6.     for x in range(-25,24):
  7.         for y in range(-25,24):
  8.             if 17 * x**2 + 16 * abs(x) * y + 17 * y ** 2 < 2250:
  9.                 t1 = x + 25
  10.                 t2 = y + 25
  11.                 canvas[t2][t1] = " "

  12.     for i in canvas:
  13.         for j in i:
  14.             print(j,end=" ")
  15.         print()


  16. fun136()
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 12:32:44 | 显示全部楼层
不懂,这有什么规律……
  1. print('''******************************************
  2. ******************************************
  3. ******************************************
  4. ********       ************       ********
  5. *******         **********         *******
  6. ******           ********           ******
  7. *****             ******             *****
  8. ****               ****               ****
  9. ***                 **                 ***
  10. **                                      **
  11. *                                        *
  12. *                                        *
  13. **                                      **
  14. ***                                    ***
  15. ****                                  ****
  16. *****                                *****
  17. ******                              ******
  18. *******                            *******
  19. ********                          ********
  20. *********                        *********
  21. **********                      **********
  22. ***********                    ***********
  23. ************                  ************
  24. *************                *************
  25. **************              **************
  26. ***************            ***************
  27. ****************          ****************
  28. *****************        *****************
  29. ******************      ******************
  30. *******************    *******************
  31. ********************  ********************
  32. ******************************************''')
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-8-1 14:47:52 | 显示全部楼层
  1. print('*'*42+'\n'+'*'*42+'\n'+'*'*42+'\n'+''.join(['*'*(i+2)+' '*(19-2*i)+'*'*(2*i)+' '*(19-2*i)+'*'*(i+2)+'\n' for i in range(6,-1,-1)])+'*'+' '*40+'*'+'\n'
  2.       +''.join(['*'*j+' '*(42-2*j)+'*'*j+'\n' for j in range(1,22)]))
复制代码
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-19 18:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表