python基本知识总结

动态表达式

  先布置一个思考题:在C#语言中,如果需要在文本框中输入1+2(或更复杂的数学表达式)后计算它的值,你会怎么做呢?

  不怕大家笑,我在用C#解决这个问题的时候,是自己做了一个表达式解析器…………,虽然只能计算加减乘除的简单组合,但也着实费了我好大力气。后来才开始使用各种各样的第三方Parse组件,msscript等。现在我们有了Python,要完成这个任务可以说是非常简单,简单到你不敢相信:只要用内置的eval()函数,就可以计算并返回任意有效表达式的值。例如:

1 str = '1+2'
2 print eval(str)

  你还可以试验更复杂的表达式,是不是很Powerful的一项功能?

  除了eval函数之外,Python还提供了exec语句将字符串str当成有效Python代码来执行,看下面的例子:

1 #exec.py
2 exec 'a=100'
3 print a

  另外还有execfile函数,它用来执行一个外部的py文件。上一个例子存为exec.py后,运行下边的代码就知道是怎么回事了:

1 execfile(r'c:\exec.py')

  最后提醒,默认的eval(),exec,execfile()所运行的代码都位于当前的名字空间中,eval(), exec,和execfile()函数也可以接受一个或两个可选字典参数作为代码执行的全局名字空间和局部名字空间,具体可以参考Python的手册,我就不啰嗦了。

 小结

  本章简要比较了Python与C#在运算符、表达式、程序流程控制语句等方面的异同,要点如下:

  (1) Python的算术运算符除了+、-、*、/、%之外,还有求幂(**)和取整除(//);

  (2) Python支持复合赋值(x+=1),但不支持C#中的自增和自减运算符(如x++);

  (3) Python用and、or、not代替了C#语言中的逻辑运算符&&、||和!,同时and、or所执行的逻辑运算不返回布尔值,而是返回实际比较值之一;

  (4) Python的选择语句包括if、elif和else,记得后边加冒号;Python中没有switch,但可以用if-elif-else或dict完成相同的任务模拟;

  (5) Python的循环语句有while、for,它们都支持else语句;注意Python的for相当于C#中的foreach语句,同时可以用for + range对象模拟C#中的常规for循环;

  (6) 两种语言的异常处理语句基本一致,不同的是Python的异常处理也支持else。


你可能感兴趣的:(c,python,C#,语言,任务)