3 回答
TA贡献1803条经验 获得超6个赞
您可以列出字符串中的所有整数,并在之后的 if 语句中使用它们。
str = "price is 16 euros"
for number in [int(s) for s in str.split() if s.isdigit()]:
if (number > 14):
print "ok"
如果您的字符串包含多个数字,您可以在列表中选择要使用的数字。
希望能帮助到你。
TA贡献1818条经验 获得超3个赞
如果字符串仅在数字上有所不同并且数字具有相同的位数,则您可以只比较字符串。IE:
String_1 = 'The price is 15 euros'
String_2 = 'The price is 14 euros'
String_3 = 'The price is 37 EUR'
该自然会归类为String_3> String_1>String_2
但不适用于:
String_4 = 'The price is 114 euros'
它有 3 位数字而不是 2 位,它将是String_4<String_3因此
所以,如果你能从字符串中提取数字就更好了,如下所示:
import re
def get_price(s):
m = re.match("The price is ([0-9]*)", s)
if m:
return = int(m.group(1))
return 0
现在您可以将价格作为整数进行比较:
price = get_price(String_1)
if price > 14:
print ("Okay!")
. . .
if get_price(String_1) > 14:
print ("Okay!")
([0-9]*)- 是正则表达式的捕获组,所有在圆括号中定义的都会group(1)在Python匹配对象的方法中返回。您可以[0-9]*根据需要进一步扩展这个简单的正则表达式。
如果您有字符串列表:
string_list = [String_1, String_2, String_3, String_4]
for s in string_list:
if get_price(s) > 14:
print ("'{}' is okay!".format(s))
TA贡献1829条经验 获得超9个赞
我想你的字符串中只有一个值。所以我们可以用正则表达式来做。
import re
String_1 = 'The price is 15 euros.'
if float(re.findall(r'\d+', String_1)[0]) > 14:
print("OK")
添加回答
举报