🔙
🔝

見える化ちゃん

見えてはいけないモノが見えるようになります

Chatpter.1 - print() のさらなる機能

よく使う便利な機能の紹介

1.1 - end=

end=

  • print() をそのまま使うと、最後は必ず改行されます。

    print('勝手に改行')
    print('しないでね')
    
    勝手に改行
    しないでね

    するなっつーの。


  • こうすると改行されません。

    print('勝手に改行', end='')
    print('しないでね')
    
    勝手に改行しないでね

  • end= とは、改行しない代わりに何の文字で終えるかを指定する機能です。
    print()で改行されるのは、end= を省略すると、自動で改行コードになるからです。

  • 改行というのは、Wordメモ帳 などで、 Enterキーを押すと行が1つ下がって先頭にカーソルが移るアレです。
    【 キャリッジリターン・ラインフィード (CRLF) 】と言いますが、憶えなくていいです。豆知識...

    Enterキーを押すのを、コンピュータに代わりにやってもらう時に \n と書くと改行してくれます。

    改行コードのことは、この後の ''.join() でもさりげなくします。


  • '' の中に好きな文字を入れると、末尾がその文字で終わります。

    print('勝手に改行', end='---')
    print('しないでね')
    
    勝手に改行---しないでね

  • 文で使ったりもします。

    words = ['りんご', 'ゴリラ', 'ラッコ']
    for word in words:
        print(word, end='!')
    
    りんご!ゴリラ!ラッコ!

  • 逆に、空行を入れたい時はこうします。

    print('♪わ~がま~まは~ こどもの罪~')
    print()
    print('♪そーれーをー許さないのは 大人の罪~')
    
    ♪わ~がま~まは~ こどもの罪~

    ♪そーれーをー許さないのは 大人の罪~

  • 一行目をend='\n\n'にしてもいいのですが、print()のほうがわかりやすいと思います。


  • end= はとくに 文で使うかもしれません。

  • 以上の機能を 👇自由に試してみてください。👇

1.2 - ''.join()

''.join()

  • これはリストの要素の値がすべて文字列のときにだけ使える機能です。

  • リストの要素の値を、一気に連結して文字列に変換します。

    a_gyou = ['あ', 'い', 'う', 'え', 'お']
    print(''.join(a_gyou))
    
    あいうえお

  • '' は、区切り文字として機能します。

    a_gyou = ['あ', 'い', 'う', 'え', 'お']
    print(','.join(a_gyou))
    
    あ,い,う,え,お

  • 区切り文字を改行コード \n というのにするとこうなります。
    \ は 「右シフト」キーの左隣、または「BackSpace←」キーの左隣(¥)で入力出来ます。
    \バックスラッシュと言います。

    a_gyou = ['あ', 'い', 'う', 'え', 'お']
    print('\n'.join(a_gyou))
    





    区切り文字を \n にすると、文を使わないで一気に出力できますね。👍


  • ちなみに文字列以外で ''.join() を使うとエラーになります。

    nums = [1, 2, 3, 4, 5]
    print(''.join(nums))
    
    Traceback (most recent call last):
      File "Main.py", line 2, in <module>
        print(''.join(nums))
    TypeError: sequence item 0: expected str instance, int found
    

    この場合は、この後説明する print(*)sep= を使ってください。

    nums = [1, 2, 3, 4, 5]
    print(*nums, sep='')
    
    12345

  • 以上の機能を 👇自由に試してみてください。👇

1.3 - print(*)

print(*)

  • リストをアンパック(展開)する機能です。

    nums = [1, 2, 3, 4, 5]
    print(*nums)
    
    1 2 3 4 5

  • 流れは、以下のとおりです。

    nums = [1, 2, 3, 4, 5]
    print(*nums)
    
    print(*[1, 2, 3, 4, 5])   # nums が化けて、
    
    print(1, 2, 3, 4, 5)      # [] が外れて要素が展開される
    
    1 2 3 4 5

  • 型が混在していてもOK!

    lst = ['1', 2, 'の', '3で', 5]
    print(*lst)
    
    print(*['1', 2, 'の', '3で', 5])
    
    print('1', 2, 'の', '3で', 5)
    
    1 2 の 3で 5

  • アンパック という言葉と機能は使う機会が多いです。

  • 機能を理解するのは簡単なようで意外に難しいのですが、いろいろ試してみることでわかるようになっていきます。

  • アンパックに関しては「学ぶより慣れろ」です。

  • ある程度慣れてから後追いで機能を知っていくととてもよく理解できます。

  • 今後も時々扱っていきますので、徐々にわかっていくと思います。

  • 以上の機能を 👇自由に試してみてください。👇

1.4 - sep=

sep=

  • これは、print(*) と組み合わせて使う機能です。

    nums = [1, 2, 3, 4, 5]
    print(*nums, sep='-')
    
    1-2-3-4-5

  • '-'.join() は文字列型のみ使えましたが、この機能を使えば型が混在していてもOK!

    lst = ['1', 2, 'の', '3で', 5]
    print(*lst, sep='-')
    
    1-2-の-3で-5

  • もちろん、''.join() と同じ結果を得ることも出来ます。

    a_gyou = ['あ', 'い', 'う', 'え', 'お']
    print(*a_gyou, sep='')
    
    あいうえお

    a_gyou = ['あ', 'い', 'う', 'え', 'お']
    print(*a_gyou, sep=',')
    
    あ,い,う,え,お

  • 以上の機能を 👇自由に試してみてください。👇

Chatpter.2 - 見える化ちゃん

print() で値を調べる

  • プログラムを組んでいると、思いの結果が得られないことは日常茶飯事です。

  • そんな時は慌てずに print() を使って、見てみたい値を確認してみましょう。

  • print(👻) は、たいていの値を見せてくれます。

    nums = [2, 1, 4, 3, 6, 5]
    print(*nums)
    
    nums[0], nums[1] = nums[1], nums[0]   # 値交換(スワップ)という裏ワザ
    print(*nums, ':2と1を交換')
    
    nums[2], nums[3] = nums[3], nums[2]
    print(*nums, ':4と3を交換')
    
    nums[4], nums[5] = nums[5], nums[4]
    print(*nums, ':6と5を交換')
    
    2 1 4 3 6 5
    1 2 4 3 6 5 :2と1を交換
    1 2 3 4 6 5 :4と3を交換
    1 2 3 4 5 6 :6と5を交換

  • 確認OKなら不要な print() は消します。

    nums = [2, 1, 4, 3, 6, 5]
    
    nums[0], nums[1] = nums[1], nums[0]
    nums[2], nums[3] = nums[3], nums[2]
    nums[4], nums[5] = nums[5], nums[4]
    print(*nums)
    
    1 2 3 4 5 6
  • ちょっと見てみたい値を print() で見てみるということです。

  • あまりにあちこちおかしすぎて print() だらけになるなんてことはしょっちゅうです。

  • どれが何の値かがわかるように変数名を添えたり、上のプログラムみたいに確認のコメントを書いておくといいですよ。👍