python入门(1)

来源:互联网 发布:ac尼尔森收视数据模板 编辑:程序博客网 时间:2024/05/17 23:39

第一章
python on windows有2个版本,1、ActivePython(来自active state,不是开源的),2、来自python,是开源的

第二章
1、在python中函数是有返回值的,如果函数含有语句return,则返回return的值;否则,返回None

2、函数中的参数是不需要声明类型的,python是动态-强类型语言。他的特点是,不需要声明变量类型,但是,一旦变量有了类型(被赋值后),他的类型就确定了。这是与很多语言不同的地方,一般的语言都是动态-弱类型或者静态-强类型的。

3、函数的多行注释,可以是用3个双引号括起来的字符串。如果一个函数有注释,那么注释必须在函数内容的开始。

4、函数的注释,是该函数运行时的一个属性:__doc__

5、import的搜索路径是在sys.path中所定义的文件夹。
  >>>import sys
  >>>sys.path
  查看搜索路径。
  sys.path的结果是一个list,因此,所有list的方法对于sys.path都是合适的,你可以通过如下代码让python自定义搜索路径
  >>>sys.path.append('d:/my/new/path')

6、在python中,不是所有的模块都是.py结尾的。比如sys模块,sys是一个内置模块,它是由c写的

7、python中,一切都是对象。有些对象可能没有属性和方法,有些对象可能不能有子类。(?)

8、代码的缩排,在python中没有begin...end或者{...}来确定代码块,它是依靠良好的代码缩排来确定代码块的,这是需要去适应的。

9、print是关键字,是一种声明,就像if,for一样。它用来打印它所声明的内容
  >>> print "n =",5
  n = 5
  >>> print("n", 5)
  ('n', 5)
  >>> print("help")
  help
  >>> print("help","list")
  ('help', 'list')
  >>> print("help",)
  ('help',)
  >>> print["i","love"]
  ['i', 'love']
  >>> print (['oo'])
  ['oo']
  >>> print (['oo'],['list','poi'])
  (['oo'], ['list', 'poi'])
  >>> li = ['1',2,3]
  >>> print li
  ['1', 2, 3]
  print声明后的内容,以逗号分开,打印出的结果中每个元素以空格分开

10、python不支持行内赋值(in-line assignment)。即if((i = 4) == k),不支持

11、所有模块都有一个内置属性:__name__。__name__属性的值是依赖于你如何使用该模块,如果是导入模块,那么__name__是模块的文件名(不含路径和后缀名);如果直接运行模块,__name__的值是默认值"__main__"。因此,可以通过if __name__ == "__main__": 声明来测试代码

第三章
1,字典,dictionary
  字典类型是内置的,无序的,它类似于java中的hashmap。字典中的键是大小写相关的,keys和Keys可以是2个不同的键(字母k的大小写不同)。键所对应的值可以是各种数据类型的。同样,键也是可以多种数据类型的。

  对字典的操作:
  1,定义
 >>> d = {'key':1, 'my':2}
 >>> d
 {'my': 2, 'key': 1}
  2,新增
 >>> d[3] = 'hehe'
 >>> d
 {3: 'hehe', 'my': 2, 'key': 1}
  3,更新
 >>> d['my'] = {'a':'alpha'}
 >>> d
 {3: 'hehe', 'my': {'a': 'alpha'}, 'key': 1}
  4,查找
 >>> d['key']
 1
  5,删除
 >>> del d['my']
 >>> d
 {3: 'hehe', 'key': 1}
  6,清空
 >>> d.clear()
 >>> d
 {}

  在删除时用的del和print一样,更像是一种声明,可以这样做:
 >>> d = {'key':1, 'my':2}
 >>> del d['key'], d['my']
 >>> d
 {}

2、列表,list
  列表类型类似于java中的ArrayList,它是有序的。

  对列表的操作:
  1,定义
 >>> li = ['a', 'b', 3, {'key':'value'}]
 >>> li
 ['a', 'b', 3, {'key': 'value'}]
  2,取得
     a,正向取(从左到右)
 >>> li[0]
 'a'
 >>> li[3]
 {'key': 'value'}
 >>> li[4]

 Traceback (most recent call last):
   File "<pyshell#13>", line 1, in -toplevel-
     li[4]
 IndexError: list index out of range
     b,反向取(从右到左),li[-n] = li[len(li) - n]
 >>> li[-1]
 {'key': 'value'}
 >>> li[-4]
 'a'
 >>> li[-5]

 Traceback (most recent call last):
   File "<pyshell#16>", line 1, in -toplevel-
     li[-5]
 IndexError: list index out of range
     c,分段获得部分列表
 >>> li
 ['a', 'b', 3, {'key': 'value'}]
 >>> li[1:3]
 ['b', 3]
        从li[1](值为'b'),到li[3](值为'{'key':'value'}')之前
 >>> li[1:-1]
 ['b', 3]

 >>> li[2:]
 [3, {'key': 'value'}]
 >>> li[:2]
 ['a', 'b']
 >>> li[:]
 ['a', 'b', 3, {'key': 'value'}]

        在分段时,如果某个索引超出了范围,或者前索引位置在后索引后,不会有异常,只是返回一个空列表,如下:
 >>> li
 ['a', 'b', 3, {'key': 'value'}]
 >>> li[2:-3]
 []
 >>> li[1:0]
 []
 >>> li[100:]
 []

  3,新增
     有3中新增的手法
     a,追加内容,append。该方法在列表的最后追加一个元素(任意类型)
 >>> li.append('new')
 >>> li
 ['a', 'b', 3, {'key': 'value'}, 'new']
     b,插入内容,insert。该方法在列表的指定位置增加一个元素
 >>> li.insert(1,'first')
 >>> li
 ['a', 'first', 'b', 3, {'key': 'value'}, 'new']
     c,扩展列表,extend。该方法在列表的最后,追加列表(参数是一个列表类型),新增列表中的元素按序排列在初始列表之后
 >>> li.extend('45')
 >>> li
 ['a', 'first', 'b', 3, {'key': 'value'}, 'new', '4', '5']
 >>> li.extend(45)

 Traceback (most recent call last):
   File "<pyshell#42>", line 1, in -toplevel-
     li.extend(45)
 TypeError: list.extend() argument must be iterable
 >>> li.extend(['kkk','lll'])
 >>> li
 ['a', 'first', 'b', 3, {'key': 'value'}, 'new', '4', '5', 'kkk', 'lll']

        注意,在extend中,接受一个字符串做参数时,比较特殊,相当于如下的代码:
 >>> li
 ['a', 'b', 3, {'key': 'value'}]
 >>> li.extend(list('123'))
 >>> li
 ['a', 'b', 3, {'key': 'value'}, '1', '2', '3']
        list函数将一个字符串分解为含有每个字符的列表
  4,索引
     方法index,或者in表达式,index的参数可以是任意类型的。如果索引的值在列表中存在多个,则返回第一次出现该值的位置;如果在列表中不存在,发生异常;in表达式的返回是布尔类型True和False(大小写相关)。
 >>> li.index(3)
 2
 >>> 'x' in li
 False
  5,删除
     方法remove和pop。remove移除列表中的一个元素,如果改元素有多个,则只移除最靠前的一个,返回移除后的整个列表;pop移除列表最后一个元素,返回改元素。

  6,其他操作 +,*
     +和extend方法相同,*是多个+

3,序列,tuples
   1,定义
 >>> li = ('a', 'b', 3, {'key':'value'})
 >>> li
 ('a', 'b', 3, {'key': 'value'})

   2,取得,同列表一样

   序列没有方法,它比列表操作速度快。

   内置函数tuple接受列表,返回序列,list接受序列,返回列表。

变量
  python可以利用序列,列表一次性给多个变量赋值,赋值号2边元素个数相同。
 >>> (x,y,z) = ('1','2','3')
 >>> x
 '1'
 >>> y
 '2'

4,格式化字符串
>>> a='x'
>>> b=1
>>> '%s=%d' % (a,b)
'x=1'

(a,b)是一个序列,这里只能是序列。
>>> '%s=%d' % [a,b]

Traceback (most recent call last):
  File "<pyshell#34>", line 1, in -toplevel-
    '%s=%d' % [a,b]
TypeError: not enough arguments for format string

d:整数;s:字符串;

>>> print "Today's stock price: %f" % 50.4625
50.462500
>>> print "Today's stock price: %.2f" % 50.4625
50.46

f:浮点数(定义有效位数,如:%.2f是小数点后2位,默认是6位);

5,列表的映射
将一个列表循环操作后的元素生成新的列表,原来的列表不改变
>>> li = [1,2,3]
>>> ['x=%d' % k for k in li]
['x=1', 'x=2', 'x=3']
>>> li
[1, 2, 3]

6,列表的链接,join
以字符'#'链接列表:
'#'.join([.......])
join方法不是列表的方法,而是字符串的方法

布尔环境下的一些规则:
* 0是假,其他数字是真
* 空字符串""是假,其他字符串是真
* 空列表[]是假
* 空字典{}是假
* 空序列()是假

原创粉丝点击