所以我目前正在开发人工智能,但我需要帮助才能获得年龄。所以如果有人输入"我14岁"我希望它采取14并设置它有一个变量。我已经这样做但是,方括号围绕输出,我不想要,所以我正在寻找一种方法,从没有方括号的字符串中获取数字。 这是我的代码
#Gets users age
elif "i am" in inp and "years old" in inp:
age=[int(s) for s in inp.split() if s.isdigit()]
age=str(age)
print(age)
感谢任何帮助
答案 0 :(得分:1)
使用正则表达式:
import re
m = re.search("\d+", "I am 14 years old")
if m:
print(int(m.group()))
<强>输出:强>
14
答案 1 :(得分:0)
只是做
age=[s for s in inp.split() if s.isdigit()]
int(''.join([str(s) for s in age]))
答案 2 :(得分:0)
<强> 1。使用您的方法:
只需使用较少的&#34; compact&#34;语法:
#!/usr/bin/python
inp="i am 15 years old"
#Gets users age
if "i am" in inp and "years old" in inp:
for s in inp.split():
if s.isdigit():
age=int(s)
print(age)
运行此代码给出:
$ python pouet.py
15
<强> 2。使用正则表达式
正则表达式更适合这样的任务。 下面的代码解析了用户的年龄,即使他已经过了1年(没有&#39; s&#39;),或者如果他缩短了#34;我是&#34;到了&#34;我&#34;:
#!/usr/bin/python
import re
test_v=[ "i am 15 years old", "i'm 1 year old"]
#Gets users age
for test_string in test_v:
res = re.match('(i am|i\'m) (\d+) year[s]? old', test_string)
if (res):
print res.group(2)
运行此代码给出:
$ python pouet.py
15
1