本章是对Python的主要特性做一个快速介绍。

1 介绍

  交互执行时,解释器有两种提示符:

    主提示符(>>>):解释器在等待输入下一个语句;

    次提示符(...):解释器在等待输入当前语句的其它部分。

  Python有两种方式来完成要求:

    语句:使用关键字来组成命令,可以有输出,也可以没有;

    表达式:没有关键字,可以是算术表达式,也可以是函数。

2 程序输出,print语句  

  可以用print语句显示变量的字符串表示,或者仅使用变量名查看该变量的原始值。          

>>> myString = 'Hello World!'
>>> print myString
Hello World! #没有引号
>>> myString
'Hello World!' #有引号

  下划线(_)在解释器中有特别的含义,表示最后一个表达式的值。所以上面的代码执行之后,下划线变量会包含字符串:     

>>> _
Hello World!

  print的格式化输出——%s:字符串(其实任何类型都可以用%s输出),%d:整数,%f:浮点数。          

>>> print "%s is number %d!" % ("Python", 1)
Python is number 1!

  符号>>用来重定向print输出:          

logfile = open('/tmp/mylog.txt', 'a')
print >> logfile, 'Fatal error: invalid input!'
logfile.close()

3 程序输入,内建函数raw_input()

  raw_input():从标准输入读取一个字符串,自动删除串尾的换行字符,并将读取到的数据赋值给指定的变量。

>>> user = raw_input('Enter login name: ')
Enter login name: root
>>> print 'Your login is:', user
Your login is: root

  内建函数int():可以将数值字符串转换成整数值,这样才可以对它进行数学运算

>>> num = raw_input('Now enter a number: ')
Now enter a number: 1024
>>> print 'Doubling your number: %d' % (int(num) * 2)
Doubling your number: 2048

  内建函数help():将陌生函数名作为其参数,可以得到帮助信息:

>>> help(raw_input)
Help on built-in function raw_input in module __builtin__:
.
.
.

4 注释

  普通注释:以#开始,直到单行结束。

  特殊注释:文档字符串:在模块、类或者函数的起始添加一个字符串,起到在线文档的功能。对于函数,调用help即显示该字符串。

5 运算符

  标准算术运算符:

  +
-
*
/ #Python3.0后为标准除;3.0之前整数为地板除,浮点数为标准除
// #整数和浮点数都是地板除
% #浮点数也可以求余
** #幂运算

  标准比较运算符,返回布尔值True或者False:

  <
<=
>
>=
==
!=
<> #不等号,逐渐被淘汰

  逻辑运算符:

  and
or
not

  逻辑运算符可以将任意表达式连接在一起:

>>> 3<4 and 4<5
True
>>> 3<4<5 #等价于上面的表达式
True

6 变量和赋值

  与C语言一样,变量名以字母或下划线(_)开头,其它的字符可以是数字,字母或下划线。

  与C语言不同,Python是动态类型语言,不需要预先声明变量的类型。变量要定义之后才能使用,变量的类型和值在赋值那一刻被初始化(之后类型和值都可以变化)。

  变量支持复合赋值,即 +=,-= 等等。

  不支持自增(++)和自减(--)运算符。因为+和-是单目运算符,Python会将--n解释为-(-n),从而仍然得到n。n--为语法错误。

7 数字

 int (有符号整数)         84   -127   017   0x1f
long (长整数) 1234567L -12345l 0xADCFAEBL #范围远超C语言,仅受限于计算机虚拟内存
bool (布尔值) True(=1) False(=0) #可以和整数直接进行运算
float (浮点值) 3.14 4.2E-10 -90.
complex (复数) 6.23+1.5j -12-875J

8 字符串

  Python支持成对的单引号或者双引号(单/双引号内可以包含成对的双/单引号),三引号(三个连续单/双引号)可以包含特殊字符(如换行符)。

>>> str1 = 'hello'
>>> str2 = "world"
>>> str3 = '''Hello
... World!'''
>>> print str1, str2
hello world
>>> print str3
Hello
World!
>>> str3
'Hello\nWorld!'

  使用索引运算符([ ])和切片运算符([ : ])可以得到子字符串,字符串有其特有的索引规则:第一个字符的索引是0,最后一个字符的索引是-1。

>>> str = "Python is cool!"
>>> str[0]
'P'
>>> str[-1]
'!'
>>> str[4:]
'on is cool!'
>>> str[-3:]
'ol!'
>>> str[:3] #从str[0]开始,不包括str[3]
'Pyt'
>>> str[:-1] #不包括str[-1]
'Python is cool'

  加号(+)用于连接字符串,星号(*)用于字符串重复。

>>> str1 = 'abc'
>>> str2 = "DEF"
>>> str1 + str2
'abcDEF'
>>> str1 * 2
'abcabc'

9 列表和元组  

  列表和元组可以视为普通的“数组”,能保存任意数量任意类型的Python对象。通过从0开始的数字索引访问元素,可以存储不同类型的对象。

  列表元素用中括号([ ])包裹,元素的个数及元素的值可以改变。

>>> list1 = [1,2,3,'abc']
>>> list1
[1, 2, 3, 'abc']
>>> list1[3] = 'def'
>>> list1
[1, 2, 3, 'def']

  元组元素用小括号(( ))包裹,元素的个数及元素的值不可以更改(值的内容可以更改,比如元组中包含列表,该列表元素不能指向其他列表,但是列表元素的内容可以改变)。元组可以看成是只读的列表。

>>> list2 = [4,5,6,'xyz']
>>> tuple1 = (11,12,13,list1)
>>> tuple1
(11, 12, 13, [1, 2, 3, 'def'])
>>> tuple1[3] = list2  #更改元组元素的值,错误
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> tuple1[3][3] = 'python'  #更改元组中列表元素的内容,正确
>>> tuple1
(11, 12, 13, [1, 2, 3, 'python'])

  列表/元组都可以通过切片运算([ ]和[ : ])得到子集,其子集仍然是列表/元组,这一点与字符串的使用方法一样。

10 字典

  类似于关联数组或则哈希表,由键-值(key-value)对组成。

  键可以使用所有不可变类型(所以列表不可以)的对象(一般使用字符串或数字),值可以是任意对象,字典用({ })包裹。

>>> aDict = {'host': 'earth'}   #创建字典
>>> aDict['port'] = 80 #添加元素
>>> aDict
{'host': 'earth', 'port': 80}
>>> aDict.keys()
['host', 'port']
>>> aDict['host']
'earth'
>>> for key in aDict:
...   print key, aDict[key]
...
host earth
port 80

11 代码块即缩进对齐

  Python不使用花括号来包裹代码块,而使用缩进对齐来表达代码逻辑。

12 if语句  

if expression:    #expression值为True或者非0时,条件成立
if_suite
if expression:
if_suite
else:
else_suite
if expression1:
if_suite
elif expression2:  #else if
elif_suite
else:
else_suite

13 while循环

while expression:
while_suite

14 for循环和range()内建函数

  Python的for循环和C的计数循环不一样,更像是shell脚本里的foreach迭代。它接受可迭代对象(例如序列或迭代器)作为其参数,每次迭代其中一个元素。

>>> print 'I like to use the Internet for:'
I like to use the Internet for:
>>> for item in ['e-mail', 'net-surfing', 'homework', 'chat']:
...   print item
...
e-mail
net-surfing
homework
chat

  上面每次print都输出到新的一行,因为print语句默认给每一行添加一个换行符。在print语句最后添加一个逗号(,)即可输出到同一行:

>>> for item in ['e-mail', 'net-surfing', 'homework', 'chat']:
...   print item,
...   print
e-mail net-surfing homework chat

  由上可看出,带逗号的print语句会在输出元素之间自动添加一个空格;不带有任何参数的print语句,会输出一个换行符。可以通过指定输出格式,来指定或者避免空格。  

  内建函数range()接受一个数值范围,生成一个列表,可以实现计数循环。

>>> for eachNum in range(3):  #不包括3
...   print eachNum
...
0
1
2

  range()函数经常和len()函数一起用于字符串索引:

>>> str = 'abcd'
>>> for i in range(len(str)):
...   print '%d' % i, str[i]
...
0 a
1 b
2 c
3 d

  字符串也可以直接使用for循环输出元素:

>>> for c in str:
...   print c
...
a
b
c
d

  以上要么循环索引,要么循环元素。这导致了enumerate()函数的推出(Python2.3 新增)。 它同时做到了这两点:

>>> for i,ch in enumerate(str):
...   print "%d" % i, str[i]
...
0 a
1 b
2 c
3 d

15 列表解析  

  可以在一行中使用一个for循环将所有值放到一个列表当中:

>>> squared = [x ** 2 for x in range(4)]
>>> squared
[0, 1, 4, 9]

  也可以挑选符合要求的值加入列表:

>>> squared = [x ** 2 for x in range(8) if not x % 2]   #if后面成立才加入列表
>>> squared
[0, 4, 16, 36] 

Python核心编程--学习笔记--2--Python起步(上)的更多相关文章

  1. Python核心编程--学习笔记--6--序列(上)字符串

    本章研究Python中的序列:字符串.列表和元组.因为这些类型其实都是由一些成员共同组成的一个序列整体,所以我们把它们统称为序列.序列的存储结构可以表示为: 1 序列 序列类型有着相同的访问模式:按下 ...

  2. Python核心编程--学习笔记--4--Python对象

    现在开始学习Python语言的核心部分.首先了解什么是Python对象,然后讨论最常用的内建类型,接下来讨论标准类型运算符和内建函数,之后给出对标准类型的不同分类方式,最后提一提Python目前还不支 ...

  3. Python核心编程--学习笔记--3--Python基础

    本章介绍基本的Python语法.编程风格:并简要介绍标识符.变量和关键字,以及变量占用内存的分配和回收:最后给出一个较大的Python样例程序来体验这些特性. 1 语句和语法 1.1 注释 可以在一行 ...

  4. Python核心编程--学习笔记--1--Python简介

    本章介绍了Python的背景知识,包括什么是Python.Python的起源以及Python的一些关键特性. 1 什么是Python Python是一门优雅而健壮的编程语言,它继承了传统编译语言的强大 ...

  5. Python核心编程--学习笔记--2--Python起步(下)

    16 文件和内建函数open(),file() 打开文件: fobj = open(filename, 'r') for eachLine in fobj: print eachLine, #由于每行 ...

  6. Python核心编程--学习笔记--9--文件和输入输出

    本章将深入介绍Python的文件处理和相关输入输出能力,包括:文件对象(以及它的内建函数.内建方法和属性),标准文件,文件系统的访问方法,文件执行,最后简要涉及持久存储和标准库中与文件有关的模块. 1 ...

  7. Python核心编程--学习笔记--8--条件与循环

    本章讲述if.while.for以及与他们搭配的else.elif.break.continue.pass等语句. 1 if语句 语法:三部分——关键字if.条件表达式.代码块.(记住冒号) if c ...

  8. Python核心编程--学习笔记--7--字典和集合

    本章介绍Python语言中的映射类型(字典)和集合类型,包括操作符.工厂函数.内建函数与方法. 1 字典 字典是Python中唯一的映射类型——键key直接映射到值value.字典是容器类型,其对象是 ...

  9. Python核心编程--学习笔记--6--序列(下)列表、元组

    11 列表 类似于C语言的数组,但是列表可以包含不同类型的任意对象.列表是可变类型. 创建列表——手动赋值.工厂函数: >>> aList = [12, 'abc'] >> ...

随机推荐

  1. 《Head First 设计模式》ch.3 装饰(Decorator)模式

    设计原则 类应该对修改关闭,对扩展开放(开放-关闭原则).在每个地方使用开放-关闭原则是一种浪费,也没有必要,因为这通常会引入新的抽象层次,增加代码复杂度.需要把注意力集中在设计中最有可能改变的地方. ...

  2. sublimeText3-EOFError: EOF when reading a line

    最近在自学python,练习网上教程代码的时候遇到: EOFError: EOF when reading a line 发现原因是sublime的console不支持输入,安装SublimeREPL ...

  3. dumpsys命令的使用及telephony.registry解读

    adb shell dumpsys,默认打印出当前系统所有的service信息,通常情况下我们并不想看那么多信息,可以在后面加上具体的服务名,比如想获取关于设备电池的信息,就可以使用以下命令: > ...

  4. 帕金森定律(Parkinson's Law)

    帕金森定律(Parkinson's Law)是官僚主义或官僚主义现象的一种别称, 是由英国历史学家.政治学家西里尔·诺斯古德·帕金森(Cyril Northcote Parkinson)通过长期调查研 ...

  5. alter table <表名 > add constraint <主键名>用法

    alter table <表名 > add constraint  <主键名>用法介绍 1.主键约束: 要对一个列加主键约束的话,这列就必须要满足的条件就是分空 因为主键约束: ...

  6. 洛谷P1983 车站分级

    P1983 车站分级 297通过 1.1K提交 题目提供者该用户不存在 标签图论贪心NOIp普及组2013 难度普及/提高- 提交该题 讨论 题解 记录 最新讨论 求帮忙指出问题! 我这么和(diao ...

  7. [drp 4] 使用dom4j,读取XML数据,保存至数据库

    导读:上篇文章介绍了用XML文件配置数据库的连接,然后通过读取XML文件连接数据库的内容,本篇博客介绍读取XML文件,进行数据持久化的操作.PS:从某种意义上来说,经过Scheme校正的XML文件,本 ...

  8. VC与JavaScript交互(一) --- 如何实现

    为什么要让VC与JavaScript交互? 1.有时候我们需要让自己的软件打开一个网页,来获取页面上的一些数据.这时,可以用mshtml解析HTML提取出数据,也可以向HTML文档动态写入我们准备好的 ...

  9. 【C#基础】static 关键字用法小结

    静态变量 当我们编写一个类时,其实就是在描述其对象的属性和行为,而并没有产生实质上的对象,只有通过new关键字才会产生出对象,这时系统才会分配内存空间给对象,其方法才可以供外部调用. 有时候,我们希望 ...

  10. C++著名程序库的比较和学习经验 (转)

    转自:http://www.open-open.com/lib/view/open1328670468108.html 内容目录: 1.C++各大有名库的介绍——C++标准库 2.C++各大有名库的介 ...