Python学习笔记1 - 语言的基本要素
2014-06-30 16:06
621 查看
#文中代码片段均通过Python 3.4验证输出
1. 分析一下最简单的语句:
在Python这样的动态语言中,将“=”理解为绑定更好些,即将一个变量与内存中的某个对象绑定。例如执行a = 'a'时,Python会创建一个str对象,值为‘a',然后创建a这个变量,或者说是对象引用。Python使用“=”将a与’a'绑定在一起。Python使用如下规则绑定对象和变量:
a)如果变量存在,就进行重新绑定。
b)如果变量不存在,就由“=”操作符创建变量然后绑定。
对于“=”两边都是变量的情况,c = a,首先Python会创建变量c,然后将其与a所引用的对象绑定。也就是变量a和c同时引用(绑定)了’a'这个str对象。
因此,上面语句执行之后的结果是:
如果我再次执行c = a操作,变量c重新绑定了,这时c和a同时绑定同一个对象'k',此时各个变量的值为:
一个简单的图来说明以上的操作:
2. Python是一种动态语言,采用动态类型机制,在任何时候,某个变量都可以重新绑定(引用)一个不同类型的对象。可以使用type()来得到一个对象的类型:
3. 元组是不可变的,列表是可变的。元组使用逗号创建,包在“()”中例如('a', 'b', 'c'),空元组为空的括号()。列表使用方括号“[]”创建,空列表为[]。
元组和列表存放的实际是对象引用,而不是对象本身。
元组和列表都可以嵌套。
使用len()方法可以获取元组和列表的长度:
4. Python中的操作符
a) 第一种操作符是 is,用来判断两个变量是否引用相同的对象,如果变量a和b引用同一个对象,则a is b返回True,否则返回False。
b) 第二种操作符是==等比较操作符,用来比较两个变量所引用的对象的值是否相等。关于这个操作符与第一个操作符的区别可以看下面的例子:
c) 第三种操作符是成员操作符in。in操作符用来测试字符串,列表或者元组与其元素的成员关系,例如:
d) 逻辑运算符and,or,not。这里需要注意一下,在Python中,定义为False的变量、None、空序列、0等在逻辑表达式中都是False。
5 Python的运算符
a) 四则运算符+,-,*,/,即加减乘除。注意Python中的除法操作结果是产生一个浮点值,而不是像其他语言一样产生一个整数值:
b) 四则运算符都可以跟一个=形成增强赋值操作符+=,-=, *=, /=。
6 控制结构
a) if语句的语法:
这里的bool_expression表示逻辑表达式,suite表示一条或者多条语句,如果没有语句需要执行,可以使用pass关键字表示空语句。if语句可以有0个或者多个分支,最后的else分支也是可选的。
b) while语句的语法:
其中else部分是可选的
c) for...in语句的语法:
7 输入和输出
Python 3使用input()函数来获取用户的输入,使用print()函数来讲结果打印到输出。
8 创建函数
创建函数的语法:
1. 分析一下最简单的语句:
a = 'a' b = 'b' c = a
在Python这样的动态语言中,将“=”理解为绑定更好些,即将一个变量与内存中的某个对象绑定。例如执行a = 'a'时,Python会创建一个str对象,值为‘a',然后创建a这个变量,或者说是对象引用。Python使用“=”将a与’a'绑定在一起。Python使用如下规则绑定对象和变量:
a)如果变量存在,就进行重新绑定。
b)如果变量不存在,就由“=”操作符创建变量然后绑定。
对于“=”两边都是变量的情况,c = a,首先Python会创建变量c,然后将其与a所引用的对象绑定。也就是变量a和c同时引用(绑定)了’a'这个str对象。
因此,上面语句执行之后的结果是:
print(a, b, c) #输出a, b, a如果我修改了a的引用,使之绑定str对象‘k':
a = 'k'那么此时各个变量的值为:
print(a, b, c) #k, b, a可以看到,因为将a与'k'重新绑定,因此a的值为'k',此时c的值不变,仍然是'a',因为没有做重新绑定的操作。
如果我再次执行c = a操作,变量c重新绑定了,这时c和a同时绑定同一个对象'k',此时各个变量的值为:
print(a, b, c) #k, b, k这个时候str对象‘a'没有与任何变量绑定,因此会被视为垃圾而回收。
一个简单的图来说明以上的操作:
2. Python是一种动态语言,采用动态类型机制,在任何时候,某个变量都可以重新绑定(引用)一个不同类型的对象。可以使用type()来得到一个对象的类型:
print(type('a')) #输出:<class 'str'>
3. 元组是不可变的,列表是可变的。元组使用逗号创建,包在“()”中例如('a', 'b', 'c'),空元组为空的括号()。列表使用方括号“[]”创建,空列表为[]。
元组和列表存放的实际是对象引用,而不是对象本身。
元组和列表都可以嵌套。
使用len()方法可以获取元组和列表的长度:
len(('a',)) #输出1 len(['a', 100, 'k']) #输出3元组和列表都可以看作是序列,从而使用下标的方式来获取元素:
y = (1, 2, 3) print(y[0]) #输出1 z = ['a', 'b', 'c'] print(z[0]) #输出a列表也可以用下标的方式修改元素例如z[0] = 5会将列表z的第一个元素修改为5,但是如果用同样的方法修改元组,会报错“TypeError: ’tuple‘ object does not support item assigment”,我们前面说过元组一旦创建就是不可变的。
4. Python中的操作符
a) 第一种操作符是 is,用来判断两个变量是否引用相同的对象,如果变量a和b引用同一个对象,则a is b返回True,否则返回False。
b) 第二种操作符是==等比较操作符,用来比较两个变量所引用的对象的值是否相等。关于这个操作符与第一个操作符的区别可以看下面的例子:
a = [1, 2, 3] #a是一个列表对象(或者是一个元组) b = [1, 2, 3] #b是一个列表对象(或者是一个元组) print(a is b) #输出False print(a == b) #输出True a = 1 #a是一个整数(或者是字符串) b = 1 #b是一个整数(或者是字符串) print(a is b) #输出True print(a ==b) #输出True除了==操作符,还有其他的比较操作符例如<, > <=, >=等等。Python支持不等式链,例如以下代码是是正确的:
a = 2 print(0 <= a < 10) #输出True
c) 第三种操作符是成员操作符in。in操作符用来测试字符串,列表或者元组与其元素的成员关系,例如:
p = [1, 2, 3] print(1 in p) #输出True print(7 in p) #输出False
d) 逻辑运算符and,or,not。这里需要注意一下,在Python中,定义为False的变量、None、空序列、0等在逻辑表达式中都是False。
5 Python的运算符
a) 四则运算符+,-,*,/,即加减乘除。注意Python中的除法操作结果是产生一个浮点值,而不是像其他语言一样产生一个整数值:
print(3/2) #输出1.5如果希望得到一个整数结果,可以使用//操作符,或者使用int()方法将结果转换为整数。
b) 四则运算符都可以跟一个=形成增强赋值操作符+=,-=, *=, /=。
6 控制结构
a) if语句的语法:
if bool_expression1: suite1 elif bool_expression2: suite2 ... elif bool_expressionN: suiteN else: suiteElse
这里的bool_expression表示逻辑表达式,suite表示一条或者多条语句,如果没有语句需要执行,可以使用pass关键字表示空语句。if语句可以有0个或者多个分支,最后的else分支也是可选的。
b) while语句的语法:
while bool_expression: suite else: else_suite
其中else部分是可选的
c) for...in语句的语法:
for variable in iterable: suite else: suite其中else部分是可选的。iterable是指可以迭代的任意数据类型,例如字符串、列表、元组等等,例如:
cities = ['Beijing', 'Shanghai', 'Guangzhou'] for city in cities: print(city)d) 异常处理的语法:
try: try_suite except exception1 as variable1: exception_suite ... except exceptionN as variableN: exception_suiteN
7 输入和输出
Python 3使用input()函数来获取用户的输入,使用print()函数来讲结果打印到输出。
8 创建函数
创建函数的语法:
def functionName(args): suite其中的args是可选的,如果有多个参数需要使用逗号分隔。每个函数都有返回值,如果没有return语句,默认返回是None。
相关文章推荐
- 《OpenCV 3计算机视觉:Python语言实现》学习笔记——目标跟踪中基本运动检测的思考
- Python学习笔记(二)Python基本要素
- Python语言程序设计-学习笔记2:Python编程之基本方法
- ActionScript3 学习笔记(一) as3语言基本要素
- Python语言学习笔记之基本语法
- Python学习笔记(2):基本概念
- C++ Primer 学习笔记(1) : 基本语言
- Python学习笔记(三)----Python基本语法
- Python源码学习笔记(1 基本数据类型)
- Python学习笔记:02 基础:变量、整数、字符串、赋值、基本输出、注释、代码块
- 学习笔记(7)--对“一道基本的汇编语言题目”的改进
- 简明pyton教程学习笔记 1-5 介绍+安装python+最初的步骤+基本概念+运算符与表达式
- C++ Primer 学习笔记(2) : 基本语言2
- Python学习笔记1--基础篇--基本原书抄写一遍
- Python学习笔记:05 数组的基本用法(Tuple和List)
- python学习笔记【一】--基本概念
- (2011.09.08)《C++ Primer》第一部分学习笔记汇总——基本语言
- python学习笔记(一) 基本数据类型及运算
- python学习笔记6-基本对象和流程语句整理
- 学习python笔记——基本概念