🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

解決済

3回答

374閲覧

記載したコードをもっと簡略する方法はないでしょうか。

kurobei0510

総合スコア11

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

2クリップ

投稿2021/03/08 13:47

#s="2309-3455"で
0に対応するのが13
1→3,2→4に変更して
変更後の合計を3倍する。

s = input()
#s="2309-3455"
a = s.replace('-', '')
b = list(a)
c = [int(s) for s in b]
c1=len(c)
d=[13,3,4,5,6,7,8,9,10,11,12]

sum=0
for i in range (c1):
y=c[i]
z=d[y]
#print(z)
sum += z

print(sum*3)

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

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

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

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

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

meg_

2021/03/08 14:08

コードは「コードの挿入」で記入してください。
guest

回答3

0

ベストアンサー

Python

1s="2309-3455" 2r=0 3for i in range(len(s)): 4 if s[i]=='0': 5 r+=13 6 elif '1'<=s[i]<='9': 7 r+=int(s[i])+2 8r*=3 9print(r)

とか

投稿2021/03/08 17:25

modieu

総合スコア282

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

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

0

Python

1s = input() 2v = sum([13 if c=='0' else 0 if c=='-' else int(c)+2 for c in s])*3 3print(v)

'-' 以外の文字もあるのなら

Python

1v = sum([13 if c=='0' else int(c)+2 if c.isdigit() else 0 for c in s])*3

投稿2021/03/09 10:48

kazuma-s

総合スコア8224

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

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

0

短いのだと

python

1s = input() 2d=[13,3,4,5,6,7,8,9,10,11,12] 3print(sum([d[int(t)] for t in s if t.isdigit()])*3)

isdigitしてまで除く必要はない?

投稿2021/03/08 20:53

xail2222

総合スコア1508

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

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

ppaul

2021/03/08 23:31

d=[13,3,4,5,6,7,8,9,10,11] にすれば、3文字減ります。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問