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

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

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

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

Q&A

2回答

2867閲覧

python1年生 P170 画像ファイルから数字を予測するプログラムがうまく作動しません

Risekorise

総合スコア1

Python

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

0グッド

0クリップ

投稿2021/10/23 23:58

編集2021/10/24 00:19

python1年生chapter5 LESSON23のP170についての質問です。
テキストのとおりコードを書いているのですがエラーが出てしまいます。解決方法をご教示いただきたく存じます。
以下のとおりテキストどおりコードを書いています。

ここに言語を入力
import sklearn.datasets
import sklearn.svm
import PIL.Image
import numpy

#画像ファイルを数値リストに変換する
def imageToData(filename):
#画像を8x8のグレースケールに変換
grayImage = PIL.Image.open(filename).convert("L")
grayImage = grayImage.realize((8,8),PIL.Image.ANTIALIAS)
#数値リストに変換
numImage = numpy.asarray(grayImage, dtype = float)
numImage = numpy.floor(16 - 16 * (numImage / 256))
numImage = numImage.flattern()

return numImage

#数字を予測する
def predictDigits(data):
digits = sklearn.datasets.load_digits()
#機械学習する
clf = sklearn.svm.SVC(gamma = 0.001)
clf.fit(digits.data, digits.target)
#予測結果を表示する
n=clf.predict([data])
print("予想=",n)

#画像ファイルを数値リストに変換する data = imageToData("2.png") #数字を予測する predictDigits(data)
コード

(問題点)
n=clf.predict([data])

このコードの「n」のところがエラー指定されsyntax errorが出てinvalid character in identifier
というメッセージが表示されます。何故「n」がダメなのか分かりません。

(Python バージョン)
Python 3.6

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

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

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

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

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

y_waiwai

2021/10/24 00:06

このままではコードが読めないので、質問を編集し、<code>ボタンを押し、出てくる’’’の枠の中にコードを貼り付けてください
Risekorise

2021/10/24 00:27

対応してみました。
jbpb0

2021/10/24 01:43

pythonのコードの一番最初の行のすぐ上に ```python だけの行を追加してください また、pythonのコードの一番最後の行のすぐ下に ``` だけの行を追加してください または、 https://teratail.storage.googleapis.com/uploads/contributed_images/56957fe805d9d7befa7dba6a98676d2b.gif を見て、そのようにしてみてください 現状、コードがとても読み辛いです 質問にコードを載せる際に上記をやってくれたら、他人がコードを読みやすくなり、コードの実行による現象確認もやりやすくなるので、回答されやすくなります
meg_

2021/10/24 02:57

コードは「コードの挿入」で記入してください。
guest

回答2

0

こちらから書籍のサンプルコードがダウンロードできますので、比較してみて下さい。
■ ホーム > 書籍 > Python 1年生 体験してわかる!会話でまなべる!プログラミングのしくみ > ダウンロード
https://www.shoeisha.co.jp/book/download/9784798153193/detail

試した所、いくつか相違点が見られました。
イメージ説明

このコードの「n」のところがエラー指定されsyntax errorが出てinvalid character in identifier

ここのエラーは全角の「)」が使われているのが原因かと思います。

print("予想=",n) ^ SyntaxError: invalid character ')' (U+FF09)

投稿2021/10/24 00:16

編集2021/10/24 00:23
cx20

総合スコア4633

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

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

Risekorise

2021/10/24 00:44

アドバイス有難うございます。サンプルコードが確かにありますね。 ご指摘いただいた箇所を修正してみましたがやはり同じエラーが表示されます。 サンプルコードをコピペしてrunをさせたところ正常に数字の2を予測すること ができました。自身が入力したコードは何等かの箇所がやはりサンプルコードと 違っている可能性が高いと思います。有難うございました。
guest

0

質問のコードからは読み取れませんが、nの前に全角空白などの文字が入っているか、あるいは表示されない文字が入っているのでしょう。

その行を一旦削除して、コピペではなくもう一度手入力で入力してから再実行してみてください。

投稿2021/10/24 00:07

ppaul

総合スコア24666

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.46%

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

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

質問する

関連した質問