ホーム     戻る

 ミラボウ橋の下         セーヌは流れ   
 
私の恋も             流れていった
 思い出さねば            ならないのか
 喜びはいつも              苦しみの後にくる

 夜のとばりよ               鐘よ鳴れ
 日々は過ぎ                 私は残る
  
 
過ぎゆく日々              かの時も
  私の恋も                   戻らない

 ミラボウ橋の下       鐘よ鳴れ
日々は過ぎ    私は残る
           アポリネール
セキザン訳

    第2章  文字列(改訂中20161231) 
 
 (1)文字列の概要

 文字を扱うデータ型
 
 Strings 文字を順番に並べたオブジェクト 長さに制  
       限がない 順番は0123...で並ぶ 
           
文字列は変更できない。imutableである。」

 文字列を作成する.python shelを使用する。>>>(pronpt)の次に文を記入する。

  >>> print("日本語") ””で文字列を囲む。
        日本語
    printは組み込み関数と呼ばれる。後で説明。

 >>> s="相続税の機能は、1所得税の補完機能、2富の集中抑制機  
      能が代表的なものである。"

    sは変数と呼ばれる。データが入っている箱の名前である。後で 
    説明する。

    =はデータ割り当て記号として使用する。
 >>> s
 '相続税の機能は、1所得税の補完機能、2富の集中抑制機能が代 
 表的なものである。'
    
    
         Sは、変数(valuable) 文字列を記憶する場所(名前空間)の 
    名前nameである。

   文字列は””ダブルクオートまたは’’シングルクオートで囲むで囲
   む。
Sと入力すると、文字列が表      
   示される。未定義の変数を参照しようとすると、エラー表示が表出
   される。変数参照を削除するときは、delキーワードを使用する。
 
 
 文字列演算 乗算(反復)と加算(連結)

 + *  演算子

  •  +で文字列を連結する。 
       concatenation

     "文字列1" + "文字列2"
     「+」演算子の左辺と右辺を連結した新しい文字列を返す。
     
      >>> "東京"+"横浜"
      '東京横浜'
      >>> s1="東京"
      >>> s2="横浜"
      >>> s3=s1+s2
     >>> s3
     '東京横浜'

  •  文字列はprint関数で端末に表出される。
     >>> print("年々の消費"+"、消費されなかった貯蓄")

       年々の消費、消費されなかった貯蓄

  •  . *の演算
     文字列の繰り返しrepitition
     文字列に対して「*」演算子を使用すると、対象の文字列を回数分、
     繰り返した新しい文字列を取得。
     "文字列" * 回数

     >>> print("*"*10)

    **********

    . 文字列の関数 関数:データをうけとり、きめられた通り実行し結果を返す            命令
     文字列の文字数を計算する組込関数len
     関数は自作できるがlen関数はpythonにあらかじめ用意されている組み込
     関数である。文字数を返す。
     
    >>> len("多摩川のかすむ夕日の別れかな セキザン  ")
       18
  •  文字列の存在を調べる in関数
     
     >>> s="相続税の機能は(1)所得税の補完機能、(2)富の集中抑制機能
           の二つが代表的である。
    "
     >>> "補正機能" in
       False
     >>> "抑制機能" in s
     True
  •  数値を文字列に変換する関数str 
  •  文字列と数値は連結出来ないので数値を文字列に変換して連結。

     
     >>> print( str(2020)+"年")
         
       2020年

  •  
     インデキシング 

  • インデックスを指定して要素を取得

     
     文字列は
    複数の要素が順序を持って並べられている。
     要素には先頭から順に番号が割り当てられている。
     番号インデックスは「0」「1」「2」...と0から順に割り当てられている。
     番号で要素を指定する。
    負の値の指定も可能。 
     負の値の場合は「-1」なら一番最後の要素、「-2」なら最後から二
     番目の要素となる。

     インデックス記法 スライス記法が適用できる 

  •  例

     str = "人生即別離"

     print (str[0] )   人
     print
    ( str[1] )  生
     print
    ( str[2] )   即
     print
    (str[3] )   別
     print
    (str[4] )  離


     スライスを使った部分文字列の取得

     
    オブジェクトの中の指定した範囲の要素を持つ新しいオブジェクト
     を作成して返す。
    スライスで要素を抽出する範囲を指定する

     
    >>> s='雪はげし抱かれて息のつまりしこと 橋本多佳子'
     >>> s[0:4]
     '雪はげし'

     
         
     
     文字列の比較演算 ==


     
     >>> '相続税' == '贈与税'
     False  
     >>> '相続税'== '相続税'
     True

  •    句読点、数字、記号、スペ−スも文字列。
     ’’ ”” は空文字列
     

     
    文字列リテラル:
    文字列の実際の値が単に記述されているものの
               こと
    。 
     シーケンス:sequence複数の要素から構成され、要素が順番に並んで
     いる
    文字列場合は文字要素が順番に並んでいる。 
     
     
     文字列とリストの違い:文字列が変更できないこと。imutable 
     >>> a="tokyo" 文字列の場合
     >>> a.append("yokohama")
     Traceback (most recent call last):
      File "<pyshell#1>", line 1, in <module>
        a.append("yokohama")
     AttributeError: 'str' object has no attribute 'append'

     append追加できない。
     >>> b=["tokyo"] リストの場合
     >>> b.append(",yokohama")
     >>> b
     ['tokyo', ',yokohama']      
    追加変更できる

     リストと言うデータ型は追加できる。リスト後で説明する。

     
     
     
    トリプルクオーテーション :

     
    シングルクオーテーション又はダブルクオーテーションを3つ続けた
     もので文字列を囲う方法。複数行の文字列を作成出来る

     プログラム中で改行されている箇所は改行文字である「\n」が入力
     されているとみなされる。シングルクオーテーションでもよい。

     >>> print
    ( """多摩川の
      清く冷たくやはらかき
          水のこころを誰に語らむ  かの子""")

  •  多摩川の
       清く冷たくやはらかき
          水のこころを誰に語らむ  かの子

      #: コメント python coment:

       自然言語でコメントを付けてプログラムの意味を明示   
       する。
    の後はプログラムでは無視される。書く場所はどこ
       でもよい。
     例 #
     
    >>> print("無償取得とは")#個人の無償取得と法人の無償取得につい 
     て説明する。無償取得 とは

     
     
    インデント(ブロック):字下げ

  •  Python の関数・計算式や制御構造などの記述に必ず 
       インデントが必要。 インデントはインデントのレベル(深さ)でプログラ
      ムのブロック単位を区分する。ブロックの開始終了をインデントで表現
      する。  
             


             
  •  文字列関数の追加
      

  •  メソッド  ・関数名の形式

      メソッドの形式:オブジェクト名.(ドット
    メソッド名(引数・・・)

       文字列オブジェクトの次にドット ・を付ける
     
      
     
      名前 . find     文字列の有無を確認し、そのインデックスを返す

  •  >>> s = "マッチ擦るつかのまの海に霧ふかし身捨つるほど
            の祖国はありや 寺山修司
    "

     >>> s.find('マ')         
    sオブジェクト名 find メソッド名

     0                            0 はインデクスを示す

     >>> s.find('海')

     10

     >>> s.find('丘')

     -1                 存在しない場合

     

     文字列の出現回数を調べるcount関数
     
     >>> s="人生は汽車に似ているな。旅をしながら年老って古くなって
          ゆく。自由になりたいな、って思うが、レールの外に出れる訳
          じゃない。
    寺山修司"
     
     >>> s.count('寺')
     1
     print可能性を確認する関数isprintable

     >>> s='納税義務'

     >>> s.isprintable()

     True

     文字列を分割関数split

     split()     partition()    

       <カンマで要素を区切つて分離する。

      >>> s='千里鶯啼 緑映紅'

     >>> s
    .split()

     ['千里鶯啼', '緑映紅']

     . 

     文字列を置き換える関数replace

    . replace()

     >>> s ='春は花'
     
     >>> s.replace('春','秋')
     
     '秋は花'


     左寄せ、右寄せ、中央寄せ

     >>> s=('夕陽無限好,只是子黄昏')

     >>> s.ljust(20)

     '夕陽無限好,只是子黄昏         '

     >> s.rjust(20)

    '         夕陽無限好,只是子黄昏' 

    >>> s.center(30)

    '         夕陽無限好,只是子黄昏  

      0詰め文字列

     >>> s='123'

     >>> s.zfill(20)

     '00000000000000000123'

     文字列の削除関数strip

      
     >>> s='ユトテモオマエハ寝ニクウゴザロオ'

     >>> s.strip('ユ')

     'トテモオマエハ寝ニクウゴザロオ'

     
      セミコロン    一行に複数の文を書く

  •  print("月");print("雪");a="花";print(a)
     
     >>>
     

     雪
     花

       文字と 数値

          の書式 %s %d  %
       

     
    print("%s python は ナンバー  %d" % (" python",1))

      python はナンバー 1

       用語集 
     
     リテラル:pythonに直接埋め込むことができる値のこと。
          ナマの値、数値、文字列、などデータそのもの

          変数などと特に区別するために使われる string literal
     識別子:
    idenfier:変数、関数、クラス、モジュール、その他のオブジェクト
         を識別するための名前。文字(AーZ、aーz)またはアンダー
         スコアで始まり、0個以上の文字、数字(0−9)で構成される。
         大文字小文字の区別をする。@ $ %の等は使えない。
     
     キーワード:29個あるand del for python言語で特別な意味を持 
            つ。

    トークン論理行の基本的な語彙要素。論理行の部分文字列。
           
         
     

    式 :expression
    pythonが評価して値を生成することができる
       



    プログラムの実行:
    pythonはスクリプト言語。実行すべき文のリスト
             、スクリプトである。文は上から下へ順に
             実行され、プログラムを終了させる文で終了。
             ファイルの末尾に達すれば終了する。
     
    代入: 変数に何か値を入れること

     初期化:変数に値を入れて使用できるようにする。
      :一行に書くのが原則。

    空白慣習:1演算子の左右は空白にする。

           2 、: の後ろは空白にする。

            3予約語とカッコの間は空白にする。

           4関数とカッコの間は空白を入れない


     文字列の更新

                文字列は基本的に変更不可能で、更新できない.。新しい    
       文字列をつくり、それをコピーして変更したようにする。

    文字列メソッド 
    (a) input

    標準出力にプロンプト(">等")を書き出し、標準入力から一行
       を読み取りその行を文字列として返す。

    >>>  print(input('扶養親族数を入力してください。>'))

    扶養親族数を入力してください。>
    3  ユーザの入力を待つ。

    3
                     ユーザ入力を
    そのまま、出力
       

    文字列を反転する   
    .reverse()

     >>> s = ['英語', 'ドイツ語', 'フランス語', '中国語', '日本
           語']

      >>> s.
    reverse()

      >>>
    s

      ['日本語', '中国語', 'フランス語', 'ドイツ語', '英語']
     
           文字列を連結する         .join()

      >>> s = 'tokyo', 'nagoya', 'yokohama' 
                         
    小さな文字列シーケンス
                         をつなげる

      >>> l = ''.join()
      >>>
    l
     
     'tokyonagoyayokohama'

     配列のなかの文字列をもとの文字列にする

    >>> s = ['hello', 'john', 'how', 'are', 'you']

       >>> ' '.join(s)

     'hello john how are you'

     文字列を配列として扱う          

     >>> d = '123456'
        >>> for i in range(len(d)):
                 print ([i],'',)

     
     [0]  [1]  [2]  [3]  [4]  [5]
     
     >>> d[2]
     '3'
     
       文字列の開始文字を調べる    

         .startswith()

     >>>  s = 'abcdef'
     >>> s.startswith('a')
     
     True

     
     >>> s.startswith('c')
     
     False

     文字列を取得し、ホワイトスペースを除去したものを
       返す
      

     .strip()

     >>>  ='    abc   '
     >>> s.strip()
     
     'abc'

       
     
       文字列の一部を除去するには

      
     
    >>> s="陶淵明 生似幻花"
       >>> s.lstrip("幻")
         '陶淵明 生似幻花'
        
       >>> s.lstrip("花")
         '陶淵明 生似幻花'

    漢字には使えない

     数値文字列の左側を「0」で詰めるには

     >>> d = '1234567'
     
     >>> d.zfill(10)
     
     '0001234567'

     

    文字列に文字列を挿入するには

     pen = "shweaizerer"
     文字列の指定した場所に指定した文字列を挿入する
      insert関数がない
      替わりにreplace関数を使う
      penの文字列の一番目にcを加える
     new_pen1=pen.replace("h","ch")
     
     print(new_pen1)

     schweaizerer

      new_pen1からiを削除する
      del関数がないのでreplace関数を使う
     
     
    new_pen2=new_pen1.replace("i","")
     
     print(new_pen2)

     schweazerer

     # 文字列の部分文字列を書き換える
     
    new_pen3=new_pen2.replace("z","iz")
     
     print(new_pen3)

     schweaizerer

                  式の結果を文字列とともに出力する
     
     print("This is a",new_pen4)

     This is a SCHWEAIZERER

                  文字列の中の記号をそのまま出力する
     
     print('This is a ','"',new_pen4,'"')

     This is a  " SCHWEAIZERER "

     改行やタブで文字列を表現する
     
    ’’’ と ’’’で囲 む。
                            
      print('''Is this a pen ?
              Yes it is
          teater pola : ok''')
     
     Is this a pen ?
              Yes it is
          teater pola : ok 
                 teater pola : ok
     ord()

    長さ1の指定した文字のコードポイントを正数値で返す。

    >>> ord("p")
    112
    >>> ord("a")
    97
    >>> ord("a")+ord("b")
    195

    用語追加

            データ:情報処理を導き出すことができる何らかの事実ま
                たは 数値(材料)。コンピュータのメモリに格納。

                Pythonではデータを
     使ったときにデータの種類
               (数値、文字、日付など)が定義される。
                   プログラムを使って処理したい情報を、数値や文
               字列のような要素の組みわせで表現したも の。
    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーー


              書式

     カンマ: 、改行しないようにする。
        セミコロン: ;    行の終端を示す。一行に複数の命
                  令文を書くとき使う。
     
                  行の終端のセミコロンはPythonでは省略する

        書式文字列データの表示方法を制御する。
            %:書式化文字
            %d:10進数を示す
            %s:文字列
            %0.2f 小数点以下2桁の浮動小数点
            %4d数値の前をスペースで埋めて、少なく
                とも4桁に する
     

        制御文字¥n 改行 ¥t タブ ¥r キャリッジリターン
            ¥’’
    シングルクオート自体
      
     
                  ¥”
    ダブルクオート自体
                                    

            
     
     既定の文字列に任意の文字列を加えて出力
      変数 format values
       %s. %

     >>> format = '今日は,%s. %s  は順調ですか?' 
         
    %の左側に文字列右側にvalues
     >>> values = ('皆さん','仕事')
     
     >>>
    print(format  values)
     
     今日は,皆さん. 仕事  は順調ですか?

                                                           

     
     >>> format = 'pi 少数点以下3桁: %.3f'
     
     >>>
    from math import pi
     
     >>>
    print (format % pi)

     
     pi 少数点以下3桁: 3.142


     
     >>> # print( "空白" )                         #  
     
    コメント文。
     
    空白を出力。

      オブジェクトと変数

     (a)pythonはあらわれるすべてのデータを、それぞれの個性を一旦無

       視して、すべてを一律に「もの」objectとみなす。
     
    (b)変数はものを入れる箱のようなものと言われる。
      変数にはどんな「もの」も入れることができる。
      変数には名前をつける。変数名
      変数名にはアルファベット、数字、アンダースコアが使える。
      python3では日本語も使える。
      はじめの一文字に数字は使えない。
      アルファベットの大文字、小文字は区別する。
      予約語は使えない。

    (c)「もの」をオブジェクトという。
     

     

     
        http://www.python.jp/doc/release/tutorial/index.html

     上記は東北大学のpython tutorialの翻訳です..。訳者によるコメント、
     原文への参照がついていて」、親切です。

     下記はパリパスチュール研究所が発表している、puyhon言語の教材で す。周到な説明です。




         

    ホーム     戻る
     

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー

    ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー