回答編集履歴

1

Add second answer

2020/07/07 11:42

投稿

y_shinoda
y_shinoda

スコア3272

test CHANGED
@@ -1,3 +1,7 @@
1
+ ## 元の回答
2
+
3
+
4
+
1
5
  10進数に限定した対応方法ですが、文字列として処理してしまう方法をご紹介します
2
6
 
3
7
 
@@ -114,7 +118,7 @@
114
118
 
115
119
 
116
120
 
117
- ## 注意点
121
+ ### 注意点
118
122
 
119
123
 
120
124
 
@@ -123,3 +127,101 @@
123
127
  異なるデータが与えられた場合には想定していないエラーが発生する可能性があります
124
128
 
125
129
  たとえば、「ピリオドを含まない数値の文字列が与えられた場合」などです
130
+
131
+
132
+
133
+ ## 追記
134
+
135
+
136
+
137
+ > 総計1863016.52、数値の文字数113がプリント出力されるには
138
+
139
+ > def desimaaliluku文とdef numeromerkki文をどう変更したらよろしいでしょうか?
140
+
141
+ > 最終結果のみプリント出力したいのですが、どうへんこうしたらよいでしょうか?
142
+
143
+
144
+
145
+ 次のように変更します
146
+
147
+
148
+
149
+ `desimaaliluku()`:
150
+
151
+
152
+
153
+ ```python
154
+
155
+ def desimaaliluku():
156
+
157
+ tiedosto=open("liukulukuja.txt","r",encoding="utf-8")
158
+
159
+ sum=0
160
+
161
+ for i in tiedosto.readlines():
162
+
163
+ index_period = i.find(".")
164
+
165
+ number = i[:index_period + 3]
166
+
167
+ # print(number)
168
+
169
+ sum = sum + float(number)
170
+
171
+ tiedosto.close()
172
+
173
+ print(sum)
174
+
175
+ return sum
176
+
177
+ ```
178
+
179
+
180
+
181
+ `numeromerkki()`:
182
+
183
+
184
+
185
+ ```python
186
+
187
+ def numeromerkki(): # ピリオド以外の数をカウントしてプリント出力
188
+
189
+ tiedosto=open("liukulukuja.txt","r",encoding="utf-8")
190
+
191
+ sum=0
192
+
193
+ for i in tiedosto.readlines():
194
+
195
+ # 文字列からピリオドと改行コードを取り除きます
196
+
197
+ a = i.replace(".", "").replace("\r", "").replace("\n", "")
198
+
199
+ count = len(a)
200
+
201
+ # print(count)
202
+
203
+ sum = sum + count
204
+
205
+ tiedosto.close()
206
+
207
+ print(sum)
208
+
209
+ return sum
210
+
211
+ ```
212
+
213
+
214
+
215
+ 実行結果:
216
+
217
+
218
+
219
+ ```python
220
+
221
+ $ python test.py
222
+
223
+ 1863016.47
224
+
225
+ 113
226
+
227
+ ```