赞
踩
目录
4.2.4 break和continue语句及循环中的else子句
6.1.1.4.1 可更改(mutable)与不可更改(immutable)对象
Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。
1.易于学习:Python 有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。
2.易于阅读:Python 代码定义的更清晰。
3.易于维护:Python的 成功在于它的源代码是相当容易维护的。
4.一个广泛的标准库:Python 的最大的优势之一是丰富的库,跨平台的,在 UNIX、Windows 和 Mac 兼容很好。
5.互动模式:互动模式的支持,可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片段。
6.可移植:基于其开放源代码的特性,Python 已经被移植(也就是使其工作)到许多平台。
7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用 C 或 C++ 完成那部分程序,然后从你的 Python 程序中调用。
8.数据库:Python 提供所有主要的商业数据库的接口。
9.GUI 编程:Python 支持 GUI 可以创建和移植到许多系统调用。
10.可嵌入: 你可以将 Python 嵌入到 C/C++ 程序,让你的程序的用户获得"脚本化"的能力。
默认情况下,Python 3 源码文件以 UTF-8 编码,所有字符串都是 unicode 字符串。 也可以为源码文件指定不同的编码。
第一个字符必须是字母表中字母或下划线 _ 。
标识符的其他的部分由字母、数字和下划线组成。
标识符对大小写敏感。
在 Python 3 中,可以用中文作为变量名,非 ASCII 标识符也是允许的了。
保留字即关键字,我们不能把它们用作任何标识符名称。Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:
- >>> import keyword
-
- >>> keyword.kwlist
-
- ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
单行注释以 # 开头
多行注释可以用多个 # 号,还有 ''' 和 """
python最具特色的就是使用缩进来表示代码块,不需要使用大括号 {} 。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。
Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句。在 [], {}, 或 () 中的多行语句,不需要使用反斜杠 \。
python中数字有四种类型:整数、布尔型、浮点数和复数。
int (整数), 如 1。
bool (布尔), 如 True。
float (浮点数), 如 1.23、3E-2
complex (复数), 如 1 + 2j、 1.1 + 2.2j
Python 中单引号 ' 和双引号 " 使用完全相同。
使用三引号(''' 或 """)可以指定一个多行字符串。
转义符 \。
反斜杠可以用来转义,使用 r 可以让反斜杠不发生转义。 如 r"this is a line with \n" 则 \n 会显示,并不是换行。
按字面意义级联字符串,如 "this " "is " "string" 会被自动转换为 this is string。
字符串可以用 + 运算符连接在一起,用 * 运算符重复。
Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
Python 中的字符串不能改变。
Python 没有单独的字符类型,一个字符就是长度为 1 的字符串。
字符串切片 str[start:end],其中 start(包含)是切片开始的索引,end(不包含)是切片结束的索引。
字符串的切片可以加上步长参数 step,语法格式如下:str[start:end:step]
Python 可以在同一行中使用多条语句,语句之间使用分号 ; 分割
缩进相同的一组语句构成一个代码块,我们称之代码组。
像if、while、def和class这样的复合语句,首行以关键字开始,以冒号( : )结束,该行之后的一行或多行代码构成代码组。
我们将首行及后面的代码组称为一个子句(clause)。
print 默认输出是换行的,如果要实现不换行需要在变量末尾加上 end=""
在 python 用 import 或者 from...import 来导入相应的模块。
将整个模块(somemodule)导入,格式为: import somemodule
从某个模块中导入某个函数,格式为: from somemodule import somefunction
从某个模块中导入多个函数,格式为: from somemodule import firstfunc, secondfunc, thirdfunc
将某个模块中的全部函数导入,格式为: from somemodule import *
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。
Python允许你同时为多个变量赋值。例如:
a = b = c = 1
也可以为多个对象指定多个变量。例如:
a, b, c = 1, 2, "runoob"
Python3 中常见的数据类型有:
Number(数字)
String(字符串)
bool(布尔类型)
List(列表)
Tuple(元组)
Set(集合)
Dictionary(字典)
Python3 的六个标准数据类型中:
不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
此外还有一些高级的数据类型,如: 字节数组类型(bytes)。
Python3 支持 int、float、bool、complex(复数)。
复数由实数部分和虚数部分构成,可以用 a + bj,或者 complex(a,b) 表示, 复数的实部 a 和虚部 b 都是浮点型。
内置的 type() 函数和isinstance( , )可以用来查询变量所指的对象类型。
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加, True==1、False==0 会返回 True,但可以通过 is 来判断类型。
当你指定一个值时,Number 对象就会被创建。
可以使用del语句删除一些对象引用。可以通过使用del语句删除单个或多个对象。
数值运算
+,-,*,/,//,%,**
注:/ 返回一个浮点数,// 返回一个整数。
反斜杠可以用来转义,使用r可以让反斜杠不发生转义。
字符串可以用+运算符连接在一起,用*运算符重复。
Python中的字符串有两种索引方式,从左往右以0开始,从右往左以-1开始。
Python中的字符串不能改变。
Python 支持格式化字符串的输出 。尽管这样可能会用到非常复杂的表达式,但最基本的用法是将一个值插入到一个有字符串格式符 %s 的字符串中。
在 Python 中,字符串格式化使用与 C 中 sprintf 函数一样的语法。
- print ("我叫 %s 今年 %d 岁!" % ('小明', 10))
-
- #我叫 小明 今年 10 岁!
python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。
f-string 称为字面量格式化字符串,是新的格式化字符串的语法。
f-string 格式化字符串以 f 开头,后面跟着字符串,字符串中的表达式用大括号 {} 包起来,它会将变量或表达式计算后的值替换进去,实例如下:
布尔类型只有两个值:True 和 False。
bool 是 int 的子类,因此布尔值可以被看作整数来使用,其中 True 等价于 1。
布尔类型可以和其他数据类型进行比较,比如数字、字符串等。在比较时,Python 会将 True 视为 1,False 视为 0。
布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值。
布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0。
可以使用 bool() 函数将其他类型的值转换为布尔值。以下值在转换为布尔值时为 False:None、False、零 (0、0.0、0j)、空序列(如 ''、()、[])和空映射(如 {})。其他所有值转换为布尔值时均为 True。
列表写在方括号之间,元素用逗号隔开。
和字符串一样,列表可以被索引和切片。
列表可以使用 + 操作符进行拼接。
列表中的元素是可以改变的。
例:翻转字符串
- def reverseWords(input):
-
-
-
- # 通过空格将字符串分隔符,把各个单词分隔为列表
-
- inputWords = input.split(" ")
-
-
-
- # 翻转字符串
-
- # 假设列表 list = [1,2,3,4],
-
- # list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)
-
- # inputWords[-1::-1] 有三个参数
-
- # 第一个参数 -1 表示最后一个元素
-
- # 第二个参数为空,表示移动到列表末尾
-
- # 第三个参数为步长,-1 表示逆向
-
- inputWords=inputWords[-1::-1]
-
-
-
- # 重新组合字符串
-
- output = ' '.join(inputWords)
-
-
-
- return output
-
-
-
- if __name__ == "__main__":
-
- input = 'I like runoob'
-
- rw = reverseWords(input)
-
- print(rw)

可以对列表的数据项进行修改或更新,也可以使用 append() 方法来添加列表项
可以使用 del 语句来删除列表的的元素。
列表比较需要引入 operator 模块的 eq 方法。
- # 导入 operator 模块
-
- import operator
-
-
-
- a = [1, 2]
-
- b = [2, 3]
-
- c = [2, 3]
-
- print("operator.eq(a,b): ", operator.eq(a,b))
-
- print("operator.eq(c,b): ", operator.eq(c,b))
以上代码输出结果为:
operator.eq(a,b): False
operator.eq(c,b): True
元组(tuple)与列表类似,不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。
元组中的元素类型也可以不相同。
虽然tuple的元素不可改变,但它可以包含可变的对象,比如list列表。
构造包含 0 个或 1 个元素的元组比较特殊,所以有一些额外的语法规则:
- tup1 = () # 空元组
-
- tup2 = (20,) # 一个元素,需要在元素后添加逗号。
Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
另外,也可以使用 set() 函数创建集合。
注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。
1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住。
2)键必须不可变,所以可以用数字,字符串或元组充当,而用列表就不行
在 Python3 中,bytes 类型表示的是不可变的二进制序列(byte sequence)。
与字符串类型不同的是,bytes 类型中的元素是整数值(0 到 255 之间的整数),而不是 Unicode 字符。
bytes 类型通常用于处理二进制数据,比如图像文件、音频文件、视频文件等等。在网络编程中,也经常使用 bytes 类型来传输二进制数据。
创建 bytes 对象的方式有多种,最常见的方式是使用 b 前缀:
此外,也可以使用 bytes() 函数将其他类型的对象转换为 bytes 类型。bytes() 函数的第一个参数是要转换的对象,第二个参数是编码方式,如果省略第二个参数,则默认使用 UTF-8 编码。
在隐式类型转换中,Python 会自动将一种数据类型转换为另一种数据类型,不需要我们去干预。
在显式类型转换中,用户将对象的数据类型转换为所需的数据类型。
注:python的赋值语句没有返回值。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。