• 2-2-3:序列(字符串)乘法(p32)


    以正确的宽度在剧中的“盒子”内打印一个句子

    分析:

    定义屏幕宽度为80,输入的句子长度为26,盒子宽度=句子长度+6=26+6=32;

    左边距=右边距,左边距+右边距+盒子宽度=屏幕宽度;

    左边距=(屏幕宽度-盒子宽度)/2=(80-32)/2=24;

    格式输出:

    盒子四个角为+号,左面是空格,右面是空格(可以省略);

    盒子上面是一行-号;

    盒子第一行开始是|号,然后是空格,然后是|号;

    盒子第二行开始是|号,然后是句子,然后是|号;

    盒子第三行开始是|号,然后是空格,然后是|号;

    盒子上面是一行-号;

    输入的句子是:

    She's a very naughty girl!(26个字符)

    代码如下:

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 sentence=raw_input("Sentence: ")
     4 screen_width=80
     5 text_width=len(sentence)
     6 box_width=text_width+6
     7 left_magin=(screen_width-box_width)/2
     8 print
     9 print " "*left_magin+"+"+"-"*(box_width-2)+"+"
    10 print " "*(left_magin)+"|"+" "*(text_width+4)+"|"
    11 print " "*(left_magin)+"|"+" "*2+sentence+" "*2+"|"
    12 print " "*(left_magin)+"|"+" "*(text_width+4)+"|"
    13 print " "*left_magin+"+"+"-"*(box_width-2)+"+"
    14 print

    效果:

    1 Sentence: She's a very naughty girl!
    2 
    3                         +------------------------------+
    4                         |                              |
    5                         |  She's a very naughty girl!  |
    6                         |                              |
    7                         +------------------------------+

    扩展:

    盒子的左面和右面都为*号,看下盒子是否位于屏幕居中

     1 #!/usr/bin/env python
     2 # -*- coding:utf-8 -*-
     3 sentence=raw_input("Sentence: ")
     4 screen_width=80
     5 text_width=len(sentence)
     6 box_width=text_width+6
     7 left_magin=(screen_width-box_width)/2
     8 right_magin=left_magin
     9 print
    10 print "*"*left_magin+"+"+"-"*(box_width-2)+"+"+"*"*right_magin
    11 print "*"*(left_magin)+"|"+" "*(text_width+4)+"|"+"*"*right_magin
    12 print "*"*(left_magin)+"|"+" "*2+sentence+" "*2+"|"+"*"*right_magin
    13 print "*"*(left_magin)+"|"+" "*(text_width+4)+"|"+"*"*right_magin
    14 print "*"*left_magin+"+"+"-"*(box_width-2)+"+"+"*"*right_magin
    15 print

    效果:

    Sentence: She's a very naughty girl!
    
    ************************+------------------------------+************************
    ************************|                              |************************
    ************************|  She's a very naughty girl!  |************************
    ************************|                              |************************
    ************************+------------------------------+************************
    1 Sentence: SHE
    2 
    3 ***********************************+-------+***********************************
    4 ***********************************|       |***********************************
    5 ***********************************|  SHE  |***********************************
    6 ***********************************|       |***********************************
    7 ***********************************+-------+***********************************

     确实在中间!

  • 相关阅读:
    【Java学习笔记十二】——初窥多线程
    【Java】使用swing实现简易计算器
    【Java学习技巧分享】——IDEA快捷键(超全!!!)
    【Java学习笔记九】——I/O流之字符流与数据流
    【Java学习笔记八】——I/O流之InputStream和OutputStream
    算法导论15章答案
    算法导论32章答案
    右击任务栏应用图标不显示菜单后的无奈美化
    verilog
    进制表示以及转换
  • 原文地址:https://www.cnblogs.com/scholarly/p/10200986.html
Copyright © 2020-2023  润新知