1 基本算数运算和逻辑运算
算数运算包括加减乘除、乘方、求余数,使用方法和C语言等基本相似,唯一新方法是乘方,Python的乘方使用 **
表示:
3**2 # *这个表示3的平方*
除此之外,字符串也有新的运算:
"hello" + "world !" # 运用加法可以连接字符串
"hello~" * 2 # 运用乘法可以连续输出字符串,这里指连续输出两次
逻辑运算就是基本的与、或、非三种。Python用and
表示与;用or
表示或;用not
表示非,真用Ture
表示,假用False
表示(注意开头字母必须大写)。逻辑运算和输出结果符合逻辑学的基本运算准则。
True or False # 结果为True
True and False # 结果为False
not True # 结果为False
比较运算包括大于(>
)、大于等于(>=
)、小于(<
)、小于等于(<=
)、等于(=
)、不等于(!=
)这几种,也符合逻辑运算准则。
7>8 # 结果为False
10<=10 # 结果为True
2==3 # 结果为False
2 变量的使用
一般我们都需要书写大规模应用程序,所以需要储存中间数据。程序语言采用变量的声明和定义来储存数据。Python采用动态调用,所以无需声明即可直接定义(赋值)。定义时可以采用算术运算对变量赋值,赋值时可以使用其他已定义的变量。我们可以使用print
函数打印变量结果到控制台。
a2 = 3**2
b2 = 4**2
c2 = a2 + b2 # 典型勾股定理赋值
print(c2) # 输出结果到控制台
Python变量有许多数据类型,和C类似,包括<u>整形、浮点型、字符串、布尔型</u>。Python会自动是被并存储定义的变量,无需声明类型,这减少了代码的复杂度。
a = 1 # 整形
b = 2.1 # 浮点型
c = "hello world !" # 字符串
d = True # 布尔
print(a, b, c, d) # 连续输出
3 条件语句
条件语句也成为分支语句,在Python中使用if
完成,主要让计算机在不同的情况下执行不同的程序。计算机通过判断if
条件语句的逻辑运算结果来决定执行什么代码。此外,Python为了整洁易读,摒弃了C语言中每条语句的分号,条件判断的小括号,还有确定域生命周期的大括号,采用冒号和tab符来表示。下面举例:
if love==Ture:
print("you fall in love !")
显然一个条件判断不够,我们还需要其他分支,Python中使用elif
表示。还有一个“其他情况”的分支,用else
表示。
if love==True:
print("you fall in love !")
elif love==False:
print("you are not in love with anyone !")
else :
print("impossible !")
4 循环语句
Python采用for
做循环语句,后跟定义的变量,之后跟in
,in
后跟要循环的对象。这里介绍一下range(from, to, step)
函数,他可以生成for循环的从from
到to-1
以step
为步长的数字序列。如果只写一个数字,则代表0到这个数字减1的一个序列。例如
range(0, 5, 2) # 表示序列:0 2 4
range(4) # 表示序列:0 1 2 3
所以我们根据for
循环的语法,写一个简单的例子:
for i in range(0, 5, 2) :
print(i) # 表示遍历输出0 2 4 这个序列
range
函数还可以作为“次数”的意义来循环,如:
for i in range(5) # 可以做 5次循环
print(" 第 ", i+1, " 次输出 ")
此外Python还有while循环,使用方法和C类似,首先需要先判断条件语句的逻辑结果,如果为True
就执行,我们可以将上述循环次数用while
循环代替:
i=1
while i<5 :
print(" 第", i, "次输出 ")
i = i+1
Python中断循环的方法和C类似,有两种。用break
表示直接跳出当前for
循环;用continue
表示跳出当前for
循环的一轮循环,直接开始下一轮循环。
5 其他结构数据类型
为了可以更方便的表示数据,Python提供了很多数据结构,包括列表、元组、集合、词典下面一一讲解。
列表是一个由许多数据组合而成的大杂烩,定义列表用逗号隔开,外面用中括号括起。逗号隔开的每一个叫做元素,只要在定义时利用逗号确定位置,如果不更改便不会自己改变,因此可以利用向量确定列表的位置 。每一个列表内还可以继续嵌套列表,比如在一个列表中存在一个字符串,则这个字符串可以看做一个列表,可以用二维向量表示他的位置。下面举例说明:
li = [1,2,2,3,True,"lalala",[4,5,6]] # 定义列表,其中有嵌套(包括字符串和嵌套列表)
print(li[1]) # 输出列表的第二个元素2
print(li[5][0]) # 输出列表第六个元素字符串的第一个元素'l'
print(li[6]) # 输出列表第七个元素,也就是这个嵌套列表所有内容
此外Python还可以列表还可以利用冒号输出指定范围的元素,更加创新的采用类似MATLAB矩阵的方法,可以采用步长,负数代表反向步长。而位置也可以用负数,代表倒数位置减一的位置。下面举例:
li = [0,1,2,3,4,5,6] # 定义列表
print(li[-1]) # 输出倒数第一个元素6(如果中括号内有冒号,则将位置减一)
print(li[:3]) # 输出下标0到2的元素0 1 2
print(li[4:]) # 输出下标为4到最后(6)的元素4 5 6
print(li[4:-1]) # 输出下标4到倒数第二个(5)的元素4 5
print(li[0:5:2]) # 以步长2输出下标0到4的元素0 2 4
print(li[0:5:-2]) # 以步长2逆序输出下标0到4元素4 2 0
print(li[::-1]) # 逆序输出所有元素6 5 4 3 2 1 0
元组同样可以表示元素的大杂烩,其还可以作为函数多值输出的一种解决方案。唯一和列表不同的是元组一旦定义完毕就不能修改。元组也可以和列表一样确定位置。元组定义采用小括号,元素之间用逗号隔开。下面举例:
tup = (1,2,3,4,"lalala",[7,8,9]) # 定义元组
print(tup[1]) # 输出下标1的元素2
集合同样可以表示元素的大杂烩,和列表不同的是它不能出现相同元素,且元素没有顺序,因此集合不能表示元素位置。集合定义采用大括号,元素用逗号隔开。下面举例:
set = {1,2,3,"lalala"} # 集合的定义
注意,set
是一个函数,本章会讲。在这里告诉我们,与函数重名依然可以拿来做变量使用,但注意变量名一定不能和关键字重名。
词典是一个保存键值集合的数据结构,通过键,我们可以找到其对应的值。定义词典,在键值之间用冒号隔开,每个键值对用逗号隔开,最后用大括号括起。注意词典也是无序的,所以无法确定位置。下面举例对字典增删改查:
dic = {"tim":23,"alice":18} # 定义年龄字典
print(dic["alice"]) # 查看alice的年龄
dic["alice"] = 20 # 修改alice的年龄
dic["malisa"] = 23 # 增加malisa的年龄
del dic["malisa"] # 删除malisa的年龄
这几个数据结构都可以利用函数相互转化,但是转化后会根据该数据结构特性有不可逆的变化,这有时会提供便利。比如我想去除字符串中重复的字符,可以把字符串转换成集合后再转换成列表即可。转换为列表用list
,转换为元组用tuple
,转换为集合用set
。另外每个数据结构都有许多方便的函数可以使用,读者可以自行查阅并学习。
实例代码请看我的码云:第二章样例代码