菜鸟教程 -- 学的不仅是技术,更是梦想!

Python 基础教程
(追記) (追記ここまで)

Python 练习实例23

Python 100例 Python 100例

题目:打印出如下图案(菱形):

 *
 ***
 *****
*******
 *****
 ***
 *

程序分析:先把图形分成两部分来看待,前四行一个规律,后三行一个规律,利用双重for循环,第一层控制行,第二层控制列。

程序源代码:

实例

#!/usr/bin/python# -*- coding: UTF-8 -*-fromsysimportstdoutforiinrange(4): forjinrange(2 - i + 1): stdout.write('')forkinrange(2 * i + 1): stdout.write('*')print('')foriinrange(3): forjinrange(i + 1): stdout.write('')forkinrange(4 - 2 * i + 1): stdout.write('*')print('')

实例(Python3)

def print_diamond(rows):
# 上半部分
for i in range(1, rows, 2):
spaces = " " * ((rows - i) // 2)
stars = "*" * i
print(spaces + stars)

# 下半部分
for i in range(rows, 0, -2):
spaces = " " * ((rows - i) // 2)
stars = "*" * i
print(spaces + stars)

# 设置行数,可以根据需要调整
rows = 7
print_diamond(rows)

以上实例输出结果为:

 *
 ***
 *****
*******
 *****
 ***
 *

Python 100例 Python 100例

AI 思考中...

16 篇笔记 写笔记

  1. #0

    liwei

    liw***[email protected]

    14

    Python3 环境还可以使用以下方式实现:

    #!/usr/bin/python3
    for i in range(1, 5):
     print(' ' * (4 - i), end="")
     for j in range(1, 2 * i):
     print('*', end="")
     print()
    for i in range(3, 0, -1):
     print(' ' * (4 - i), end="")
     for j in range(1, 2 * i):
     print('*', end="")
     print()
    

    liwei

    liw***[email protected]

    9年前 (2017年03月16日)
  2. #0

    JohnLee

    372***[email protected]

    15

    Python3 环境还可以使用以下方式实现:

    #!/usr/bin/python3
    def pic(lines): 
     middle, lines = int(lines / 2), int(lines / 2) * 2 + 1 
     for i in range(1, lines + 1): 
     empty = abs(i - middle - 1) 
     print(' ' * empty, '*' * (2 * (middle - empty) + 1))
    line = 7 # 设置输出行数
    pic(7)
    

    JohnLee

    372***[email protected]

    9年前 (2017年04月21日)
  3. #0

    真菜鸟

    235***[email protected]

    27

    Python3 环境还可以使用以下方式实现:

    #!/usr/bin/python3
    n = int(input('enter a number:')) 
    for i in range(1,n+1,2):
     k = (n-i)//2
     print( ' '* k , '*' * i)
    for p in range(n-2,0,-2):
     o = (n-p)//2
     print(' '*o, '*'*p)
    

    真菜鸟

    235***[email protected]

    9年前 (2017年04月25日)
  4. #0

    不知道叫啥

    114***[email protected]

    3

    参考方法:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    a = '*'
    xx = []
    for i in range(1, 5):
     x = ''
     for j in range(2*i-1):
     x += a
     xx.append(x)
     print x.center(7, ' ')
     if x == "*******":
     xx.reverse()
     for k in range(0, len(xx)):
     print xx[k].center(7, ' ')

    不知道叫啥

    114***[email protected]

    9年前 (2017年05月04日)
  5. #0

    山寨DE寨主

    191***[email protected]

    49

    参考方法:

    #usr/bin/env python3
    #coding:utf-8
    for i in range(4):
     print((3-i)*' '+(2*i+1)*'*')
    for i in range(3):
     print((i+1)*' '+(5-2*i)*'*')

    山寨DE寨主

    191***[email protected]

    9年前 (2017年05月07日)
  6. #0

    好男儿

    113***[email protected]

    1

    参考方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    def funs(x):
     i = 0
     n = 1
     k = x
     while i<x:
     print k * ' ', n*'*',k * ' '
     i = i+1
     n = n+2
     k = k-1
     n= n-2
     k=1
     while i*2>x-1:
     k=k+1
     i=i-1
     n=n-2
     print k * ' ', n * '*', k * ' '
    funs(4)

    好男儿

    113***[email protected]

    9年前 (2017年05月08日)
  7. #0

    fade

    qiu***[email protected]

    3

    Python3 环境还可以使用以下方式实现:

    #!/usr/bin/python3
    def printsome(n):
     for index in range(abs(4 - n)):
     print(" ", end="")
     for index in range((4- abs(4 - n))*2 -1):
     print("*", end="")
     print()
    for index in range(1, 8):
     printsome(index)

    fade

    qiu***[email protected]

    9年前 (2017年05月09日)
  8. #0

    Kunz

    sun***[email protected]

    1

    参考方法,可以设定行数:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    n=int(raw_input("请输入行数:"))
    if n%2==0:
     n1=n/2
     n2=n1-1
     for i in range(1,n1+1):
     m=i*2
     print ' '*n2,'*'*m
     n2-=1
     n2=1
     for i in range(n1-1):
     m-=2
     print ' '*n2,'*'*m
     n2+=1
    else:
     n1=n//2+1
     n2=n1-1
     for i in range(n1):
     m=i*2+1
     print ' '*n2,'*'*m
     n2-=1
     n2=1
     for i in range(n1-1):
     m-=2
     print ' '*n2,'*'*m
     n2+=1

    Kunz

    sun***[email protected]

    9年前 (2017年05月11日)
  9. #0

    云不语

    339***[email protected]

    1

    参考方法:

    #usr/bin/env python
    #coding:utf-8
    n = 4
    for i in range(n):
     a=' '*(n-1-i)+'*'*(i*2+1)
     print(a)
    for j in range(n-1):
     a=' '*(1+j)+'*'*(2*n-j*2-3)
     print(a)
    

    云不语

    339***[email protected]

    9年前 (2017年05月20日)
  10. #0

    zho***[email protected]

    6

    参考方法:

    #!/usr/bin/env python
    # -*- coding: utf-8 -*-
    n = int(input("请输入行数 n:"))
    for i in range(0,n):
     a = abs(i - int(n/2))
     b = n - abs(i - int(n/2))
     print(" "*a+"*"*(b-a))
    

    zho***[email protected]

    9年前 (2017年05月23日)
  11. #0

    清蒸

    102***[email protected]

    0

    参考方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*- 
    def print_diamond(n):
     star = ['*']
     for index in range(0,n):
     print '{:^7}'.format(star[index])
     star1 =star[index] + '**'
     star.append(star1)
     for i in range(n-2,-1,-1):
     print '{:^7}'.format(star[i])
    if __name__ == '__main__':
     print_diamond(4) 
    

    清蒸

    102***[email protected]

    9年前 (2017年06月21日)
  12. #0

    JuanBu

    158***[email protected]

    1

    参考方法:

    for x in range(1,8)[::2]:print ("*"*x).center(10)
    for x in range(1,6)[::-2]:print ('*'*x).center(10)
    

    JuanBu

    158***[email protected]

    9年前 (2017年07月02日)
  13. #0

    程序渊

    846***[email protected]

    1

    可以自由输入菱形的腰长,自定义大小,如果不输入值,直接回车即是默认的如题目示例那样的图形

    # encoding:utf-8
    def paintlx(l):
     for i in range(l / 2):
     print ' ' * (l / 2 - i) + '*' * (i * 2 + 1)
     print '*' * l
     for i in range(l / 2 - 1, -1, -1):
     print ' ' * (l / 2 - i) + '*' * (i * 2 + 1)
    while True:
     l = raw_input('请输入菱形腰长(奇数),默认为7:')
     if l == '':
     l = 7
     paintlx(int(l))
     break
     elif int(l) % 2 == 0:
     print '说了是奇数!'
     else:
     paintlx(int(l))
     break

    程序渊

    846***[email protected]

    9年前 (2017年08月14日)
  14. #0

    随风奔跑的女子

    318***[email protected]

    1

    参考实例,可用于 Python2.x 与 Python3.x

    # encoding:utf-8
    for i,j in zip(range(3,-1,-1),range(1,9,2)):
     print(" "*i+"*"*j)
    for k,t in zip(range(1,4),range(5,0,-2)):
     print(" "*k+"*"*t)

    随风奔跑的女子

    318***[email protected]

    9年前 (2017年09月11日)
  15. #0

    小差罗

    675***[email protected]

    1

    Python3 测试实例:

    for i in range(4):
     print(' '*(3-i),'*'*(2*i+1),' '*(3-i))
    for i in list(range(3))[::-1]:
     print(' '*(3-i),'*'*(2*i+1),' '*(3-i))

    小差罗

    675***[email protected]

    9年前 (2017年09月12日)
  16. #0

    xuxinliang

    237***[email protected]

    7

    参考方法:

    #!/usr/bin/python
    # -*- coding: UTF-8 -*-
    #对于当前的菱形
    for x in range(0,7):
     index = 3 - x
     if index < 0:
     index = x - 3
     s = " "*index + "*"*(7-index*2)
     print s
    #对于更高阶的菱形:
    def lingXing(n):
     if n % 2 == 0:
     print "请输入一个奇数!"
     return
     for x in range(0, n):
     middle = (n-1)/2
     index = middle - x
     if index < 0:
     index = x - middle
     s = " "*index + "*"*(n-2*index)
     print s
    lingXing(9)

    xuxinliang

    237***[email protected]

    8年前 (2018年11月26日)

点我分享笔记

  • 昵称 (必填)
  • 邮箱 (必填)
  • 引用地址

AltStyle によって変換されたページ (->オリジナル) /