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

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

ただいまの
回答率

90.34%

  • Python

    9155questions

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

python ¥ を使用したらエラーが出ました。

解決済

回答 2

投稿

  • 評価
  • クリップ 0
  • VIEW 239

「はじめてのPythonAIプログラミング」という書籍で取り組んでいる際に以下のエラーメッセージが発生しました。

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

invalid character in identifier

エラーメッセージ

 該当のソースコード

import time
while True:
time.sleep(1)
present = input("動詞を入力してね")
if (present == "OK"):
print("またね")
break

例外的に扱う動詞にはingを付ける

prog = ""
if present == "visit" or ¥
present == "limit" or ¥
present == "play" or ¥
present == "enjoy" or ¥
present == "listen" or ¥
present == "see" or ¥
present == "dye" or ¥
present == "enter":
prog = present + "ing"

~ie で終わる動詞はyingにする

elif present[-2:] == "ie":
prog = present.replace(present[-2:], "ying")

~e で終わる語はeを取ってingを付ける

elif present[-1] == "e":
prog = present.replace(present[-1], "ing")

~cで終わる動詞はkingを付ける

elif present[-1] == "c":
prog = present + "king"

長母音+子温で終わる動詞は末尾にingを付ける

elif (present[-3] == "a" or ¥
present[-3] == "i" or ¥
present[-3] == "u" or ¥
present[-3] == "e" or ¥
present[-3] == "o") and¥
(present[-2] == "a" or ¥
present[-2] == "i" or ¥
present[-2] == "u" or ¥
present[-2] == "e" or ¥
present[-2] == "o"):
prog = present + "ing"

短母音+子音で終わる動詞は子音字を重ねてingを付ける

elif present[-2] == "a" or ¥
present[-2] == "i" or ¥
present[-2] == "u" or ¥
present[-2] == "e" or ¥
present[-2] == "o":
prog == present + present[-1] + "ing"

その他の動詞にはingを付ける

else:
prog = present + "ing"
print("現在分詞はこれ->" + prog)

ソースコード

 試したこと

初心者のためどうしていいかわからない状態です。
よろしくお願い致します。

コード
  • 気になる質問をクリップする

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

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

    クリップを取り消します

  • 良い質問の評価を上げる

    以下のような質問は評価を上げましょう

    • 質問内容が明確
    • 自分も答えを知りたい
    • 質問者以外のユーザにも役立つ

    評価が高い質問は、TOPページの「注目」タブのフィードに表示されやすくなります。

    質問の評価を上げたことを取り消します

  • 評価を下げられる数の上限に達しました

    評価を下げることができません

    • 1日5回まで評価を下げられます
    • 1日に1ユーザに対して2回まで評価を下げられます

    質問の評価を下げる

    teratailでは下記のような質問を「具体的に困っていることがない質問」、「サイトポリシーに違反する質問」と定義し、推奨していません。

    • プログラミングに関係のない質問
    • やってほしいことだけを記載した丸投げの質問
    • 問題・課題が含まれていない質問
    • 意図的に内容が抹消された質問
    • 広告と受け取られるような投稿

    評価が下がると、TOPページの「アクティブ」「注目」タブのフィードに表示されにくくなります。

    質問の評価を下げたことを取り消します

    この機能は開放されていません

    評価を下げる条件を満たしてません

    評価を下げる理由を選択してください

    詳細な説明はこちら

    上記に当てはまらず、質問内容が明確になっていない質問には「情報の追加・修正依頼」機能からコメントをしてください。

    質問の評価を下げる機能の利用条件

    この機能を利用するためには、以下の事項を行う必要があります。

質問への追記・修正、ベストアンサー選択の依頼

  • quiqui

    2018/06/24 10:34

    せめてコードは読めるように書きましょう https://teratail.com/help/question-tips#questionTips3-5-1 編集で<code>ボタンを使ってください

    キャンセル

  • yusuke_yamamoto

    2018/06/24 14:42

    ご指摘ありがとうございます。言い訳になりますが初めてということもあり、使い方がわからない状態でした。今後は気をつけていきたいと思います。

    キャンセル

回答 2

checkベストアンサー

+2

 修正した回答

複数行にまたがるコードを記述する場合は、行末はバックスラッシュである必要がありますが
提示コード中の「¥」は「バックスラッシュ」ではなく「円記号」であるため提示エラーが発生していると思われます。
参考:円マークとバックスラッシュ

# バックスラッシュ U+005C -> OK
print(\
"abc")

# 円記号 U+00A5 -> SyntaxError: invalid character in identifier
print(¥
"abc")

 補足として:修正前の回答

はじめてのPython AIプログラミングからサンプルファイルのダウンロードができるので、その中のchap04/str1.pyを実行してみました。

  File "...\chap04\str1.py", line 13
    elif present == 'visit' or\
       ^
SyntaxError: invalid syntax

先頭に#coding:utf-8行を追加し、prog = ''の行位置を修正することで動作するようにはなりました。
動詞としてaなどを入力すると実行時例外が発生しますが、これは想定外なのでしょう。

#coding:utf-8
import time

while True:
    time.sleep(1)

    present = input('動詞を入力してネ>')
    prog = '' # 追加

    if (present == 'OK'):
        print('またね~')
        break

    #prog = '' # コメントアウト
    elif present == 'visit' or\
       present == 'limit' or\
       # 略


サンプルファイルや正誤表、ネット上の評判を見る限り、他にも誤りが含まれていそうなので、別の書籍で学習するほうがよいかと思います。

投稿

編集

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/24 11:30

    気になってサンプル読んでみましたが書籍に載せるソースコードではないですね。strを変数名に使ってるところとかがいただけないです。

    キャンセル

  • 2018/06/24 11:58

    (一部の環境によってとかならまだしも)動かないコードを載せている時点でダメですね…
    特に初心者向けならなおさら。
    あとタイトルのAIって何のこと?とか突っ込みだしたらきりないです。

    キャンセル

  • 2018/06/24 14:45

    回答ありがとうございます。質問に対してだけではなく、書籍についてもご指摘して頂き参考になりました。
    ありがとうございました。

    キャンセル

  • 2018/06/24 16:47

    elif present[-1] == 'e':
      prog = present.replace(present[-1], 'ing')

    これ『become』が『bingcoming』に置換されますね。。。

    キャンセル

+2

すべての \ の文字が違ってます

Macにおけるバックスラッシュ(\)の入力方法

すべての¥文字を入れ直しましょう

投稿

  • 回答の評価を上げる

    以下のような回答は評価を上げましょう

    • 正しい回答
    • わかりやすい回答
    • ためになる回答

    評価が高い回答ほどページの上位に表示されます。

  • 回答の評価を下げる

    下記のような回答は推奨されていません。

    • 間違っている回答
    • 質問の回答になっていない投稿
    • スパムや攻撃的な表現を用いた投稿

    評価を下げる際はその理由を明確に伝え、適切な回答に修正してもらいましょう。

  • 2018/06/24 14:45

    シンプルでわかりやすい回答ありがとうございました。

    キャンセル

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

  • ただいまの回答率 90.34%
  • 質問をまとめることで、思考を整理して素早く解決
  • テンプレート機能で、簡単に質問をまとめられる

同じタグがついた質問を見る

  • Python

    9155questions

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