質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.47%
Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Q&A

解決済

3回答

146閲覧

python 入力された文字列を数値に置き換えて計算したい。

sanster

総合スコア14

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

0グッド

0クリップ

投稿2019/04/27 20:21

標準入力が以下の5行の時
Hit
Defense
Defense
Hit
Hit

Hitの時は1のダメージを与えDefenseの時、与えるダメージは0
Hitと入力された回数分の数字を足した値を出力したいのですが入力された文字列をどのように数値に置き換えればよいでしょうか?

上の例の場合の期待する出力は

です。

途中までのソースコードが以下ですが

n = input()
d = 1
for i in range(5):

このあたりでパンク(頭が)して進めません。
説明文で足らないところがあれば追記しますのでご教授ください。
よろしくお願いします。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

このような辞書を使って値を取得するようにすると、拡張がし易いです。

Python

1event_to_damage = { 2 'Critical': 3, 3 'Hit' : 1, 4 'Defense' : 0, 5 'Pray' : 0, 6}

投稿2019/04/28 05:10

LouiS0616

総合スコア35660

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanster

2019/04/28 07:00

ありがとうございます! いやはやプログラミングの道のりは先が長いでs、、、
guest

0

x.py

python3

1d = 0 2for i in range(5): 3 if input() == "Hit": 4 d += 1 5 6print(d)

実行例
イメージ説明

投稿2019/04/27 21:51

katoy

総合スコア22324

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanster

2019/04/28 04:39

ありがとうございます♪ またすぐ壁に当たると思うので 次回もよろしくお願いします ;)
guest

0

ベストアンサー

とりあえずlistに変換する

まず入力を読み取ってlistに変換します。やり方はいろいろありますが、最終的に

python

1["Hit", "Defense", "Defense", "Hit", "Hit"]

のようなlistが得られていればそこまでの手順は問いません。

カウントする

一番簡単なのは、listのcountメソッドで済ませることです。

python

1>>> lst = ["Hit", "Defense", "Defense", "Hit", "Hit"] 2>>> lst.count("Hit") 33

forループで"Hit"の回数を数える、内包表記で"Hit"だけ残してから長さを見るとか、やり方はいろいろあると思います。

投稿2019/04/27 20:35

hayataka2049

総合スコア30933

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

sanster

2019/04/28 04:44

ありがとうございます♪ python力が向上しました。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.47%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問