Q&A
6回答
3133閲覧
総合スコア117
Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。
0グッド
2クリップ
投稿2014/07/14 04:55
0
2
Python2.7を使っています。
text.txtというファイルがあり、中には数字が羅列しています。
1234680...といった具合です。
これらの和を求めようとしています。
つまり、1+2+3+4+6+8+0+...の答えを出したいのです。
数字がスペースで区切られている、あるいは改行されているのであればなんとかなるのですが、 連続している場合どうすればいいのでしょうか?
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
質問へのコメント
回答6件
ファイルの中身を読み取ってリストに変換し、 for文で一要素ずつ読み出して足していくというやり方でいかがでしょう? ` #ファイルの中身を読み取る(1行のみ) f=open('text.txt','r') text=f.readline() #print text #出力:1234680...
#変数textの中身を要素がint型のリストに変換する list = list(map(int, text)) #print list #出力:[1, 2, 3, 4, 6, 8, 0, ...]
#リストinputの要素の和を求める sum = 0 for i in list: sum += i print sum
f.close() `
投稿2014/07/14 14:47
総合スコア118
sum(int(i) for i in '1234680')
これでどうでしょうか
投稿2014/07/17 15:42
総合スコア13
eval 使うのどうなのって意見もでてきそうですが、まあちょっとしたローカルのみでの計算という前提で。 f = open('text.txt','r') text = f.readline() print(eval(text))
f = open('text.txt','r') text = f.readline() print(eval(text))
投稿2014/07/17 07:22
総合スコア33
(だいぶ前の質問に回答するのもアレですがちょっと気になりましたので)
python1digits = next(open('text.txt', 'r')).strip() # 1行読み込み、改行等があれば削除 2print sum(map(int, digits))
python
1digits = next(open('text.txt', 'r')).strip() # 1行読み込み、改行等があれば削除 2print sum(map(int, digits))
投稿2017/12/12 06:10
総合スコア28
読み込んだデータをint型に置き換えてwhile文で (i)10で割った余りを加える. (ii)10で割る を最初の数値が0になるまですればいいと思います。
int
while
python1text = "1234680" 2num = int(text) 3sum = 0 4 5while num > 0: 6 sum += num % 10; 7 num = int(num / 10) 8 9print sum
1text = "1234680" 2num = int(text) 3sum = 0 4 5while num > 0: 6 sum += num % 10; 7 num = int(num / 10) 8 9print sum
投稿2018/09/04 10:03
退会済みユーザー
総合スコア0
個人的にはこういうのもアリかと思います。
Python1import sys 2print sum(int(d) for i in sys.stdin for d in i if d in '0123456789')
Python
1import sys 2print sum(int(d) for i in sys.stdin for d in i if d in '0123456789')
>python hoge.py < text.txt 24
投稿2017/12/12 06:36
総合スコア35678
あなたの回答
tips
太字
斜体
打ち消し線
見出し
引用テキストの挿入
コードの挿入
リンクの挿入
リストの挿入
番号リストの挿入
表の挿入
水平線の挿入
プレビュー
まだベストアンサーが選ばれていません
アカウントをお持ちの方はログイン
15分調べてもわからないことはteratailで質問しよう!
ただいまの回答率85.29%
質問をまとめることで思考を整理して素早く解決
テンプレート機能で簡単に質問をまとめる
連続した数字の和を求めたい
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。