Python程序设计基础(二)
Python基本语法元素
程序格式框架
缩进
Python语言采用严格的“缩进”来表示程序逻辑。缩进指每行语句开始前的空白区域,用来表示Python程序间的包含和层次关系。
1个缩进 = 4个空格
缩进是Python语言中表明程序框架的唯一手段
代码编写中,缩进可以用Tab
键实现,也可以用多个空格实现(一般是4个空格),但两者不混用。
注释
注释是代码中的辅助性文字,会被编译器或解释器略去,不被计算机执行,一般用于程序员对代码的说明。
Python语言采用#
表示一行注释的开始,多行注释需要在每行开始都使用
注释可以在一行中任意位置通过#
开始,其后面的本行内容被当作注释,而之前的内容仍然是 Python执行程序的一部分
注:‘’‘ Hello World‘‘’,这种前后三个单引号的,也是注释
续行符
Python程序是逐行编写的,每行代码长度并无限制,但从程序员角度,单行代码太长并不利于阅读,因此, Python提供“续行符”将单行代码分割为多行表达。续行符由反斜杠 \
符号表达。
1 | print("{}{}{}".format(\ |
语法元素
变量
变量是保存和表示数据值的一种语法元素,在程序中十分常见。
顾名思义,变量的值是可以改变的,能够通过赋值(使用等号“=”表达)方式被修改
在Python中,变量可以随时命名、随时赋值、随时使用
如:
1 | a = 999 |
命名
给变量或其他程序元素关联名称或标识符的过程称为命名。
Python采用大写字母、小写字母、数字、下划线和汉字等字符及其组合进行命名,但名字的首字符不能是数字,标识符中间不能出现空格,长度没有限制。以下是合法命名的标识符
注:命名时请注意大小写
保留字
保留字( keyword),也称关键字,指被编程语言内部定义并保留使用的标识符。
程序员编写程序不能命名与保留字相同的标识符。每种程序设计语言都有一套保留字,保留字一般用来构成程序整体框架、表达关键值和具有结构性的复杂语义等。

注:Python的保留字对大小写敏感,比如True是保留字,但是true不是
数据类型
Python语言支持多种数据类型,最简单的包括数字类型、字符串类型,略微复杂的包括元组类型、集合类型、列表类型、字典类型等。
数字类型
表示数字或数值的数据类型称为数字类型, Python语言提供3种数字类型:整数、浮点数和复数,分别对应数学中的整数、实数和复数。
整数类型
整数类型与数学中的整数相一致,没有取值范围限制,可正可负。
一个整数值可以表示为十进制、十六进制、八进制和二进制等不同进制形式。
**例如:**整数1010,其各种进制的数据分别如下
十进制:1010
十六进制:0x3F2
八进制:0o1762
二进制:0b01111110010
浮点数类型
浮点数类型与数学中的小数相一致,基本没有取值范围,可正可负。
一个浮点数可以表示为带有小数点的一般形式,也可以采用科学计数法表示。
浮点数只有十进制形式。
例如:
浮点数123.456,两种表示方式如下
一般形式:123.456
科学计数法:1.23456e2
复数类型
复数类型与数学中的复数相一致,采用a+bj
的形式表示,存在实部和虚部。
字符串类型
计算机程序经常用于处理文本信息,文本信息在程序中使用字符串类型来表示。
字符串是字符的序列,在 Python语言中采用一对双引号””或者付单引号括起来的一个或多个字符来表示。其中,双引号和单引号作用相同
序号体系
作为字符序列,字符串可以对其中单个字符或字符片段进行索引。
字符串包括两种序号体系:正向递增序号和反向递减序号

1 | print("Hello World"[1]) #e |
也可以采用[N:M]格式获取字符串的子串,这个操作被形象地称为切片。
[N:M]获取字符串中从N到M(但不包含M)间连续的子字符串,其中,N和M为字符串的索引序号,可以混合使用
1 | print("Hello World"[2:4]) #ll |
Python默认提供的len()
函数获取字符串的长度,一个中文字符和一个西文字符的长度都记为1。
1 | print(len("Hello World")) #11 |
程序的语句元素
表达式
产生或计算新数据值的代码片段称为表达式。
表达式一般由数据和操作符构成。
1 | 1024*32 |
赋值语句
对变量进行赋值的一行代码被称为赋值语句。
在 Python语言中,“=”表示“赋值”,即将号右侧的表达式计算后的结果值赋给左侧变量。
赋值语句的一般形式:
<变量>=<表达式>
1 | a = 1024*32 |
还有一种同步赋值语句,同时给多个变量赋值
基本格式如下:<变量1>,…,<变量N>=<表达式1>,…,<表达式N>
同步赋值会同时运算等号右侧的所有表达式,并一次性且同时将右侧表达式结果分别赋值给左侧的对应变量。
1 | a = 1 |
同步赋值的另一个应用是互换变量的值。
1 | x,y = y,x |
如果不使用同步赋值,那就交换变量时就需要借助临时变量
1 | t = x |
引用
Python程序会经常使用当前程序之外已有的功能代码,这个方法叫引用。
Python语言使用 import
保留字引用当前程序以外的功能库
在前面一章的Python实例中,我们有引用过功能库turtle
(海龟),用于画五角星和七彩圆圈
1 | import turtle #引用turtle库 |
turtle库的一些函数
向前移动
turtle.forward()
turtle.fd()
向后移动
turtle.back()
turtle.bk()
turtle.backward()
向右转(默认单位为度)
turtle.right()
turtle.rt()
向左转
turtle.left()
turtle.lt()
设置填充颜色
turtle.fillcolor()
颜色填充
turtle.begin_fill() 在绘制要填充的形状前调用
turtle.end_fill() 填充上次调用begin_fill()之后绘制的形状
画一个圆
turtle.circle(radius, extent, steps)
radius – 半径(数字)
extent – 范围(数字或None)
steps – 步骤(整数或None)
启动事件循环,即等待下一步指令
turtle.mainloop()
turtle.done()
我们还可以新建一个Python文件,在另一个文件中引用它
新建a.py
,编写代码
1 | def test(): #声明函数 |
新建b.py
,引用a.py
中的test
函数
1 | import a |
分支语句
分支语句是控制程序运行的一种语句,它的作用是根据判断条件选择程序执行路径。
分支语句包括单分支、二分支和多分支。
1 | if<条件>: |
当条件为True时,执行语句块1;当条件为 False时,执行语句块2。其中,if、else都是保留字。
分支语句中,if、else所在行以冒号:
结尾,后续不同分支路径内语句要有缩进。
1 | num = eval(input("输入一个数字:")) |
循环语句
循环语句是控制程序运行的一类重要语句,与分支语句控制程序执行类似,它的作用是根据判断条件确定一段程序是否再执行一次或者多次。
循环语句包括遍历循环和条件循环。
1 | while(<条件>): |
当条件为True(真)时,执行语句块1,然后再次判断条件,当条件为 False(假)时,退出循环执行语句块2。
循环语句中, while所在行以冒号:
结尾,后续循环体中代码要有缩进
1 | n = 3 |
基本输入输出函数
Python语言有3个重要的基本输入、输出函数,用于输入、转换和输出,分别是 input()
、eval()
和 print()
。
input()函数
input函数从控制台获得用户的一行输入,无论用户输入什么内容, input(
)函数都以字符串类型返回结果。
<变量>= input(<提示性文字>)
需要注意,无论用户输入的是字符或是数字, input()
函数统一按照字符串类型输入。
1 | a = input("请输入:") |
eval()函数
eval(a)
函数将去掉字符串a
最外侧的引号,并按照 Python语句方式执行去掉引号后的字符内容
1 | a = eval("1.1") #1.1 |
eval函数去掉了字符串“1.1”最外侧引号,将结果赋值给a,a表示一个浮点数1.1。
eval函数去掉了字符串”1.1+1.1”最外侧引号,对其内容当作 Python语句进行运算,运算结果为2.2,保存到变量b中。
那么如果eval函数中写入英文字符呢
1 | a = eval("abc") |

会报错显示它没有被定义
当eval函数处理字符串abc
时,字符串去掉两个引号后, Python语句将其解释为一个变量,由于之前没有定义过变量abc
,因此解释器报错。
所以我们可以定义变量
1 | abc = 1 |
也可以把abc
加上单引号变为字符串
1 | a = eval("'abc'") |
eval函数经常和input函数一起使用,用来获取用户输入的数字
<变量>=eval(input(<提示性文字>))
1 | a = eval(input("请输入:")) |
print()函数
print()函数用于输出运算结果。有三种用法
第一种,仅用于输出字符串或单个变量
1 | print("Hello") #Hello |
不过在输出字符串表示时,字符串会变成统一的单引号形式
1 | print(["a","b"]) #['a','b'] |
第二种,仅用于输出一个或多个变量
print(<变量1>,<变量2>,…,<变量n>)
输出后,各个变量值用空格分隔
1 | a = 123.456 |
第三种,用于混合输出字符串与变量值
print(<输出字符串模板>format(<变量1>,<变量2>,…,<变量n>))
其中,输出字符串模板采用{}
表示一个槽位,每个槽位对应format()
的一个变量
1 | a,b = 3,5 |
print函数输出文本时默认会在最后增加一个换行,如果不希望在最后增加这个换行或者输出文本后增加其他内容,可以对print函数的end参数进行赋值
print(<待输出内容>,end=”<增加的输出结尾>”)
1 | a = 123 |
Python实例
倒背如流
输入一段文本,倒着输出出来
1 | str1 = input("请输入一段文本:") |
高级切片法
1 | str1 = input("请输入一段文本:") |
扩展:
[1:]–获取从位置1开始后面的字符(默认首位是0)
[:-1]–删除位置为-1的字符(也就是获取从位置0带位置-1之间的字符)
[-1:]–获取位置-1的字符
[::-1]–从最后一个元素到第一个元素复制一遍。(也就是倒序)
[:]–相当于完整复制一份str