リストの中身を計算する
今日はリストの2回めです。
まずは、一度格納したリストに対して四則計算をしてみましょう。
仮に、売上高300万円の商品から製造原価、人件費、倉庫費を引いて利益を計算をするとしましょう。費用はそれぞれ3000、25000、150000とします。
入力例)
uriage = 3000000
cost = [3000,25000,150000]
totalcost = 0
for i in cost:
totalcost = totalcost + i
print(uriage – totalcost)
- uriageを300万とします。
- Costをカンマ切りで入力します。
- totalcostを定義し、リセットのためゼロとします。
- for文でcostのデータ数分繰り返し処理を行います
- totalcostにtotalcostにi(その時のリストの中身)を加算して代入します。
- totalcostは最初の中身を取り出し、次の値iを加算して代入し、これをcostのデータの長さ分繰り返します。
- ループから出てuriageからtotalcostを引いて出力します
出力結果)
2822000
これが当座の利益となります。もちろんこの計算はいい加減ですが、こんな感じに使用する事もできますという意味で。
キーボードで入力した値をリストに格納する
6.標準入力で出てきた標準入力と組み合わせて、入力された値をリストに格納してみましょう。ただ、1.文字を書くでも出てきたように、Pythonは目に見えなくても改行コードなど記号がついてきます。そこで特定の文字列や改行コードなどを取り除くstripという関数を使います。
strip関数
例えば、「HelloWorld」という文字列の前後に余計な空白があったとします。
入力例)
a = ” HelloWorld “print(a)
出力結果)
HelloWorld
当然、出力結果にも余計な空白があります。リストに格納するにはこれはいらない場合がほとんどなので、このaにstripをかけてみましょう。書き方はa.strip()です。
入力例)
a = ” HelloWorld “
b = a.strip()
print(a)
print(b)
出力結果)
HelloWorldHelloWorld
stripをかける前のaは空白があり、かけた後のbでは消えています。見えないですが改行も消えています。stripの後の()は引数ですので、ここに文字列や記号を指定すると、その文字列が消えます。strip関数にはlとrがあり、lstrip関数は文字列の先頭から、rstrip関数は文字列の末尾から文字を削除します。すると、rstripがかかっている変数は改行記号のみが消える事になります。
split関数
次に登場するのがsplit関数です。splitは文字列を指定した文字のところで区切る事ができます。例えば、「Hello_World」と文字に「,」があるとします。
入力例)
a = “Hello_World”
b = a.split(“_”)
print(a)
print(b)
出力結果)
Hello_World
[‘Hello’, ‘World’]
splitをかける前のaは一連の文章で、かけた後のbでは_で区切ったリストになっています。_そのものは消えます。
それでは、それらを使って、入力された文字列をリスト化します。ついでに1つづつ出力しましょう。うまくいかない場合は”や,などの記号を打ち直して下さい。
入力例)
txt= input().rstrip().split(“,”)
print(txt)
print(len(txt))
for i in txt:
print(i + “と入力されています”。)
- テキストを受け取り、末尾を消して”,”で分割しtxtに代入する
- とりあえず、そのまま出力します
- 入力した文字列が何個のリストになっているか数えます
- リストを取り出すにはfor文で連続処理します。txtの中身を1個づつ取り出しiとします。
- 出力します。
入力例)
入力左官,鳶,木挽
出力結果)
[‘左官’, ‘鳶’, ‘木挽’]
3
左官と入力されています
鳶と入力されています
木挽と入力されています
このようになります。
リストの中身をループで出力する
次は、たまには役に立つものを作ろうと思います。メールフォームによくある、都道府県を選択するセレクタをPythonで作ってみましょう。
まず、カンマ切りされた都道府県リストを用意します。
“北海道”,”青森県”,”岩手県”,”宮城県”,”秋田県”,”山形県”,”福島県”,”茨城県”,”栃木県”,”群馬県”,”埼玉県”,”千葉県”,”東京都”,”神奈川県”,”新潟県”,”山梨県”,”長野県”,”富山県”,”石川県”,”福井県”,”岐阜県”,”静岡県”,”愛知県”,”三重県”,”滋賀県”,”京都府”,”大阪府”,”兵庫県”,”奈良県”,”和歌山県”,”鳥取県”,”島根県”,”岡山県”,”広島県”,”山口県”,”徳島県”,”香川県”,”愛媛県”,”高知県”,”福岡県”,”佐賀県”,”長崎県”,”熊本県”,”大分県”,”宮崎県”,”鹿児島県”,”沖縄県”
これをリストに格納して、HTMLタグとして出力してみましょう。
入力例)
prefectures = [“北海道”,”青森県”,”岩手県”,”宮城県”,”秋田県”,”山形県”,”福島県”,”茨城県”,”栃木県”,”群馬県”,”埼玉県”,”千葉県”,”東京都”,”神奈川県”,”新潟県”,”山梨県”,”長野県”,”富山県”,”石川県”,”福井県”,”岐阜県”,”静岡県”,”愛知県”,”三重県”,”滋賀県”,”京都府”,”大阪府”,”兵庫県”,”奈良県”,”和歌山県”,”鳥取県”,”島根県”,”岡山県”,”広島県”,”山口県”,”徳島県”,”香川県”,”愛媛県”,”高知県”,”福岡県”,”佐賀県”,”長崎県”,”熊本県”,”大分県”,”宮崎県”,”鹿児島県”,”沖縄県”]
print(“”)
for i in prefectures:
print(“” + i + “”)
print(“”)
- 都道府県リストをprefecturesに代入
- Selectの開始タグを出力
- prefecturesの数ぶんのループを開始Pythonのコードで「”」を使い、HTMLのコードで「’」を使う事にします。逆でもまったく変わりありません。
- optionタグの開始を出力し、valueの部分で一度切ってiを出力し、タグの間にまたiを出力します。
- 最後にoptionとselectの閉じタグを出力します。
タグを直接書くより、かなり楽に作れましたね!