我正在使用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
匹配一个数字[0-9] *表示只是告诉解析器匹配它之前的表达式(\ d),直到它找不到更多结果。
out = ''.join(regex_match)
- 这将结合所有列表项到一个字符串。
恩,作为一名初学者,我仍然不明白RegEx如何在这里帮助,还是非常感谢。 –
对不起,我的坏。我会添加一个解释:) – SitiSchu
如果你只需要解析出%
符号,你可以使用replace
功能,像这样:
interest = input('Enter the interest ').replace('%', '')
这将替换任何%
字符从您的输入与空字符串(因此,删除它)。
如果输入的是要只10%
,你将能够做到以下几点:如果用户输入10 %
例如
interest = input("Enter interest: ")
interest = interest[:-1]
,你总是可以做:
interest = input("Enter interest: ")
interest.strip(' ')
interest = interest[:-1]
谢谢你,真的很感激。 –
正则表达式是你正在寻找的 – Filip
取决于,你想接受“12.111111111124149991 + 10%qwerty”吗? – timgeb
如果它只是一个简单的赋值切片,直到最后的兴趣[-1]。如果你正在做的事情需要更严格的使用分裂+索引或正则表达式。 – Rosh