首页 > 编程语言 > 详细

关于python的一些笔记

时间:2015-12-20 11:47:57      阅读:278      评论:0      收藏:0      [点我收藏+]

 

  Python源文件默认以UTF-8编码。在这种编码下,世界上大多数语言的字符可以在字符串,标识符和注释中同时使用 — 尽管标准库中的标识符只使用ASCII字符,它是可移植代码应该遵循的一个惯例。为了能够正确显示所有的这些字符,你的编辑器必须能够识别文件是UTF-8编码,且必须使用支持文件中所有字符的字体。

  当然,也可以给源文件指定一个不同的编码。方法是在 #! 行的后面再增加一行特殊的注释来定义源文件的编码:

# -*- coding: encoding -*-

 

  如果你只打印range,会出现奇怪的结果:

>>> print(range(10))
range(0, 10)

  range()返回的对象的行为在很多方面很像一个列表,但实际上它并不是列表。当你迭代它的时候它会依次返回期望序列的元素,但是它不会真正产生一个列表,因此可以节省空间。

  我们把这样的对象称为可迭代的,也就是说,它们适合作为期望连续获得元素直到穷尽的函数和构造器的目标。我们已经看到for语句是这样的一个迭代器。list()函数是另外一个;它从可迭代对象创建列表。可以想象,list()函数迫使可迭代对象将所有元素一次性生成为list型。

>>> list(range(5))
[0, 1, 2, 3, 4]

 

  循环语句while/for可以有一个 else 子句;当循环是因为迭代完整个列表( for 语句)或者循环条件不成立(while 语句)终止,即正常终止,而非由break 语句终止时,else子句将被执行。下面循环搜索质数的代码例示了这一点:

 1 >>> for n in range(2, 10):
 2 ...     for x in range(2, n):
 3 ...         if n % x == 0:
 4 ...             print(n, equals, x, *, n//x)
 5 ...             break
 6 ...     else:
 7 ...         # loop fell through without finding a factor
 8 ...         print(n, is a prime number)
 9 ...
10 2 is a prime number
11 3 is a prime number
12 4 equals 2 * 2
13 5 is a prime number
14 6 equals 2 * 3
15 7 is a prime number
16 8 equals 2 * 4
17 9 equals 3 * 3

  是的,这是正确的代码。看仔细:else子句属于for 循环,属于 if 语句。


关于python的一些笔记

原文:http://www.cnblogs.com/xcw0754/p/5060433.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!