前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >专栏 >20190105-打印字母C,H,N,口

20190105-打印字母C,H,N,口

作者头像
py3study
发布于 2020-01-19 08:43:45
发布于 2020-01-19 08:43:45
62100
代码可运行
举报
文章被收录于专栏:python3python3
运行总次数:0
代码可运行

1. 打印字母C

******

*

*

*

*

******

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
def print_c(n):
    print('*' * n)
    for i in range(n):
        print('*        ')
    print('*' * n)
print_c(20)

2.打印字母N

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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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.打印口

* * * * * * 

*           *

*           *

* * * * * *

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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的高就好

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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值

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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

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

代码语言:javascript
代码运行次数:0
运行
AI代码解释
复制
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)

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

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2019/05/02 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
Python-打印杨辉三角(进阶版)
现在来写一篇博客来讲解打印杨辉三角(进阶版)的方法,[如果讲述不清可以私信问哈,如果讲的不好也可以说,毕竟自己还是入门水平]
我是黑桃A
2024/11/19
840
Python-打印杨辉三角(进阶版)
【Python】蓝桥杯试题 基础练习 杨辉三角形
资源限制 时间限制:1.0s 内存限制:256.0MB 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
Regan Yue
2021/09/16
7690
【重生之学习C语言----杨辉三角篇】
杨辉三角(Pascal's Triangle)是二项式系数在三角形中的一种几何排列。它具有以下特点:
用户11456817
2025/02/07
1250
Python-打印杨辉三角
现在来写一篇博客来讲解打印杨辉三角的方法,[如果讲述不清可以私信问哈,如果讲的不好也可以说,毕竟自己还是入门水平]
我是黑桃A
2024/11/19
810
Python-打印杨辉三角
用python解决杨辉三角形问题
5.行的m个数可表示为 C(n-1,m-1),即为从n-1个不同元素中取m-1个元素的组合数。
算法与编程之美
2023/08/22
2680
用python解决杨辉三角形问题
第十四届蓝桥杯青少组省赛Python中级真题题解
Python和C++都晋级了,但是由于两个项目是同一时间考试,本想放弃Python考C++,让机构帮忙报名C++,结果报成了Python,好在Python也在学习,只有将错就错了。
楚客追梦
2023/05/16
3K0
第十四届蓝桥杯青少组省赛Python中级真题题解
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 杨辉三角形(最好的基础题,没有之一)
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 杨辉三角形(最好的基础题,没有之一)
红目香薰
2023/02/16
4550
第十四届蓝桥杯集训——练习解题阶段(无序阶段)-基础练习 杨辉三角形(最好的基础题,没有之一)
蓝桥杯集锦02(python3)
输出格式 如果a在数列中出现了,输出它第一次出现的位置(位置从1开始编号),否则输出-1。 样例输入 6 1 9 4 8 3 9 9 样例输出 2
全栈程序员站长
2021/04/19
3750
Python基础训练100题-13
分享一些Python学习题目 实例061:杨辉三角 实例062:查找字符串 实例063:画椭圆 实例064:画椭圆、矩形 实例065:画组合图形 实例061:杨辉三角 题目: 打印出杨辉三角形前十行。 程序分析: 无。 def generate(numRows): r = [[1]] for i in range(1,numRows): r.append(list(map(lambda x,y:x+y, [0]+r[-1],r[-1]+[0]))) return r[
用户9925864
2022/07/27
2870
python3学习案例
""" 请打印出 1024 * 768 = *** """ shu = 1024 * 768 print("1024 * 768 = %d" %shu) """ 请打印出以下变量的值: # -*- coding: utf-8 -*- n = 123 f = 456.789 s1 = 'Hello, world' s2 = 'Hello, \'Adam\'' s3 = r'Hello, "Bart"' s4 = r'''Hello, Lisa!''' """ n = 123 f = 456789 / 100
py3study
2020/01/03
7220
[Leetcode][python]Pascal's Triangle/Pascal's Triangle II/杨辉三角/杨辉三角 II
Pascal’s Triangle 题目大意 输出帕斯卡三角前N行 1 121 1331 解题思路 注意帕斯卡三角中,除了首尾,其他值为上一层的两个邻值的和 代码 class Solution(object): def generate(self, numRows): """ :type numRows: int :rtype: List[List[int]] """ if numRows == 0:
蛮三刀酱
2019/03/26
6860
python高级特性:切片/迭代/列表生成式/生成器
廖雪峰老师的教程上学来的,地址:python高级特性 下面以几个具体示例演示用法: 一、切片 1.1 利用切片实现trim def trim(s): while s[:1] == " " or s[-1:] == " ": # 若第1个元素或最后1个元素为空格 if s[:1] == " ": s = s[1:] if s[-1:] == " ": s = s[:-1] return s 注:字符串可以看做一个
菩提树下的杨过
2018/05/28
5630
经典算法(5)杨辉三角
上一篇 经典算法(4)一文搞懂什么是 快速排序 下一篇 经典算法(6)斐波拉契数列、兔子繁殖、跳台阶算法
全栈程序员站长
2022/06/27
2940
经典算法(5)杨辉三角
LeetCode 120. 三角形最小路径和
https://leetcode-cn.com/problems/triangle/
freesan44
2021/11/14
2440
LeetCode 120. 三角形最小路径和
100道Python练习题,建议收藏练习
链接丨https://github.com/RichardFu123/Python100Cases
张俊红
2021/01/18
1.6K0
3500 字算法刷题精华总结
写出几种常见复杂度对应的算法,星友们给出的答案都很准确,在这里参考星友聂磊的答案:
lyhue1991
2020/07/23
5370
leetcode ​# 118:Pascal's Triangle 杨辉三角
Given a non-negative integer numRows, generate the first numRows of Pascal's triangle.
爱写bug
2019/06/25
3520
leetcode ​# 118:Pascal's Triangle 杨辉三角
试题 基础练习 杨辉三角形
资源限制 内存限制:256.0MB C/C++时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 杨辉三角形又称Pascal三角形,它的第i+1行是(a+b)i的展开式的系数。
GeekLiHua
2025/01/21
470
Python高级特性——为什么都说Python高效
本微教程根据廖雪峰python教程中的部分内容,配合我个人的学习经历进行总结整理。
beyondGuo
2018/10/25
6200
Q118 Pascal's Triangle
Given numRows, generate the first numRows of Pascal's triangle. For example, given numRows = 5, Return [ [1], [1,1], [1,2,1], [1,3,3,1], [1,4,6,4,1] ] 解题思路: 根据杨辉三角的规律,发现最后一行可以由倒数第二行生成。因此,从第一行开始,逐次构造下一行,知道满足条件为止。 Python实现: class Solution:
echobingo
2018/04/25
5470
相关推荐
Python-打印杨辉三角(进阶版)
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文