私はPython 3を使用しています。ユーザーが興味を持って欲しいと思っていて、それに続いて%
という記号で答えてくれることを知っています。数字だけを受け入れ、 "%"のような余分な記号をユーザー入力として無視する構文は何ですか?
私の現在の構文は次のとおりです。
interest = input ('Enter the interest ')
(?。raw_input
ヘルプを使用していますそれも何とかうまくいきませんでした)
私はPython 3を使用しています。ユーザーが興味を持って欲しいと思っていて、それに続いて%
という記号で答えてくれることを知っています。数字だけを受け入れ、 "%"のような余分な記号をユーザー入力として無視する構文は何ですか?
私の現在の構文は次のとおりです。
interest = input ('Enter the interest ')
(?。raw_input
ヘルプを使用していますそれも何とかうまくいきませんでした)
ユーザーが数字だけを入力することを確信している場合は、私が使用することをお勧めしますstr.replace()
これで%記号が削除されます:
interest = input ('Enter the interest ').replace('%','')
In: 20%
Out: 20
そうしないと、Pythonのre
モジュールで正規表現が必要になります。
この例では、数字以外の文字は無視され、数字のみが出力されます。
import re
interest = input ('Enter the interest ').replace('%','')
regex_match = re.findall(r'\d*',interest)
out = ''.join(regex_match)```
In: 2a0ac%
Out: 20
内訳:
import re
は - re
(正規表現)モジュール
interest = input ('Enter the interest ').replace('%','')
をインポート - 入力をつかみ、何も
regex_match = re.findall(r'\d*',interest)
で%を置き換える - この意志の出力は、すべての一致した数字をリストとして返します。
r "はPythonには生の文字列であるため、解析されません。
\d
は、1桁の数字[0-9] と一致し、*はそれ以上の結果が見つからなくなるまでパーサーに(\ d)前の式と一致するように指示します。
out = ''.join(regex_match)
- これは、すべてのリスト項目を文字列に結合します。
初心者として、私はまだRegExがどのようにここで助けているのか分かりませんが、まだまだありがとうございます。 –
申し訳ありませんが、私の悪い。私は説明を追加します:) – SitiSchu
だけ%
シンボルを解析する必要がある場合は、replace
を使用することができますこの関数は、そのよう:
interest = input('Enter the interest ').replace('%', '')
これは、空とあなたの入力から任意の%
の文字を置き換えます文字列(したがって、それを削除する)。
入力のみ10%
になるだろうされている場合は、次の操作を行うことができるようになります:
interest = input("Enter interest: ")
interest = interest[:-1]
ユーザは、例えば10 %
を入力した場合、あなたは常に行うことができます:
interest = input("Enter interest: ")
interest.strip(' ')
interest = interest[:-1]
ありがとう、本当に感謝します。 –
regexはあなたが探しているものです – Filip
は「12.111111111124149991 + 10%qwerty」を受け入れますか? – timgeb
これは単なる割当スライスで、最終利益[-1]までのものです。あなたがより厳密な必要がある何かをしている場合は、分割+インデックスまたは正規表現を使用してください。 – Rosh