第一集:梦的开始
学习目录:
- 基础语法
- 基本数据类型
一.基础语法
A.介绍
- #!/usr/bin/python 的解释:只对 Linux/Unix 用户适用,用来指定本脚本用什么解释器来执行。
- Python 是一种解释型语言: 这意味着开发过程中没有了编译这个环节。类似于PHP和Perl语言。
- Python 是交互式语言: 这意味着,您可以在一个 Python 提示符 >>> 后直接执行代码。
- Python 是面向对象语言: 这意味着Python支持面向对象的风格或代码封装在对象的编程技术。
- Python 是初学者的语言:支持广泛的应用程序开发,从简单的文字处理到 WWW 浏览器再到游戏。
- Python 源代码同样遵循 GPL(GNU General Public License)协议。
GNU通用公共许可协议(英语:GNU General Public License,缩写GNU GPL 或 GPL),是被广泛使用的自由软件许可证,给予了终端用户运行、学习、共享和修改软件的自由。
B.了解
以下为Python命令行参数:
选项 | 描述 |
---|---|
-d | 在解析时显示调试信息 |
-O | 生成优化代码 ( .pyo 文件 ) |
-S | 启动时不引入查找Python路径的位置 |
-V | 输出Python版本号 |
-X | 从 1.6版本之后基于内建的异常(仅仅用于字符串)已过时。 |
-c cmd | 执行 Python 脚本,并将运行结果作为 cmd 字符串。 |
file | 在给定的python文件执行python脚本。 |
单行注释用 #
多行注释用 ‘’’ ‘’’ ,””” “”” ,
缩进不一致,会导致运行错误
C.字符串
1 | #!/usr/bin/python3 |
D.空行
函数之间或类的方法之间用空行分隔,表示一段新的代码的开始;书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。
记住:空行也是程序代码的一部分。
二基本数据类型
A. 多个变量:
1 | a=b=c=d=6 |
可指定多个变量,变量可以是整型,浮点,字符串
1 | a,b,c=1,2.5,"runoob" |
以上实例,两个整型和浮点型对象 1 和 2.5的分配给变量 a 和 b,字符串对象 “runoob” 分配给变量 c。
B. Python3 的六个标准数据类型中:
- 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
- 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。
此外还有一些高级的数据类型,如: 字节数组类型(bytes
C. NUMBER:
Python3 支持 int、float、bool、complex(复数)
在Python 3里,只有一种整数类型 int,表示为长整型,没有 python2 中的 Long。
像大多数语言一样,数值类型的赋值和计算都是很直观的。
内置的 type() 函数可以用来查询变量所指的对象类型。
此外还可以用isinstance查询
isinstance 和 type 的区别在于:
type()不会认为子类是一种父类类型。
isinstance()会认为子类是一种父类类型。
D注意:Python3 中,bool 是 int 的子类,True 和 False 可以和数字相加,True==1、False==0 会返回 True,但可以通过is 来判断类型
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15issubclass(bool, int)
True
True==1
True
False==0
True
True+1
2
False+1
1
1 is True
False
0 is False
False
# 在 Python2 中是没有布尔型的,它用数字 0 表示 False,用 1 表示 True在 Python 中,
>>>
是交互式解释器的提示符,表示你可以输入 Python 代码。它通常出现在 Python Shell 或终端中,提示用户输入命令或表达式。Python Shell 是一个交互式环境,允许用户输入 Python 代码并立即查看执行结果
当你指定一个值时,Number 对象就会被创建:
1
2var1 = 1
var2 = 10删除用del语句用法:
1
2
3
4del var1[,var2[,var3[....,varN]]]
# 也可以删单个或多个对象
del var
del var_a, var_bD. 数值运算:
1
2
3
4
5
6
7
8
9
10
11
12
13
145 + 4 # 加法
9
4.3 - 2 # 减法
2.3
3 * 7 # 乘法
21
2 / 4 # 除法,得到一个浮点数
0.5
2 // 4 # 除法,得到一个整数
0
17 % 3 # 取余
2
2 ** 5 # 乘方
32数值的除法包含两个运算符:/* 返回一个浮点数,**//** 返回一个整数*
E. 数值类型:int,float,complex,
在 Python 中,
complex
是一个内置的数据类型,用于表示复数。复数由一个实部和一个虚部组成,形式为
a + bj
,或者 complex(a,b) 表示,其中a
是实部,b
是虚部,j
是虚数单位(在数学中通常用i
表示,但 Python 使用j
)complex例如:
int float complex 10 0.0 3.14j 100 15.20 45.j -786 -21.9 9.322e-36j 080 32.3e+18 .876j -0490 -90. -.6545+0J -0x260 -32.54e100 3e+26J 0x69 70.2E-12 4.53e-7j F. bool(布尔值):
布尔类型即 True 或 False
布尔类型可以用来控制程序的流程,比如判断某个条件是否成立,或者在某个条件满足时执行某段代码
布尔类型可以和别的类型比较,true视为1,false视为0
布尔类型可以和逻辑运算符一起使用,包括 and、or 和 not。这些运算符可以用来组合多个布尔表达式,生成一个新的布尔值
布尔类型也可以被转换成其他数据类型,比如整数、浮点数和字符串。在转换时,True 会被转换成 1,False 会被转换成 0
可以使用
bool()
函数将其他类型的值转换为布尔值1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38# 布尔类型的值和类型
a = True
b = False
print(type(a)) # <class 'bool'>
print(type(b)) # <class 'bool'>
# 布尔类型的整数表现
print(int(True)) # 1
print(int(False)) # 0
# 使用 bool() 函数进行转换
print(bool(0)) # False
print(bool(42)) # True
print(bool('')) # False
print(bool('Python')) # True
print(bool([])) # False
print(bool([1, 2, 3])) # True
# 布尔逻辑运算
print(True and False) # False
print(True or False) # True
print(not True) # False
# 布尔比较运算
print(5 > 3) # True
print(2 == 2) # True
print(7 < 4) # False
# 布尔值在控制流中的应用
if True:
print("This will always print")
if not False:
print("This will also always print")
x = 10
if x:
print("x is non-zero and thus True in a boolean context")注意: 在 Python 中,所有非零的数字和非空的字符串、列表、元组等数据类型都被视为 True,只有 0、空字符串、空列表、空元组等被视为 False。因此,在进行布尔类型转换时,需要注意数据类型的真假性。
G. 列表: 列表中的数可以改变
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15#!/usr/bin/python3
list = [ 'abc', 595 , 2.99, 'runoob', 30.2 ] # 定义一个列表
tinylist = [123, 'runoob']
print (list) # 打印整个列表
print (list[0]) # 打印列表的第一个元素
print (list[1:3]) # 打印列表第二到第四个元素(不包含第四个元素)
print (list[2:]) # 打印列表从第三个元素开始到末尾
print (tinylist * 2) # 打印tinylist列表两次
print (list + tinylist) # 打印两个列表拼接在一起的结果
# 翻转字符串
# 假设列表 list = [1,2,3,4],
# list[0]=1, list[1]=2 ,而 -1 表示最后一个元素 list[-1]=4 ( 与 list[3]=4 一样)注意:
1、列表写在方括号之间,元素用逗号隔开。
2、和字符串一样,列表可以被索引和切片。
3、列表可以使用 + 操作符进行拼接
H. 翻转字符串:
1 | def reverseWords(input): |
I. 元组:
1 | #!/usr/bin/python3 |
注意:
- 1、与字符串一样,元组的元素不能修改。
- 2、元组也可以被索引和切片,方法一样。
- 3、注意构造包含 0 或 1 个元素的元组的特殊语法规则。
- 4、元组也可以使用 + 操作符进行拼接
J. set(集合):
Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔
注意:创建一个空集合必须用 set() 而不是 **{ }**,因为 { } 是用来创建一个空字典。
创建格式:
1
2
3parame = {value01,value02,...}
或者
set(value)例子:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26#!/usr/bin/python3
sites = {'Google', 'Taobao', 'Runoob', 'Facebook', 'Zhihu', 'Baidu'}
print(sites) # 输出集合,重复的元素被自动去掉
# 成员测试
if 'Runoob' in sites :
print('Runoob 在集合中')
else :
print('Runoob 不在集合中')
# set可以进行集合运算
a = set('abracadabra')
b = set('alacazam')
print(a)
print(a - b) # a 和 b 的差集
print(a | b) # a 和 b 的并集
print(a & b) # a 和 b 的交集
print(a ^ b) # a 和 b 中不同时存在的元素K. 字典:
字典(dictionary)是Python中另一个非常有用的内置数据类型
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型,在同一个字典中,键(key)必须是唯一的。
1
2
3
4
5
6
7
8
9
10
11
12
13
14#!/usr/bin/python3
dict = {}
dict['one'] = "1 - 菜鸟教程"
dict[2] = "2 - 菜鸟工具"
tinydict = {'name': 'runoob','code':1, 'site': 'www.runoob.com'}
print (dict['one']) # 输出键为 'one' 的值
print (dict[2]) # 输出键为 2 的值
print (tinydict) # 输出完整的字典
print (tinydict.keys()) # 输出所有键
print (tinydict.values()) # 输出所有值注意:
1、字典是一种映射类型,它的元素是键值对。
2、字典的关键字必须为不可变类型,且不能重复。
3、创建空字典使用 **{ }**。
L. python的数据类型转换:
有时候,我们需要对数据内置的类型进行转换,数据类型的转换,你只需要将数据类型作为函数名即可
以下几个内置的函数可以执行数据类型之间的转换。这些函数返回一个新的对象,表示转换的值。
函数 | 描述 |
---|---|
int(x [,base]) | 将x转换为一个整数 |
float(x) | 将x转换到一个浮点数 |
complex(real [,imag]) | 创建一个复数 |
str(x) | 将对象 x 转换为字符串 |
repr(x) | 将对象 x 转换为表达式字符串 |
eval(str) | 用来计算在字符串中的有效Python表达式,并返回一个对象 |
tuple(s) | 将序列 s 转换为一个元组 |
list(s) | 将序列 s 转换为一个列表 |
set(s) | 转换为可变集合 |
dict(d) | 创建一个字典。d 必须是一个 (key, value)元组序列。 |
frozenset(s) | 转换为不可变集合 |
chr(x) | 将一个整数转换为一个字符 |
ord(x) | 将一个字符转换为它的整数值 |
hex(x) | 将一个整数转换为一个十六进制字符串 |
oct(x) | 将一个整数转换为一个八进制字符串 |