打印星星 - Python
- 打印星星是经典面试题目,考察流程控制中的循环和条件。本文对相关方法进行总结。
- 到的方法只要有(1)嵌套循环(2)center(3)format(^)(4)字符串乘法
# -*- coding:utf-8 -*-
# 方法一:循环嵌套
num = 10
for row in range(num):
print('{:<8d}'.format(row+1), end='')
print((num - row) * ' ', end='') # 输出空格,这里可以用乘号
for col in range(2 * row + 1):
if col == 0 or col == 2*row or row == num-1: # 条件:左右边界或下边界,打印*,否则打印空格
print('*', end='')
else:
print(' ', end='')
print() # 打印完没一行,一定要记得换行
for row in range(num-2, -1, -1):
print('{:<8d}'.format(row+1), end='')
for j in range(num-row): # 输出空格,这里有可以用循环
print(' ', end = '')
for col in range(2 * row + 1):
if col == 0 or col == 2*row:
print('*', end='')
else:
print(' ', end='')
print()
# 以下方法只使用于实心情形
# 方法二:center
num = 10
print(2*num*'-','原始center')
for row in range(num):
print('{:<8d}'.format(row + 1), end='')
print(((row+1) * '*').center(20, ' '))
print('\n', 2*num*'-', '改进版本1-奇数-center')
for row in range(1, 2*num, 2):
print('{:<8d}'.format(row), end='')
print((row * '*').center(20, ' '))
print('\n', 2*num*'-', '改进版本2-空格-center')
for row in range(num):
print('{:<8d}'.format(row + 1), end='')
print(((row+1) * '* ').center(20, ' '))
# 方法三:format(^)
num = 10
print('\n',2*num*'-','方法3-空格-format', end='')
for row in range(num):
print('{:<8d}'.format(row), end='')
print('{:^20s}'.format('* '*row))
运行结果如下:
1 *
2 * *
3 * *
4 * *
5 * *
6 * *
7 * *
8 * *
9 * *
10 *******************
9 * *
8 * *
7 * *
6 * *
5 * *
4 * *
3 * *
2 * *
1 *
-------------------- 原始center
1 *
2 **
3 ***
4 ****
5 *****
6 ******
7 *******
8 ********
9 *********
10 **********
-------------------- 改进版本1-奇数-center
1 *
3 ***
5 *****
7 *******
9 *********
11 ***********
13 *************
15 ***************
17 *****************
19 *******************
-------------------- 改进版本2-空格-center
1 *
2 * *
3 * * *
4 * * * *
5 * * * * *
6 * * * * * *
7 * * * * * * *
8 * * * * * * * *
9 * * * * * * * * *
10 * * * * * * * * * *
-------------------- 方法3-空格-format0
1 *
2 * *
3 * * *
4 * * * *
5 * * * * *
6 * * * * * *
7 * * * * * * *
8 * * * * * * * *
9 * * * * * * * * *
Process finished with exit code 0
补充一个C++版本:
(2018/10/22)
#include <iostream>
using namespace std;
int main()
{
const int size = 6;
for (int i = 0; i < size; i++) {
cout << i << '\t';
for (int j = 0; j < (2*size-1); j++) {
if (j == i || j == (2*size-2-i) || i == 0) {
cout << '*';
} else {
cout << ' ' ;
}
}
cout << endl;
}
return 0;
}
运行结果:
0 ***********
1 * *
2 * *
3 * *
4 * *
5 *
打印星星 - Python的更多相关文章
- JavaScript--循环--打印星星和99乘法表
1.打印99乘法表 function chengfa(){ //反复调用公式 for(var r=1;r<=9;r++){ for(var i=1,str="";i<= ...
- JS控制台打印星星,总有你要的那一款~
用JS语句,在控制台中打印星星,你要的是哪一款呢~来认领吧~ 1.左直角星星 效果: 代码: let readline=require("readline-sync"); cons ...
- C#基础第二天-作业答案-九九乘法表-打印星星
题一:九九乘法表的答案 //正三角 ; i < ; i++) { ; j <= i; j++) { Console.Write("{0}*{1}={2} ", j, i ...
- python中while循环打印星星的四种形状
在控制台连续输出五行*,每一行星号数量一次递增 * ** *** **** ***** #1.定义一个行计数器 row = 1 while row <= 5: #定义一个列计数器 col = 1 ...
- C#基础第二天-作业-九九乘法表-打印星星
一.打印九九乘法表图形为下列效果图中的三角型的一种例: 图一效果1*1=1 1*2=2 2*2=4 1*3=3 2*3=6 3*3=9 1*4=4 2*4=8 3*4=12 4*4=16 1*5=5 ...
- 从上往下打印二叉树(python)
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. # -*- coding:utf-8 -*- # class TreeNode: # def __init__(self, x): # ...
- 顺时针打印矩阵(python)
题目描述 输入一个矩阵,按照从外向里以顺时针的顺序依次打印出每一个数字,例如,如果输入如下4 X 4矩阵: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 则依次打印出数 ...
- 从尾到头打印链表(python)
题目描述 输入一个链表,按链表值从尾到头的顺序返回一个ArrayList. # -*- coding:utf-8 -*- # class ListNode: # def __init__(self, ...
- 22.从上往下打印二叉树(python)
题目描述 从上往下打印出二叉树的每个节点,同层节点从左至右打印. class Solution: # 返回从上到下每个节点值列表,例:[1,2,3] def PrintFromTopToBottom( ...
随机推荐
- C#获取当前主机硬件信息
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.T ...
- Confluence 6 中修改默认的表现和内容
Confluence 构建了一些有用的默认设置,这些设置能够让第一次访问使用 Confluence 系统的用户更好的了解系统.同时默认的内容将新空间和其他区域放置在 Confluence 中. Con ...
- Confluence 6 修改站点的标识图片
你可以通过修改标识图片(Logos)来修改你 Confluence 站点的外观和感觉. 你可以修改: 站点标识图片(site logo) 为所有空间修改默认空间标识图片(default space l ...
- 关于ios进入后台界面后 播放声音解决方案
1 最近我在做环信视频通话时,遇到了一个新功能就是APP在后台的时候能对方能视频或者音频过来的时候 能够播放声音 根据查询相关资料得到如下解决办法 NSError *error; AVAudioSes ...
- laravel 更新
public function update(Request $request, ResponseFactoryContract $response) { $user = $request->u ...
- linux里面的命令:./和. /(这里有空格)的区别
/ ( 直接/ ) 直接 / 表示: 根目录. ./ ( 点号紧跟/ ) 点号紧跟/ 表示: 当前目录(相对路径的写法). . / ( 点号 空格 / ) 有空格的点号等同于source命令,表示在 ...
- 如何使用VisualSVN Server建立版本库
首先打开VisualSVN Server Manager,如图: 可以在窗口的右边看到版本库的一些信息,比如状态,日志,用户认证,版本库等.要建立版本库,需要右键单击左边窗口的Repositores, ...
- java中的相对目录问题
在java开发过程中,常常需要使用本地文件内容文件.在调试他人代码的过程中,可能不经意间改变了源代码的根目录(顶级目录),从而导致“java io filenotfoundexception ”.解决 ...
- jqurey实现点赞特效
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...
- Ubuntu16.04安装配置和使用ctags
Ubuntu16.04安装配置和使用ctags by ChrisZZ ctags可以用于在vim中的函数定义跳转.在ubuntu16.04下默认提供的ctags是很老很旧的ctags,快要发霉的版本( ...