以正确的宽度在剧中的“盒子”内打印一个句子
分析:
定义屏幕宽度为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 ***********************************+-------+***********************************
确实在中间!