python基礎知識のリストの加算、乗算

9071 ワード

python基礎知識のリストの加算、乗算
リストの加算
加算演算子によってリストを接続し、加算演算子によって文字列を接続することもできますが、リストと文字列を接続することはできません.
>>> [1,2,3]+[4,5,6]
[1, 2, 3, 4, 5, 6]
>>> 'hello,'+'world!'
'hello,world!'
>>> [1,2,3]+'hello'
>>> [1,2,3]+'hello'
Traceback (most recent call last):
  File "", line 1, in 
    [1,2,3]+'hello'
TypeError: can only concatenate list (not "str") to list
>>>

リストの乗算
数値xにリストを乗じて新しいリストを生成します.すなわち、元のリストはx回繰り返されます(文字列もそうです).
>>> 'python'*3
pythonpythonpython'
>>>[31]*3
[31, 31, 31]
>>>

空のリスト[]は何もないことを示します.初期化Noneは「コンテンツなし」を表しますが、複数の要素を占有するスペースを作成する必要があります.
>>> result=[None]*4
>>> result
[None, None, None, None]
>>>

ケース例
文字からなるボックスを印刷します.ボックスは画面上で中央に位置し、ユーザーが入力した文に基づいて自動的にサイズを調整します.ケース1:
#                
sentence=raw_input('sentence:')

screen_width = 80
text_width = len(sentence)
box_width = text_width + 6
left_margin = (screen_width - box_width)//2

print
print ' '*left_margin+ '+' + '_' * (box_width-2) + '+'
print ' '*left_margin+ '|' +' '* (box_width-2) + '|'
print ' '*left_margin+ '|' + (box_width-text_width-2)//2*' '+sentence +(box_width-text_width-2)//2*' '+ '|'
print ' '*left_margin+ '|' +' '* (box_width-2) + '|'
print ' '*left_margin+ '+' + '_' * (box_width-2) + '+'
print

結果:
>>> ================================ RESTART ================================
>>> 
sentence:Where are you ?

                             +___________________+
                             |                   |
                             |  Where are you ?  |
                             |                   |
                             +___________________+

>>> 
>>> ================================ RESTART ================================
>>> 
sentence:do you know you are a bad man?

                      +__________________________________+
                      |                                  |
                      |  do you know you are a bad man?  |
                      |                                  |
                      +__________________________________+


>>> 

ケース2:
#                
sentence=raw_input('sentence:')

screen_width = 80
text_width = len(sentence)
box_width = text_width + 6
left_margin = (screen_width - box_width)//2

print
print ' '*left_margin+ '+' + '_' * (box_width-2) + '+'
print ' '*(left_margin+(box_width-text_width-2)//2)+ '|' +' '* text_width + '|'
print ' '*(left_margin+(box_width-text_width-2)//2)+ '|' +sentence + '|'
print ' '*(left_margin+(box_width-text_width-2)//2)+ '|' +' '* text_width + '|'
print ' '*left_margin+ '+' + '_' * (box_width-2) + '+'
print

結果:
>>> ================================ RESTART ================================
>>> 
sentence:Where are you ?

                             +___________________+
                               |               |
                               |Where are you ?|
                               |               |
                             +___________________+

>>> ================================ RESTART ================================
>>> 
sentence:Do you know you are a bad man?

                      +__________________________________+
                        |                              |
                        |Do you know you are a bad man?|
                        |                              |
                      +__________________________________+

>>>