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

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

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

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

Q&A

解決済

1回答

527閲覧

Discord Botで躓いています。

dXJzIH5inIawAD2

総合スコア16

Python

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

0グッド

0クリップ

投稿2019/03/10 09:10

Discord Botのコードで〇〇と発言したら、▲▲で返す、というようなコードを書いているのですが、
同じ単語が含まれているものをコードに入れると思い通りに出力されません。

コード

import discord
import asyncio
import re

client = discord.Client()

@client.event
async def on_ready():
print('Logged in as')
print(client.user.name)
print(client.user.id)
print('------')
@client.event
async def on_message(message):
m=''
if client.user != message.author:
if re.match("pmAbsorb", message.content):
m = "Absorb/すいとる\n相手に与えたダメージの半分だけ自分のHPが回復する\n属性 草\n分類 特殊\n威力 20\n命中 100"

elif re.match("pmAcid", message.content): m = "Acid/ようかいえき\n10%の確率で相手の『とくぼう』ランクを1段階下げる\n属性 毒\n分類 特殊\n威力 40\n命中 100" elif re.match("pmAcid_Armor", message.content): m = "Acid Armor/とける\n自分の『ぼうぎょ』ランクを2段階上げる。\n属性 毒\n分類 変化\n威力 -\n命中 -"

if m:
await client.send_message(message.channel, m)
client.run("token")

上から2つ目の「pmAcid」と3つ目の「pmAcid_Armor」が被ってしまって
「pmAcid_Armor」を入力しても「pmAcid」の説明文が出ます。

超の付くほどの初心者なので、ご教授お願いしたいです<m(__)m>

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

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

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

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

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

guest

回答1

0

ベストアンサー

正規表現を使わず、普通に文字列比較すれば良いように思いますが...
if "pmAbsorb" == message.content: みたいな感じで。

どうしても正規表現を使いたいなら、アンカー($)を利用してください。
あるいは条件分岐の順番を入れかえても現状の問題は解決できるでしょう。

コードの書き方について

teratailには、コードを見やすく表示する機能があります。
質問編集画面を開き、コードを選択した状態で<code>ボタンを押して下さい。
Python
特にPythonの場合、インデントが崩れるとコードの意味が変わってしまいます。

投稿2019/03/10 09:14

編集2019/03/10 09:15
LouiS0616

総合スコア35660

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

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

dXJzIH5inIawAD2

2019/03/10 09:37

ありがとうございました(´;ω;`) 色々と試してみます<(_ _)>
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問