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 ==width:
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)

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

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. jquery简介(一)

    摘要:简要介绍jquery的起源,以及为什么需要使用jquery. jquery的优点 jquery体量小,加载速度快,其本身具有的功能使JavaScript应用程序开发人员的工作变得分外轻松.其中最 ...

  2. 常见HTTP状态200,304,403,404,503

    下面提供 HTTP 状态码的完整列表.您也可以查看 W3C官方HTTP 状态码说明(英文). 1xx(临时响应) 表示临时响应并需要请求者继续执行操作的状态码. 100(继续) 请求者应当继续提出请求 ...

  3. 12C RAC 常用检查命令,持续总结中

    grid: olsnodes -s列出集群中节点crsctl check cluster -all检查几圈状态crsctl check clustercrsctl check crs 检查当前节点sr ...

  4. Jerry的Fiori原创文章合集

    我曾经于2014年10月到2016年5月工作于SAP CRM Fiori应用的开发团队, 我所在的团队负责下列这8个Fiori应用的维护和持续开发: My Opportunities My Tasks ...

  5. apache 配置跨域访问

    在httpd.conf找到  去掉# LoadModule headers_module modules/mod_headers.so 然后在 独立域名配置 加入 Header set Access- ...

  6. python-函数的使用

    一.函数的定义 首先,我们来看一个简单的例子来定义函数: def test(): print('hello') 在其中 def  : 关键字,用来告诉解释器,接下来的一段代码是一个函数 test : ...

  7. 【题解】UVA11584 Partitioning by Palindromes

    UVA11584 https://www.luogu.org/problemnew/show/UVA11584 暑假开始刷lrj紫/蓝书DP题 这几天做的一道 思路 预处理出所有的回文串是否存在 前提 ...

  8. EF6.0 对于数据库优 模式 新加功能

    EF6.0相对于5.0新加了很多功能.先看看两个模式的一些特点. 数据库优先(设计者)和代码优先两者的特点: 连接弹性 异步查询和保存 基于代码的配置 数据库命令记录 数据库命令截取 依赖决议 DbS ...

  9. js关于密码框强弱度的提示

    三种密码强度的正则表达式: 较弱:全是数字或全是字母 6-16个字符:/^[0-9]{6,16}$|^[a-zA-Z]{6,16}$/; 中级:数字.26个英文字母 6-16个字符: /^[A-Za- ...

  10. antd不想写那么多option怎么办

    做项目的时候发现如果下拉列表选项多的时候会写很多的 Option ,但是用到下拉列表的地方又超级多.所以自己写了一个方法,哪需要就放到哪. 记录一下方法.留待以后用 selectStreetIdCha ...