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. import模块后查找模块的绝对路径

    >>> import bsddb3>>> bsddb3.__file__'/usr/local/lib/python2.6/site-packages/bsddb3 ...

  2. Django初步(一):安装和简单演示

    参考:Windows下安装Django:http://www.th7.cn/Program/Python/201305/136301.shtml

  3. MSMQ学习笔记一——概述

    一.MSMQ是什么 Message Queuing(MSMQ) 是微软开发的消息中间件,可应用于程序内部或程序之间的异步通信.主要的机制是:消息的发送者把自己想要发送的信息放入一个容器中(我们称之为M ...

  4. 如何让一个简单的maven项目支持one-jar 做成一个jar fatjar

    <?xml version="1.0" encoding="UTF-8"?> <project xmlns="http://mave ...

  5. (转)写的非常好的一篇HTTP协议详解

    原文地址:http://www.cnblogs.com/TankXiao/archive/2012/02/13/2342672.html#3931004(推荐看原文,因为原文文章末有更详细链接) 当今 ...

  6. Google TensorFlow 学习笔记一 —— TensorFlow简介

    "TensorFlow is an Open Source Software Library for Machine INtenlligence" 本笔记参考tensorflow. ...

  7. 三、详述 IntelliJ IDEA 的使用界面

    是否还记得在博文“IntelliJ IDEA 安装目录的核心文件讲解”中,这张充满神秘色彩的图片呢?进入她,让咱们一起感受她的魅力吧! 如上图所示,打开 IntelliJ IDEA 后,首先迎接咱们的 ...

  8. linux学习(一)开始

    第一关 用u盘安装ubuntu, 大部份工作制作的安装U盘会失败,使用Win32DiskImager就行了,这个工具需要手动填写完整iso路径. 第二个问题 装完后发现乱码,连英文都乱码,不知道原因, ...

  9. .NET MVC伪静态

    说明:MVC中的伪静态跟我们的WebForm里面的伪静态不一样(详情:配置伪静态(URL重写)) 由于我们的MVC中存在路由,所以我们不必去处理每个访问的页面进行重写,我们完全可以再配置一个路由让他显 ...

  10. JavaScript中的Map和Set

    JavaScript的默认对象表示方法{}可以视为其他语言中的Map或者Dictionary的数据结构,即一组键值对. 但是JavaScript的对象有个小问题,就是键必须是字符串,但实际上Numbe ...