.isdecimal():
时间: 2024-06-09 08:05:52 浏览: 131
.isdecimal() 是 Python 字符串内置方法,用于判断字符串是否只包含十进制数字字符。如果字符串中只包含 0 到 9 的数字字符,则返回 True;否则返回 False。
例如,对于字符串 "12345",.isdecimal() 方法将返回 True,因为它只包含十进制数字字符。而对于字符串 "12.34",.isdecimal() 方法将返回 False,因为它包含了小数点。
请注意,该方法只能用于 Unicode 字符串,对于字节数组或字节对象无效。
相关问题
def infix_evaluator(infix_expression: str): token_list = infix_expression.split() print(token_list) pre_dict = {'*': 2, '/': 2, '+': 1, '-': 1} ope_stack = [] num_stack = [] for i in token_list: if i.isdecimal() or '.' in i: num_stack.append(float(i)) elif i in '+-*/': while ope_stack and pre_dict[ope_stack[-1]] >= pre_dict[i]: top = ope_stack.pop() op2 = num_stack.pop() op1 = num_stack.pop() num_stack.append(get_value(top, op1, op2)) ope_stack.append(i) while ope_stack: top = ope_stack.pop() op2 = ope_stack.pop() op1 = ope_stack.pop() ope_stack.append(get_value(top, op1, op2)) return ope_stack[0] def get_value(operator, op1, op2): if operator == '+': return op1 + op2 elif operator == '-': return op1 - op2 elif operator == '*': return op1 * op2 elif operator == '/': return op1 / op2 print(infix_evaluator('2.5 - 3 * 4'))
这段代码实现了一个中缀表达式求值的函数。函数的输入是一个中缀表达式字符串 `infix_expression`,输出是表达式的计算结果。
函数首先将输入的字符串按照空格进行切分,得到一个包含多个操作数和运算符的列表 `token_list`。然后,函数定义了一个字典 `pre_dict`,用于保存每个运算符的优先级。接下来,函数创建了两个栈 `ope_stack` 和 `num_stack`,用于分别存储运算符和操作数。
函数遍历 `token_list` 列表中的每个元素 `i`,如果 `i` 是一个数字,则将其转化为浮点数后压入 `num_stack` 栈中。如果 `i` 是一个运算符,则将其与 `ope_stack` 栈顶的运算符进行比较,如果 `i` 的优先级低于或等于栈顶运算符的优先级,则需要先计算栈顶运算符的结果。具体地,函数从 `ope_stack` 栈顶弹出一个运算符 `top`,从 `num_stack` 栈顶弹出两个操作数 `op1` 和 `op2`,然后调用 `get_value()` 函数计算出 `top` 运算符的结果,并将结果压入 `num_stack` 栈中。循环执行这个过程,直到 `i` 的优先级大于栈顶运算符的优先级,或者 `ope_stack` 栈为空。
当遍历完 `token_list` 列表后,`ope_stack` 中可能还有一些未处理的运算符和操作数,需要进行最后的计算。函数从 `ope_stack` 栈中弹出一个运算符 `top`,从 `num_stack` 栈顶弹出两个操作数 `op1` 和 `op2`,然后调用 `get_value()` 函数计算出 `top` 运算符的结果,并将结果压入 `ope_stack` 栈中。循环执行这个过程,直到 `ope_stack` 栈中只剩下一个元素,即表达式的计算结果。最后,函数返回 `ope_stack` 栈中的计算结果。
在本例中,我们调用 `infix_evaluator()` 函数,传入参数 `'2.5 - 3 * 4'`,函数输出结果为 `-9.5`。
python isdecimal
`isdecimal()`是Python字符串对象的一个内置方法,用于判断字符串是否只包含十进制数字字符。
如果字符串只包含十进制数字字符,则返回True,否则返回False。
例如:
```
s1 = "1234"
s2 = "12.34"
s3 = "1a2b3c"
print(s1.isdecimal()) # True
print(s2.isdecimal()) # False
print(s3.isdecimal()) # False
```
在上述代码中,s1只包含数字字符,因此isdecimal()返回True。s2包含了小数点,因此isdecimal()返回False。s3包含了字母字符,因此isdecimal()同样返回False。
阅读全文