Python基础

1. 下划线_代表最后一个表达式的值。注意:只在解释器中有用,既显示上一次的操作结果。
2. Print语句可以用%进行格式控制,与C相似。
  如:
  >>> print “%s is number %d!” % (“python”, 1)
  Python is number 1!
3. Python 非常灵活,所以即使你将数字传递给 %s,也不会像其他要求严格的语言一样引发严重后果。
4. 符号 >> 用来重定向输出,下面这个例子将输出重定向到标准错误输出:
  import sys
  print >> sys.stderr, 'Fatal error: invalid input!'
  import sys
  print >> sys.stderr, 'Fatal error: invalid input!'
  下面是一个将输出重定向到日志文件的例子:
  logfile = open('/tmp/mylog.txt', 'a')
  print >> logfile, 'Fatal error: invalid input!'
  logfile.close()
  
2.1.3 内建函数 input()
从用户那里得到数据输入的最容易的方法是使用 input()内建函数。它读取标准输入,并将读取到的数据赋值给指定的变量。
你可以使用 int() 内建函数将用户输入的字符串转换为整数。
例子:
  >>> user = input('Enter login name: ')
  Enter login name: root
  >>> print 'Your login is:', user
  Your login is: root
上面这个例子只能用于文本输入。 下面是输入一个数值字符串(并将字符串转换为整数)的例子:
  >>> num = raw_input('Now enter a number: ')
  Now enter a number: 1024
  >>> print 'Doubling your number: %d' % (int(num) * 2)
  Doubling your number: 2048
Raw的意思是“写后读”。
核心笔记:从交互式解释器中获得帮助在学习 Python 的过程中,如果需要得到一个生疏函数的帮助,只需要对它调用内建函数help()。通过用函数名作为 help()的参数就能得到相应的帮助信息:
  >>> help(input)
Python 使用 # 符号标示注释,从 # 开始,直到一行结束的内容都是注释。

2.2 运算符
2.2.1 标准运算符
+ - * / 标准运算符, 与C一样。注意,/   这里叫地板除(取比商小的最大整数)。
%    取余。
//     浮点除法  取四舍五入。总是执行真正的除法。
**    乘方运算符,优先级按数学规律。
根据真假返回BOOL值的标准比较运算符:
  <	<=	>	>=	==	!=	<>(被淘汰)
  真返回True  假返回False 注:大小写敏感。
逻辑运算符:and = &&		or = ||		not = !
编码风格:括号在 Python语言中不是必须存在的, 不过为了可读性, 使用括号总是值得的。

2.3 变量和赋值
变量名以字母开头。
Python 是动态类型语言, 也就是说不需要预先声明变量的类型。 变量的类型和值在赋值那一刻被初始化。变量赋值通过等号来执行。
支持增量赋值:
  n = n * 10
  将上面的例子改成增量赋值方式就是:
  n *= 10
Python 不支持 C 语言中的自增 1 和自减 1 运算符。
2.4 数字
1. Python 支持五种基本数字类型,其中有三种是整数类型。
  
  int (有符号整数)
  long (长整数)
  bool (布尔值)
  float (浮点值)
  complex (复数)
2.注意:Python 长整数仅受限于用户计算机的虚拟内存总数。从 Python2.3 开始,再也不会报整型溢出错误, 结果会自动的被转换为长整数。
3.bool值:与C相同 1与0
4. decimal, 用于十进制浮点数。
2.5字符串
1.Python 支持使用成对的单引号或双引号,
三引号(三个连续的单引号或者双引号)可以用来包含特殊字符
2.使用索引运算符( [ ] )和切片运算符( [ : ] )可以得到子字符串。
3.字符串有其特有的索引规则:第一个字符的索引是 0, 最后一个字符的索引是 -1、
4.注意:字符串不支持通过索引进行单个赋值(或更改原值)。既:字符串是不可变的。
2.6 列表和元组
列表和元组可以当成普通的数组。它能保存任意数量任意类型的 Python 对象。
下标索引从0开始(与C相同)。
列表和元组的区别:
  1》列表元素用中括号( [ ])包裹,元素的个数及元素的值可以改变。元组元素用小括号(( ))包裹,不可以更改(尽管他们的内容可以)。
  2》元组可以看成是只读的列表。
  3》列表通过切片运算( [ ] 和 [ : ] )可以得到子集,与字符串使用方法一样。结果为列表,其值可以改变。
  4》元组也可以进行切片运算,得到的结果仍是元组。值仍旧是只读。
2.7 字典
1. 字典是 Python 中的映射数据类型,类似于关联数和哈希表,由键-值(key-value)对构成。
2. 几乎所有类型的 Python 对象都可以用作键,不过一般还是以数字或者字符串最为常用。
3. 值可以是任意类型的 Python 对象,字典元素用大括号({ })包裹。
4. 例子:
>>> aDict = {'host': 'earth'} # create dict
>>> aDict['port'] = 80 # add to dict
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
... print key, aDict[key]
...
host earth
port 80
2.8 代码块及缩进对齐
代码块通过缩进对齐表达代码逻辑而不是使用大括号。
2.9 if语句
1. 标准 if 条件语句的语法如下:
  if expression:
  if_suite
如果表达式的值非 0 或者为布尔值 True, 则代码组 if_suite 被执行; 否则就去执行下一条语句。
代码组是一个 Python 术语, 它由一条或多条语句组成,表示一个子代码块。
注意:条件表达式不需要用括号括起来。
If …… Else 组合
  if expression:
  If_suite
  else:
  else_suite
Python 还支持 elif (意指 “else-if ”)语句,语法如下:
  if expression1:
  if_suite
  elif expression2:
  elif_suite
  else:
  else_suite
注意:python没有switch……case语句。
2.10 while循环
使用缩进来分隔每个子代码块,语法为:
  while expression:
  while_suite
2.	while语句有一个可选的else从句.
2.11 for循环和range()内建函数
2.11.1 for循环
1. 类似于shell 脚本里的 foreach 迭代, 以可迭代对象作为参数,每次迭代其中一个元素。
2. 举例:
  >>> for a in alist:
  	print a
  将alist(事先定义的表格)内容全部打印出来。
在print后面增加逗号(,)可以取消自动换行。
2.11.2 for循环利用range()
当我们循环范围可变时,可以使用内建函数range()。 range()接受数组范围,生成一个列表。
例子:
  >> for eachNum in range(3):
  ...
  print eachNum
  ...
  0
  1
  2
For循环输出字符串中的每个元素:
  >>> foo = 'abc'
  >>> for c in foo:
  ...
  print c
  ...
  a
  b
  C
  
  >>> foo = 'abc'
  >>> for i in range(len(foo)):
  ... print foo[i], '(%d)' % i
  ...
  a (0)
  b (1)
  c (2)
For的另一个例子:用到else项
  #!/usr/bin/python
  # Filename: for.py
  for i in range(1, 5):
  print i
  else:
  print 'The for loop is over'
  输出
  $ python for.py
  1
  2
  3
  4
  The for loop is over
  从这里看出:1)else只执行一次。2)range是左闭右开[ , )型范围内建函数。3)range(1,5)给出序列[1, 2, 3, 4]
2.11.3 range()
默认地,range的步长为1。如果我们为range提供第三个数,那么它将成为步长。例如,range(1,5,2)给出[1,3]。记住,range 向上 延伸到第二个数,即它不包含第二个数。
2.11.3 enumerate() 列举内建函数
1. Enumerate()函数同时获取循环的索引和元素。
  >>> for i, ch in enumerate(foo):
  ... print ch, '(%d)' % i
  ...
  a (0)
  b (1)
  c (2)
2.12 列表解析
1.在一行中使用一个 for 循环将所有值放到一个列表当中:
  >>> squared = [x ** 2 for x in range(4)]
  >>> for i in squared:
  ... print i
  0
  1
  4
  9
可以在列表解析中进行判断赋值。
  >>> sqdEvens = [x ** 2 for x in range(8) if not x % 2]		 #求平方
  >>>
  >>> for i in sqdEvens:
  ... print i
  0
  4
  36
  16
2.13 文件和内建函数open(), file()
2.13.1 打开文件
open()
  handle = open(file_name, access_mode = 'r')
  其中
  file_name 文件名称
  Access_mode 为打开方式 'r' 表示读取,'w' 表示写入, 'a' 表示添加。其它可能用到的标声还有 '+' 表	示读写, 'b'表示二进制访问。
返回值:文件句柄。
关于属性:
  核心笔记:什么是属性?
  属性是与数据有关的项目, 属性可以是简单的数据值, 也可以是可执行对象, 比如函数
  和方法。哪些对象拥有属性呢? 很多。 类, 模块, 文件还有复数等等对象都拥有属性。
  我如何访问对象属性? 使用句点属性标识法。 也就是说在对象名和属性名之间加一个句
  点: object.attribute
File()
  功能等同于 open(), 不过 file()
  这个名字可以更确切的表明它是一个工厂函数。(生成文件对象)类似 int()生成整数对象,dict()生成字典对象。
2.14 break语句和continue
Break终止循环。
一个重要的注释是,如果你从for或while循环中 终止 ,任何对应的循环else块将不执行。
3. Continue与C相同。对于while和for都适用。
1. 是什么:模块是一种组织形式, 它将彼此有关系的 Python 代码组织到一个个独立文件当中。模块可以包含可执行代码, 函数和类或者这些东西的组合。
2. 说明:1》模块的名字就是不带 .py 后缀的文件名。
  2》使用 import 语句导入这个模块来使用。
访问模块:
  import module_name
  导入:
  一旦导入完成, 一个模块的属性(函数和变量)可以通过熟悉的 .句点属性标识法访问。
  module.function()
  module.variable
例子:调用sys模块:(自己写的)
>>> import sys
>>> sys.platform
'linux2'
>>> sys.stdout.write('hello!')
hello!
>>> sys.version
posted on 2016-05-21 09:59  李栋94  阅读(208)  评论(0编辑  收藏  举报