teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

3

インデント調整

2021/08/05 17:59

投稿

udon-ken
udon-ken

スコア657

answer CHANGED
@@ -15,7 +15,7 @@
15
15
  nums = []
16
16
  for item in p.readlines():
17
17
  nums.append(int(item))
18
- # nums = [int(item) for item in p.readlines()] 上3行の内包表記
18
+ # nums = [int(item) for item in p.readlines()] 上3行の内包表記
19
19
  print(f"{sum(nums)}cm")
20
20
  ```
21
21
  あと、現在読み書きしているファイルはただのテキストファイルですので、拡張子は.txtがいいと思います。

2

追記

2021/08/05 17:59

投稿

udon-ken
udon-ken

スコア657

answer CHANGED
@@ -9,13 +9,13 @@
9
9
  他にファイルの読み込みはreadline()とreadlines()があります。
10
10
  詳細はググってください。
11
11
 
12
- 素直にやるならreadlines()でファイル全部をリストとして読み込み、一つ一つの要素をint型にして新しいリストに追記していくのが一番分かりやすいでしょう(内包表記だと1行で書けます)
12
+ 素直にやるならreadlines()でファイル全部をリストとして読み込み、一つ一つの要素をint型にして新しいリストに追記していくのが一番分かりやすいでしょう。
13
- それが以下のコードです。
14
13
  ```python
15
14
  with open("Moving.xlsx", "r") as p:
16
15
  nums = []
17
16
  for item in p.readlines():
18
17
  nums.append(int(item))
18
+ # nums = [int(item) for item in p.readlines()] 上3行の内包表記
19
19
  print(f"{sum(nums)}cm")
20
20
  ```
21
21
  あと、現在読み書きしているファイルはただのテキストファイルですので、拡張子は.txtがいいと思います。

1

追記

2021/08/05 17:58

投稿

udon-ken
udon-ken

スコア657

answer CHANGED
@@ -1,6 +1,7 @@
1
1
  問題の根本は文字列をlistしたらどうなるか?です。
2
2
  print(list("123456"))
3
3
  とやってみたら分かりますが、1文字づつ区切られたリストになります。
4
+ なので当然3と2が分かれて別々に足されます(手元では33でしたが・・・)
4
5
 
5
6
  で、やりたい事が何かというと、ファイルの1行をint型の1要素としたリストを作ってそれを計算したいのですよね?
6
7
  であれば、read()で一括取得した時は改行文字で分割してリストにすればいい事になりますが・・・最後に改行だけの行があるので話しが長くなるのでやめましょう。。