我希望用户输入一个数字 给出一个数字:他输入“ 10 ” - 但是...... 给出一个数字:他输入“我想输入10 ” 我希望程序只是“计算”整数。因为如果他键入一个字符串,程序将停止
WebBrowser
答案 0 :(得分:1)
这将接受任何输入并从中拉出第一个数字。 \d
匹配任何数字0-9,+
表示"一个或多个"。
import re
while True:
user = input('Enter a number: ')
match = re.search(r'\d+',user)
if match:
value = int(match.group(0))
break
else:
print("I didn't see a number in that response.")
print(value)
答案 1 :(得分:0)
好吧,你可以手动循环遍历字符串并使用isdigit()存储数字的位置。
以下方法要求数字是字符串中唯一的数字(允许多位数):
start = None
stop = None
for i in range(len(input)):
c = input[i]
if c.isdigit():
if start == None:
start = i
stop = i
try:
number = int(input[start:stop])
catch:
print("invalid input")
编辑: 我想会有一些很好的和简单的Regex解决方案,但我会离开它,因为我对它不太有经验...