从C#到Python:2 运算符、表达式和流程控制
2010-09-30 22:36:47 来源:WEB开发网从上面的语句可以看到,dict用一种更优雅的方式模拟了switch选择,集合lambda函数,还可以进一步实现更加复杂的逻辑分支语句。关于lambda函数的使用,我们到下一章再学习。
2.2.2 循环
Python支持两种循环语句——while循环和for循环,不支持C#中的do-while循环。Python的while循环和C#基本一致,此处我们着重比较两种语言中for循环的区别。
说的简单一点,Python中的for语句相当于C#中的foreach语句,它常用于从集合对象(list、str、tuple等)中遍历数据。例如:
1 for i in [1,2,3,4,5]:
2 print i
这与C#中的foreach语法基本是一样的,下边是C#中的对应代码:
1 IEnumerable<int> numbers = Enumerable.Range(0, 5);
2 foreach( int i in numbers)
3 Console.WriteLine(i);
如何实现类似C#中for(int i = 0; i < 10; i++)这种for循环呢?答案是使用range或xrange对象,见下边的代码:
1 # range(10)也可以用xrange(10)代替
2 for i in range(10):
3 print i
4 #等价于以下C#语句
5 #for(int i = 0; i<10;i++)
6 # Console.WriteLine(i);
内建函数range([i,]j[,stride])建立一个整数列表,列表内容为k(i <= k < j)。第一个参数i和第三个参数stride是可选的,默认值分别为 0 和 1。内建函数xrange([i,]j[,stride])与 range 有相似之处,但xrange返回的是一个不可改变的XRangeType对象。这是一个迭代器,也就是只有用到那个数时才临时通过计算提供值。当 j 值很大时,xrange能更有效地利用内存。
更多精彩
赞助商链接