zoukankan      html  css  js  c++  java
  • 20190105-打印字母C,H,N,口等图像和杨辉三角

    1. 打印字母C

    ******

    *

    *

    *

    *

    ******

    def print_c(n):
        print('*' * n)
        for i in range(n):
            print('*        ')
        print('*' * n)
    print_c(20)

    2.打印字母N

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

    算法:N在左下角空心三角形的基础上减去最后一行的*,并在每行后面打印一个*,设定N的宽=N的高,打印心三角形详见20190103这篇文章

    def print_N(n):
        for i in range(n+1):
        #打印的行数
            for j in range(n+1):
            #每行打印的*个数(N的宽度),仅打印首尾的*,空间以空格分隔
                if j ==0 or j==i:
                    print('*',end = ' ')
            #打印第一个和斜杠中的*,j==i的时候打印斜杠中的*起始点
                elif j==n: 
                    print('*',end ='')
            #打印N中第二个直线位置的*,此处end=''与end =' '没有区别,因为j=n是最后一遍循环,之后就是换行了
                else:
                    print(' ',end = ' ')
            #其他位置用空格填充
            print()
    Print_N(10)

    3.打印口

    * * * * * * 

    *           *

    *           *

    * * * * * *

    口除第一行和最后一行全部打印外,其他行仅打印首尾,定义口的高和宽

    def quadrangle(hight,width):
        for i in range(hight+1):
            for j in range(width+1):
                if i ==0 or i ==hight:
                    print('*',end =' ')
                    #空心四边形第一行全部打印
                elif j==0 or j ==
                    print('*',end =' ')
                    #空心四边形中间行数打印首尾
                else:
                    print(' ',end =' ')
            print()
    quadrangle(10,10)

    4.打印H

    *        *

    *        *

    * * * * *

    *        *

    *        *

    算法:H,分为高和宽,设定宽为高的一半因此我们写H的时候只需要指定H的高就好

    def print_H(height):
        if isinstance(height,int) and height>=5:
            for i in range(height+1):
        #打印H的高
                for j in range(int(height/2)+1):
                    if i ==int(height/2):
                        print('*',end = ' ')
                    elif j ==0 or j==int(height/2):
                        print('*',end =' ')
                    else:
                        print(' ',end =' ')
                print()
        else:
            print('请设定H的高度大于5')
    print_H(10)

    H的高度必须大于5的原因是为了大于H中间那条横,因为j的范围为height/2+1,当height=4一下的时候,j打印的*小于2,因此无法打印除H中间的那一横

    5.打印杨辉三角


      1
       1 1
      1 2 1
     1 3 3 1
    1 4 6 4 1

    将每一行看作一个list,先写除一个 方法输出下一行的list值

    def pascal_list_generate(list):
        #print(len(list))
        pascal =[]
        if len(list)>=2:#因为需要取第i-1个值,因此len(list)必须大于等于2,如果len(list)=1,则i-1<0,程序报错
            for i in range(len(list)+1):
                if i ==0:
                    pascal.append(1)
                    #杨辉三角的第一和最后一位数为1
                elif i>=1 and i <len(list):
                    pascal.append(list[i]+list[i-1])
                    #除第一个和最后一个数外杨辉三角第n行的第m个数为第n-1行第m和m-1的数之和
                elif i==len(list):
                    #杨辉三角的第一和最后一位数为1
                    pascal.append(1)
        else:
            pascal.append(1)
            pascal.append(1)
            #兼容杨辉三角第二行的情况
        return pascal

    写一个打印杨辉三角每行的函数,并且可以自定义杨辉三角的行数

    def pascal_trigal(n):
     s =[1]
     if n ==1:
      print(s)
     else:
      print(s)
      for i in range(n-1):
       print(pascal_list_generate(s))
       s = pascal_list_generate(s)
    pascal_trigal(10)

    在杨辉三角的方法里面循环迭代调用每一行的生成方法。

  • 相关阅读:
    Python中所有的关键字
    关于selenium的8种元素定位
    对提示框的操作
    selenium+webservice进行百度登录
    MISCONF Redis is configured to save RDB snapshots, but is currently not able to persist on disk. Commands that may modify the data set are disabled...报错解决
    Vue中使用echarts
    npm WARN deprecated request@2.88.2: request has been deprecated, see https://github.com/request/request/issues/3142解决方法
    插入排序
    冒泡排序优化
    roject 'org.springframework.boot:spring-boot-starter-parent:XXX' not found 解决
  • 原文地址:https://www.cnblogs.com/hyj691001/p/10224806.html
Copyright © 2011-2022 走看看