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

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

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

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

Q&A

3回答

3686閲覧

python カウント

JhyWer

総合スコア0

Python

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

0グッド

0クリップ

投稿2021/05/28 10:50

python初心者です、正解数と正答率を表示するプログラムを教えてください。
下のプログラムを変えてもいいです。
よろしくお願いします。

def if_test(num): if num == 2: print('T') else: print('F') 2 print('でん、叙々苑、牛角はどんなチェーン店? 1,ステーキ 2,焼き肉 3,回転寿司 4,牛丼') num = int(input('何番だと思う?')) if_test(num) def if_test(num): if num == 3: print('T') else: print('F') 3 print('ものをはさんで固定する工具「万力」。何と読む? 1.まんりょく 2.ばんりょく 3.まんりき 4.ばんりき') num = int(input('何番だと思う?')) if_test(num) num.count('T') if_test(num)

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

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

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

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

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

guest

回答3

0

とりあえずこんなかんじで

python

1ok = 0 2ng = 0 3 4print('でん、叙々苑、牛角はどんなチェーン店? 1,ステーキ 2,焼き肉 3,回転寿司 4,牛丼') 5num = int(input('何番だと思う?')) 6if num == 2: 7 print('T') 8 ok = ok + 1 9else: 10 print('F') 11 ng = ng + 1 12 13print('ものをはさんで固定する工具「万力」。何と読む? 1.まんりょく 2.ばんりょく 3.まんりき 4.ばんりき') 14num = int(input('何番だと思う?')) 15if num == 3: 16 print('T') 17 ok = ok + 1 18else: 19 print('F') 20 ng = ng + 1 21 22#正解数 … ok 23#正答率 … ok/(ok + ng)

投稿2021/05/28 11:32

takasima20

総合スコア7460

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

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

0

udon-kenさんが仰っているように元のプログラムだと機能が追加しづらい状態なので、少し複雑にはなってしまいますが私が書き直してそれを実装するとしたらこんな感じにします。ただ、takesima20さんの解答のほうがより元の形に近く分かりやすいのであくまでも参考程度にしていただければと思います。

python

1questions_list = [ 2 ["でん、叙々苑、牛角はどんなチェーン店? 1,ステーキ 2,焼き肉 3,回転寿司 4,牛丼", 2], 3 ["ものをはさんで固定する工具「万力」。何と読む? 1.まんりょく 2.ばんりょく 3.まんりき 4.ばんりき", 4], 4] # リストに問題を格納[[問題文, 答え], [問題文, 答え], ……] 5 6score = 0 7for q_and_a in questions_list: 8 # q_and_aに問題を一つずつ入れる 9 print(q_and_a[0]) # 問題文を表示(それぞれの問題のリストの1個目の要素) 10 num = int(input("何番だと思う?")) 11 answer = q_and_a[1] # 答え(それぞれの問題のリストの2個目の要素) 12 13 if num == answer: 14 print("T") 15 score += 1 16 else: 17 print("F") 18 19number_of_questions = len(questions_list) # 問題数を取得(問題を格納しているリストの要素数) 20correct_answer_rate = round(score / number_of_questions * 100) # 正答率を正解数÷問題数×100で計算し、四捨五入 21 22print(f"{number_of_questions}問中{score}問正解!(正答率{correct_answer_rate}%)") 23# pythonのf文字列という機能を使い文章の中に変数を入れる

投稿2021/05/28 11:39

goma1661

総合スコア167

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

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

0

失礼ながら現段階のプログラムの設計が悪すぎて、このプログラムを修正する事は無駄だと思います。
クイズ的なものを作ろうとしているのだと思いますが、まず、クイズの基本の出題→回答→正誤チェックの部分をしっかり設計して作り直すべきと思います。

それができたら、正解数や正解率に取り組みましょう。

投稿2021/05/28 11:03

udon-ken

総合スコア657

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

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

退会済みユーザー

退会済みユーザー

2021/05/29 22:32

悪すぎることはないと思ったので、低評価させて頂きました。 回答しないつもりなら、失礼なことを言うのはやめましょう。
udon-ken

2021/05/30 00:07

クイズ的なものを作るのに、問題ごとに個別に処理を書く方式は設計として相当悪いと思いました。 言わなくても分かっていると思いますが、 ・問題を追加・変更する度に、プログラムを書き足す・書き換える必要がある ・常に同じ順番で出題される ・用意した問題の一部だけ出題する事が困難である(基本的に全問を出すしかない) などの理由です。 これを悪すぎると感じるかそこまで悪くないと感じるかは主観ですが、私は悪すぎると感じたまでです。 また、質問者さんを非難する意図をもって発言したのではありません。 むしろ質問者さんの態度は、良いコードではないですが自分で考えたコードを提示しているという意味で好印象を持っています。 ですから、「これはダメだから一から考え直しましょう(その方が上達の早道だよ)」という意味で、よかれと思って言っています。 > 回答しないつもりなら、失礼なことを言うのはやめましょう。 なぜ、そのように決めつけるのでしょうか? 回答するつもりはないどころか、むしろ問われたら、例えば「どいういう風にしたらいいでしょう?」と問われたら答える気はマンマンでした。 初心者がわかりやすいコードと説明も回答した際に作っています。 しかし、当たり前ですがgoma1661さんのコードとほぼそっくりになってしまっていますが… もちろん、goma1661さんのようにコードを提示する事もできました。 ただ、初心者にコードをいきなり提示すると、丸コピーしてしまって、どうしてこうしているのか?元のコードは何が悪いのか学ぶチャンスが無くなると思ったから提示しなかったまでです。
退会済みユーザー

退会済みユーザー

2021/05/30 05:19

他人の気持ちというのは自分が思うより慮る必要があります。誰しも自分で欠点と分かっていることを殊更他人から言われたいとは思っていません。 また物事には順序があり、まず大事なのは意図したとおりに動くことであって、綺麗なコードを書くことではありません。最初に最低限の変更で動くコードを指し示す必要があります。その後で、今後を考えると「こう書いた方がより良い」という形に話しましょう。 最後に、回答するつもりがあるなら、それが明確に分かるように説明すべきです。決めつけではなく、そう解釈できることがいけないと言っています。
udon-ken

2021/05/30 06:07

> 自分で分かっていることを殊更他人から言われたいとは思っていません。 分かってるか分かって無いかどうして分かるのですか? 私は分かっていないと思ったから、指摘したまでです。 > 決めつけではなく、そう解釈できることがいけないと言っています。 あなたがそう解釈しただけで、他の人はどう解釈したか分からないでしょう。 そう解釈できる可能性があるだけでダメというなら、どんな場合でも言えてしまうと思いますよ。 全体を通して思いますが、なぜあなたの意図する通りに回答する必要があるのですか?? あなたはこのサイトの運営者か何かですか?? 他人の気持ちだとかか失礼だとか、おっしゃってますけど、 いきなり > 悪すぎることはないと思ったので、低評価させて頂きました。 > 回答しないつもりなら、失礼なことを言うのはやめましょう。 などの発言や低評価も相当失礼と思いますけど。 当事者ならまだわかりますが、まったく無関係なのに。 私がストレートに言ったのが悪いというのなら、あなたもいきなりストレートに言っていますよね? それこそあなたの言う、 > 他人の気持ちというのは自分が思うより慮る必要があります。誰しも自分で欠点と分かっていることを殊更他人から言われたいとは思っていません。 ではないのでしょうか? 自分がするのはよくて他人がするのはダメって事でしょうか?
退会済みユーザー

退会済みユーザー

2021/05/30 15:55

常識というのは人により違います。私の常識の範疇ではあなたは非常識なことを言っています。 例えば、udon-kenさんは見るからに頭悪そうですね、というのは私の認識で、それはあなたが認識してないとしたら、伝えるのが良いことかどうか?という話ですよ。 少なくとも私の常識では「回答者」というやや立場が上の人が、そう解釈できる所作を行うべきではありません。質問者様不在のまま取るに足らないことで話し続けるのもどうかと思うのでこの辺で。
udon-ken

2021/05/30 17:13

はい。 常識は人によって違いますので、私は今でも最初の回答が非常識だったとは思っていません。 逆に、質問者でも回答に参加した人でもない、ましてや運営者でもないのにいきなり飛び込んできて、単なる推測(回答しないつもりならの部分)に基づいて、まあまあ失礼な言い回しで「失礼な事を言うな」と言って低評価をするような人は私の常識の範疇では非常識な人です。 これで、投稿回数がお互い同じになったので終わり。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

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

ただいまの回答率
85.37%

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

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

質問する

関連した質問