1. 打印字母C

******

*

*

*

*

******

  1. def print_c(n):
  2. print('*' * n)
  3. for i in range(n):
  4. print('* ')
  5. print('*' * n)
  6. print_c(20)

2.打印字母N

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

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

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

3.打印口

* * * * * *

*           *

*           *

* * * * * *

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

  1. def quadrangle(hight,width):
  2. for i in range(hight+1):
  3. for j in range(width+1):
  4. if i ==0 or i ==hight:
  5. print('*',end =' ')
  6. #空心四边形第一行全部打印
  7. elif j==0 or j ==width:
  8. print('*',end =' ')
  9. #空心四边形中间行数打印首尾
  10. else:
  11. print(' ',end =' ')
  12. print()
  13. quadrangle(10,10)

4.打印H

*        *

*        *

* * * * *

*        *

*        *

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

  1. def print_H(height):
  2. if isinstance(height,int) and height>=5:
  3. for i in range(height+1):
  4. #打印H的高
  5. for j in range(int(height/2)+1):
  6. if i ==int(height/2):
  7. print('*',end = ' ')
  8. elif j ==0 or j==int(height/2):
  9. print('*',end =' ')
  10. else:
  11. print(' ',end =' ')
  12. print()
  13. else:
  14. print('请设定H的高度大于5')
  15. 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值

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

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

  1. 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)

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

20190105-打印字母C,H,N,口等图像和杨辉三角的更多相关文章

  1. C语言打印杨辉三角(2种方法)

    杨辉三角是我们从初中就知道的,现在,让我们用C语言将它在计算机上显示出来. 在初中,我们就知道,杨辉三角的两个腰边的数都是1,其它位置的数都是上顶上两个数之和.这就是我们用C语言写杨辉三角的关键之一. ...

  2. 使用Java打印杨辉三角

    package 杨辉三角; import java.util.Scanner; public class 三角 { private static Scanner scn; public static ...

  3. java代码打印打印杨辉三角

    郑州大学 徐峰 public class Print { void print(){ int[][] a=new int[6][6]; for(int i=0;i<a.length;i++){ ...

  4. 打印杨辉三角--for循环

    要求打印7行直角杨辉三角 杨辉三角特点: 第1行和第2行数字都为1: 从第三行开始,除去开头和结尾数字为1,中间数字为上一行斜对角两个数字的和. 如下图: 打印结果: 代码如下: package 杨辉 ...

  5. [Java练习题] -- 1. 使用java打印杨辉三角

    package cn.fzm.demo1.array; import java.util.Scanner; /* * 需求:打印杨辉三角形(行数可以键盘录入) 1 1 1 1 2 1 1 3 3 1 ...

  6. 杨辉三角的打印(Java)

    // //输入指定的行数,打印杨辉三角 // //每个数等于它上方两数之和. //每行数字左右对称,由1开始逐渐变大. //第n行的数字有n项. // // // //可从打印菱形的思想出发:???? ...

  7. 利用python打印杨辉三角

    用python打印杨辉三角 介绍 杨辉三角,是初高中时候的一个数列,其核心思想就是说生成一个数列,该数列中的每一个元素,都是之前一个数列中,同样位置的元素和前一个元素的和. 正好在python中,也就 ...

  8. C#打印杨辉三角

    重主要的方法在于: 1.初始化二维数组 2.边界赋值 3.中心值赋值 4.输出 <pre name="code" class="csharp"> c ...

  9. C语言复习---杨辉三角打印

    #define _CRT_SECURE_NO_WARNINGS #include <stdio.h> #include <stdlib.h> #include <math ...

随机推荐

  1. HttpWebResponse对gzip格式返回结果的处理

    HttpWebRequest webRequest = (System.Net.HttpWebRequest)System.Net.WebRequest.Create(url); HttpWebRes ...

  2. supersocket 通过配置文件启动服务 总是 初始化失败的 解决办法

    <serverTypes> <add name="APPServerType" type="TMPServer.APP.APPServer, TMPSe ...

  3. 解决未安装unit测试和jest的Vue项目运行karma start时的错误

    一.起因 在#单元测试#以karma+mocha+chai 为测试框架的Vue webpack项目(一)文中,说明了是对已有的Vue项目进行测试框架的搭建,并进行测试.但是此项目在利用 vue-cli ...

  4. nginx http强制跳转https

    通过nginx的rewrite 进行301永久重定向,参考如下配置即可. server { listen  192.168.1.111:80; server_name test.com; rewrit ...

  5. bash shell脚本之查看系统环境变量

    查看当前系统环境变量 cat test2: #!/bin/bash # display user information from the system. echo "User info f ...

  6. 2018.11.30 zsh: command not found: mysql 的解决办法mac环境下

    系统环境变量的问题.解决办法: 1.打开终端.输入open .zshrc 会出现一个可编辑文档, 2.找到# User configuration部分,在下一行添加source ~/.bash_pro ...

  7. 在Spring整合aspectj实现aop的两种方式

    -----------------------------基于XML配置方案目标对象接口1 public interface IUserService { public void add(); pub ...

  8. 【luogu P3275 [SCOI2011]糖果】 题解

    题目链接:https://www.luogu.org/problemnew/show/P3275 把不等式 A > B 转化成 A - B >= 1或者 B - A <= -1再差分 ...

  9. 02_Linux 终端命令格式

    01. 终端命令格式 command [-options] [parameter] 说明: command:命令名,相应功能的英文单词或单词的缩写 [-options]:选项,可用来对命令进行控制,也 ...

  10. Unity】Socket 同步与异步

    http://blog.csdn.net/ldy597321444/article/details/51519157