テキストファイルのファイル名を引数に取り,そのテキストファイルに含まれる文字数を返す関数 file を書きなさい.ただし,改行文字は文字数に含まないものとする.また,テキストファイルの文字コードは utf-8 とする
という問題なのですが、このように考えました
python
1def file(filename): 2 with open(filename,mode='r',encoding = 'utf-8') as x: 3 a = 0 4 for y in x: 5 if len(x) > 1: 6 a += y 7 a -= 1 8 return a
このプログラムは間違いでした。分かる方教えていただけますでしょうか。
> このプログラムは間違いでした。
いや、だからなに?
プログラミングは『こう書けばいい』というものではありません。
『現実世界のシミュレーション』です。
高校までの数学のように、常にきまっているもの…ではありません。
ある意味、小説のようです。
単に『好きだ』と表現するにも、
『月が綺麗ですね』と某小説家(別の人が言ったともされる)や、ストレートに『君が好きだ』とも、比喩的?に『俺の隣にいてくれ』とかみたいにいろんな表現ができますよね。
これと一緒っです。よほど論理破綻していなければそれでいいのです。
流石に論理破綻していたら論外ですが。
プログラミングは『こう書けばいい』のではなく、論理を記述し、デバッグという、エラーに対処することです。
つまり、DIYと一緒です。
自分で椅子のデザインや設計図を書き、それに基づいて作る。でもそのままだと『右の前足の高さが…』のようなバグがあったりするので修繕する。
これがDIY。
これと一緒です。
プログラミングも、自分で設計し、自分でコーディングし、自分でデバッグまでする。です。
でも今の質問では、「俺はDIYをやってみたい。椅子を作りたい。でも作りきれないし、自分でやってみたが高さとかが合わないから誰か設計図を書いて作ってくれ」と言っているようなものです。
…だったらやめれば?既製品買えよ…
的な感じになりませんか?
それと一緒なんです。
一応、自分なりのコードを出されていますが、『どのようにうまくいかないのか』が書かれていません。
それでは他人はわかりませんよ。
回答者は質問者ではありません。赤の他人です。言わないとわかりません。
たしかに動かしてみればわかるのかもしれませんが、常にそうだとは限りません。よくあるパターンだと、『ファイルの文字コードが違う』、『初期設定がおかしい』、『ファイルがない』、『そもそもコマンド等の使い方(dirコマンド等)が違う』とかみたいな環境的なエラーの場合もあります。
そんなの、コードだけではわかりませんよ。
『パンクな服を買いました。ですが似合いません。なぜですか?』みたいなものです。知らんがな。って感じ。
もしかしたら似合ってはいるが、本人が思い込んでいる可能性だってある。
でもその画像を見せればどのように似合わないのかが明白。それと一緒です。
とりあえず、『自分でデバッグして』、『どのようにうまくいかないのか』を書きましょう。
それとコンパイルエラー等のエラーメッセージが出るのならメッセージぐらい読みましょう。
エラーメッセージ等はコンパイラやインタプリタ等からのメッセージです。
『んー、なんか、この変数っている?使ってないんだけど…』みたいなコメントのようなものです。それを『わからねーwwwwwww』とかって一人で暴走しているだけですよ。今の状態は。