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

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

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

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

Q&A

解決済

2回答

248閲覧

3桁の整数の中の1の数を出力するプログラム

pussy_pussy

総合スコア22

Python 3.x

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

0グッド

0クリップ

投稿2020/07/19 07:34

編集2020/07/19 08:20

前提・実現したいこと

標準入力で与えられた3桁の整数sに1がいくつ入っているのかを出力するプログラムを書きたい
(各位の数は0か1であるという制約あり)

発生している問題・エラーメッセージ

期待している出力とならない。

該当のソースコード

Python 3.8.2

1s = input() 2N = 0 3 4for i in range(len(s)): 5 if s[i] == 1: 6 N +=1 7 8 else: 9 continue 10 11print(N) 12 13 14

試したこと

関数Aが呼び出される毎にNがglobalのNに書き換えられてしまっているのが原因だと考え、
100,10,1の順で関数の内容を全て並べて書いてみたが、思うような出力結果にはならなかった。

補足情報

Windows10,VSCodeで実行しています

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

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

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

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

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

guest

回答2

0

ベストアンサー

たとえば、このようにします:

python

1s = input() 2N = 0 3 4def A(x): 5 global N 6 global s 7 8 if int(s) // x == 1: 9 N += 1 10 s = int(s)-x 11 12 else: 13 pass 14 15A(100) 16A(10) 17A(1) 18 19print(N)

実行結果:

console

1$ python test.py 2000 30 4 5$ python test.py 6001 71 8 9$ python test.py 10010 111 12 13$ python test.py 14011 152 16 17$ python test.py 18100 191 20 21$ python test.py 22101 232 24 25$ python test.py 26110 272 28 29$ python test.py 30111 313

投稿2020/07/19 08:18

y_shinoda

総合スコア3272

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

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

pussy_pussy

2020/07/19 08:23

ありがとうございます! sも置き換える(?)必要があったのですね
guest

0

入力した文字列の各桁の文字が、"1" かどうかで判定すればいいのでは。
#必要があるなら、"0"かどうかもチェック

投稿2020/07/19 08:08

編集2020/07/19 08:09
y_waiwai

総合スコア87800

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

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

pussy_pussy

2020/07/19 08:21

ご指摘の通り修正してみましたが上手くいきませんでした
y_waiwai

2020/07/19 08:32

if s[i] == "1": #おしい。。
pussy_pussy

2020/07/19 08:51

なるほどです。ありがとうございます。 文字の種類にかかわらず、string型としてリスト化されるのですね
y_waiwai

2020/07/19 08:53

文字列の要素は文字、です 文字と比較しないといけません
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問