🎄teratailクリスマスプレゼントキャンペーン2024🎄』開催中!

\teratail特別グッズやAmazonギフトカード最大2,000円分が当たる!/

詳細はこちら
if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

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

Q&A

解決済

3回答

971閲覧

Python コードエラー

DIETGUY

総合スコア2

if

if文とは様々なプログラミング言語で使用される制御構文の一種であり、条件によって処理の流れを制御します。

プログラミング言語

プログラミング言語はパソコン上で実行することができるソースコードを記述する為に扱う言語の総称です。

文字コード

文字コードとは、文字や記号をコンピュータ上で使用するために用いられるバイト表現を指します。

Python

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

0グッド

0クリップ

投稿2021/01/25 03:21

前提・実現したいこと

初プログラミングでPythonを勉強中です。
defに差し掛かかったので、それを使ってプログラミングを組んで遊んでみたいと思い適当にプログラムを組んでみたらエラーまみれで直し方もわからない状態です。
300点満点のテストの点数を出し、240点以上なら合格、それ未満なら不合格と表示させたいです。
できれば、それぞれの教科の点数も表示させたいです。
厳しい言葉もお待ちしておりますのでご教授願います!!

■■な機能を実装中に以下のエラーメッセージが発生しました。

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

エラーメッセージ def test_score(english_seikai=10, math_seikai=7, japanese_seikai=8): english_score = english_seikai * 10 math_score = math_seikai * 10 japanese_score = japanese_seikai * 10 total_score = english_score + math_score + japanese_score print("テストの合計点数は", total_score, "です。") if (total_score <= 240) print("合格") else (total_score >= 239) print("不合格") ### 該当のソースコード Python ソースコード

試したこと

スペースの間違いや誤字を確認したり、コメントアウトを使い問題点(ifなど)を消したりしてみましたが次々とエラーが起きてしまいます。

補足情報(FW/ツールのバージョンなど)

ここにより詳細な情報を記載してください。

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

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

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

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

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

guest

回答3

0

  • defで定義した関数test_scoreは、呼び出さないと実行されません。
  • 関数中で使用したローカル変数は、関数外では使用できません。
  • 実行結果として使いたい値(複数可)は、返り値として返しましょう。
  • 関数を呼び出した側で、返り値(複数可)を受け取って使いましょう。
  • 文字列中に変数の値などを埋め込むには、(Python 3.6以降で使える)f文字列(フォーマット済み文字列リテラル、f"..."の中の{式}に値を埋め込むやつ)を使いましょう。
  • Pythonのif文の条件は()で囲む必要がありません。
  • 条件の末尾に:を付けてください。
  • 「total_scoreが240以上」を示す式はtotal_score >= 240です(不等号の向きが違っています)。
  • 「total_scoreが240以上」が成立しない場合、「total_scoreが240未満」であることは自明なので、elif 条件:を使う必要はなく、else:で事足ります。
  • 関数test_scoreが教科別の点数も返り値に含まれていれば、教科別の点数も同様に表示できます(末尾のコメントを外してください)。

Python

1def test_score(english_seikai=10, math_seikai=7, japanese_seikai=8): 2 e_score = english_seikai * 10 3 m_score = math_seikai * 10 4 j_score = japanese_seikai * 10 5 t_score = e_score + m_score + j_score 6 return (t_score, e_score, m_score, j_score) 7 8 9total_score, *rest = test_score(8, 7, 6) 10 11print(f"テストの合計は {total_score} 点です。") 12 13if total_score >= 240: 14 print("合格") 15else: 16 print("不合格") 17 18# english_score, math_score, japanese_score = rest 19# print(f"英語のテストは {english_score} 点です。") 20# print(f"数学のテストは {math_score} 点です。") 21# print(f"国語のテストは {japanese_score} 点です。")

投稿2021/01/25 04:58

Daregada

総合スコア11990

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

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

DIETGUY

2021/01/25 05:59

回答ありがとうございます! とてもわかり易くて頭の悪い僕でも理解できそうです! 箇条書きが見やすく丁寧でプログラミングに詳しくないぼくの為に噛み砕いてくださり感激でございます! ところでお手数ではございますが現在Pythonジャパンというサイトで一通り基礎を学んでいて最近スッキリわかるPython入門という本も買った(まだ読んでいない)のですが他に初心者におすすめのサイトや書籍などはありますでしょうか? Daregadaさんの教え方が非常に簡潔明瞭で見ていて惚れ惚れしてしまったのでそのような知識を得るに至った学習法などに非常に興味を持ちました。 お時間があればご指導いただけると幸いです…
guest

0

ベストアンサー

ざっと見た感じ。
0. test_scoreを呼び出していない
0. test_score中にてtotal_scoreを返していない
0. test_score外にてtotal_scoreを定義していない(「python スコープ」とかでググってみてください)
0. if, elseの書き方がおかしい

いずれも基本の話ですので、ググって解説読むなり書籍読むなりしたほうが良いかと。

投稿2021/01/25 03:54

jeanbiego

総合スコア3966

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

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

DIETGUY

2021/01/25 05:51

回答ありがとうございます! 調べ方もよくわからず解決策が見いだせなかったので検索方法教えてくださって助かります! ちなみにお手数ですが現在Pythonジャパンというサイトで一通り基礎を学んでいる最中で最近スッキリわかるPython入門という本も買った(まだ読んでいない)のですが他に初心者におすすめのサイトや書籍などはありますでしょうか? jeanbiegoさんのご意見お聞かせ願えませんでしょうか?
jeanbiego

2021/01/25 06:11

1. 入門書はどれもだいたい似たような内容と思うので、まずはどれか一冊ざらっと読んで手を動かす 2. エラーが出たらエラーメッセージを絶対に読む。読んでわからなければ自動翻訳でいいので和訳して読む。それでもわからなければエラーメッセージでググる。 3. ライブラリを使うなら、公式ドキュメント(の使いたい箇所)を読む。 1の後に2と3をひたすら繰り返すのが王道(そして近道)と思います。
DIETGUY

2021/01/25 06:24

買った本間違っていたらどうしよう…と思っていましたが違いがあまりないということで良かったです! ライブラリという単語は初めて聞きました勉強になります! 結局地道にコツコツが一番なのですね…できるだけ自分で調べる努力をもっとしていき安易な質問を減らせるように努力します! お忙しい中貴重なお時間を割いていただきありがとうございました!
jeanbiego

2021/01/25 06:41

自分で調べるようになると調査スキルがあがるので、質問しまくるより長期的には良いです。 あとは、地道にコツコツは飽きるのでPaizaとかAtcoderとかチャレンジしてゲーム的にやるのもいいかもしれません。もちろん、作りたいものが決まってるならそれを作るのがモチベーション的に一番良いでしょう。
DIETGUY

2021/01/25 13:00

エラーを解決することがプログラマーとしての大きな役割の1つであるとユーチューブで耳にしたので納得しました。 Paiza,Atcoderですか!今はモチベーションが高いですが躓くとおちてきてしまうかもしれないのでゲーム感覚でプログラミングを学べるのは嬉しいです! 一応作りたいシステムやサービスが有り、プログラマーになりたくて始めたというよりやりたいことをする上で必要な技術だと思い始めたので下手くそでも開発するためにまず行動してみます! まずは行動ですよね!
guest

0

ちとPythonのコードとしてはムチャムチャですね
文法をしっかり学ぼう

投稿2021/01/25 03:37

y_waiwai

総合スコア88038

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

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

DIETGUY

2021/01/25 05:47

回答ありがとうございます! 現在Pythonジャパンというサイトで一通り基礎を学んでいて最近スッキリわかるPython入門という本も買った(まだ読んでいない)のですが他に初心者におすすめのサイトや書籍などはありますでしょうか? ワイワイさんのご意見お聞かせ願いたいです!
y_waiwai

2021/01/25 06:08

「python 入門」でぐぐってでてきたものを一通り読んでいくだけでもいいと思いますよ。 そういうの見ながら、実際に打ち込んで実行させていけばいいかと。 ただし、たまに間違ったこと書いてるところもあるのでそれは注意して
DIETGUY

2021/01/25 06:12

プログラミングについて右も左もわからないので正しい情報と嘘の情報の取捨選択が正しくできるか少し心配です… でもそこは周りの力を借りつつPython入門で調べて頑張ってみます! お忙しい中貴重なお時間を割いていただきありがとうございました!
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.36%

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

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

質問する

関連した質問