python实现中缀表达式转化为后缀表达式求值 python 获取文件后缀名
python实现中缀表达式转化为后缀表达式求值
首先维护两个空栈,(stack_exp)存放逆波兰表达式,(stack_ops)暂存操作符,运算结束后stack_ops必为空
循环遍历字符串(将表达式分为四种元素 1、数值 2、操作符 3、 左括号 4、右括号),具体情况如下
1、遇到数值, 将该值入栈stack_exp
2、遇到左括号, 将左括号入栈stack_ops
3、遇到右括号,将stack_ops中的操作符从栈顶依次出栈并入栈stack_exp, 直到第一次遇到左括号终止操作(注意: 该左括号出栈stack_ops但不入栈stack_exp)至此消除表达式中的一对括号
4、遇到四则运算操作符号( - * /)
4-1、 如果stack_ops为空, 操作符入栈stack_ops
4-2、 如果stack_ops不空,将stack_ops栈顶操作符与遍历到的操作符(op)比较:
4-2-1: 如果stack_ops栈顶操作符为左括或者op优先级高于栈顶操作符优先级, op入栈stack_ops,当前遍历结束
4-2-2: 如果op优先级小于或者等于stack_ops栈顶操作符, stack_ops栈顶操作符出栈并入栈stack_exp,重复4-1、 4-2直到op入栈stack_ops
5、字符串遍历结束后如果stack_ops栈不为空,则依次将操作符出栈并入栈stack_exp
python 获取文件后缀名
我写了个小文件,希望能帮到楼主
=========count_file.py=============
#coding:utf-import os
使用os.walk()统计文件类型
#定义result字典用来存储
result = {}
for directory, folders, files in os.walk(/home/zhulei):
for f in files:
if . in f:
#获得文件类型
file_type = f.rsplit(.,1)[1]
if result.has_key(file_type):
result[file_type] = else:
result[file_type] =
print "文件类型 个数"
print "="*40
for type, count in sorted(result.items(),key=lambda x:x[1],reverse=True):
if len(type) >= 8:
print "%s %s" % (type, count)
else:
print "%s %s" % (type, count)
==============================
运行结果:
%python count_file.py
文件类型 个数
========================================
png 210c 163h 127py 1160
gif 101svn-base 96TXT 89jpg 83html 53
...
...
...
Python遍历文件夹并 改所有文件的后缀名
import os
import shutil
root = F:\python2
for rt, dirs, files in os.walk(root):
    for f in files:
        fn = os.path.join(rt, f)
        nfn = fn.replace(.txt, .py).
        if src in fn and fn != nfn:
            shutil.move(fn, nfn)
python关于四则运算的代码该如何去处理三位数或多位数?
name = input("请输入表达式:")
expre = ""
for x in name:
    if x ==  :
        continue
    elif x!=  :
        expre  = x
print(eval(expre))你想实现的是将一个字符串的表达式计算出结果?比如 “11    12*3”。直接用eval函数就好