Python语言基本语法元素

时间:2024-10-09 07:20:18

Python语言基本语法元素

考纲考点

程序的基本语法元素:程序的格式框架、缩进、注释、变量、命名、保留字、数据类型、赋值语句、引用

程序的格式框架

缩进

Python语言采用严格的“缩进”来表明程序的格式框架。缩进指每行代码
开始前的空白区域,用来耘示代码之间的包含和层欠关系。
1个缩进 = 4个空格
缩进是 Python语言中表明程序框架的唯一手段
当表达分支、循环暾数类等程序含义时,在讦、 while、for、def、 class等保留字所在完整语句后通过英文冒号(:)结尾并在之后进行缩进,表明后续代码与紧邻无縮进语句的所属关系

注释

Python语言采用#表示一行注释的开始,多行注释需要在每行开始都使用#。
Python程序中的非注释语句将按顺序执行注释语句将被解释器过滮掉,不被执行。注释般用于在代码中标明作者和版权信息,或解释代码原理及用途,或通过注释单行代码辅助程序调试。

语法元素的名称

变量

变量是保存和表示数据值的一种语法元素在程序中十分常见。顾名思义
变量的值是可以改变的,能够通过赋值(使用等号=表达)方式被修改,例如:

a=99
print(a)
100
  • 1
  • 2
  • 3
'
运行

命名

Python语言允许采用大写字母、小写字母、数字、下划线O和汉字等字符及其组合给变量命名,但名字的首字符不能是数字,中间不能出现空格,长度没有限制,保留字不能作为变量。
注意:标识符对大小写敏感, python和 Python是两个不同的名字

保留字
保留字,也称为关键字,指被编程语言內部定义并保留使用的标识符。
程序员编写程序不能定义与保留字相同的标识符。
每种程序设计语言都有一套保留字,保留字一般用来构成程序整体框架、表达关键值和具有结构性的复杂语义等。
掌握一门编程语言首先要熟记其所对应的保留字。

保留字列表

保留字 说明
and 用于表达式运算、逻辑与操作
as 用于类型转换
assert 断言,用于判断变量或条件表达式的值是否为真
break 中断循环语句的执行
class 用于定义类
continue 继续执行下一次循环
def 用于定义函数或方法
del 删除变量或序列的值
elif 条件语句与if、else结合使用
else 条件语句,与if、elif结合使用。也可以用于异常和循环语句
except 包含捕获异常后的操作代码块,与try,finally结合使用
exec 用于执行Python语句
for for循环语句
finally 用于异常语句,出现异常后仍继续执行finally包含的语句块。与try、except结合使用
form 用于引入模块,与import结合使用
global 定义全局变量
if 条件语句,与else,elif结合使用
import 用于导入模块,与form结合使用
in 判断变量是否在序列中
is 判断变量是否为某个类的实例
lambda 定义匿名函数
not 用于表达式运算,逻辑非操作
or 用于表达式运算,逻辑或操作
pass 空的类,方法或函数的占位符
print 打印语句
raise 异常抛出操作
return 用于函数返回计算结果
try try包含可能会出现异常的语句,与expect,finally结合使用
while 循环语句
with 简化Python语句
yield 用于从函数依次返回值
数据类型

数据类型概述

Python语言支持多种数据类型,最简单的包括数字类型、字符串类型、略微复杂的包括元组类型、复合类型、列表类型、字典类型等。

数字类型

表示数字或数值的数据类型称为数字类型,
Python语言提供3种数字类型:整数、浮点数和复数,分别对应数学中的整数、实数和复数。
一个整数值可以表示为十进制、十六进制、八进制和二进制等不同进制形式
十进制:1010
十六进制:0x3F2
八进制:0o1762
二进制:0b00111110010
一个浮点数可以表示为带有小数点的一般形式,也可以采用科学计数法表示。例如:浮点数123.456,两种表示方式如下:
一般形式:123.456
科学计数法:123456e2
复数类型与数学中的复数相—致,采用a+bj的形式表示,存在实部和虚部。

字符串

Python语言中,字符串是用两个双引号“"或者单引号′′括起来的
一个或多个字符。
Python字符串的两种序号体系
在这里插入图片描述

正向递增序号
如果字符串长度为L,正向递增需要以最左侧字符序号为0,向右依次递增,最右侧字符序号为L-1;反向递减序号以最右侧字符序号为-1,向左依次递减,最左侧字符序号为

“对酒当歌人生几何?”[1]

“对酒当歌人生几何?”[-1]

?

可以采用[N:M]格式获取字符串的子串,这个操作被形象地称为切片。[N:M]获取字符串中从N到M(但不包含M)间连续的子字符串。

“譬如朝露,去日苦多。”[2:4]
朝露
“譬如朝露,去日苦多。”[5:2]
去日苦
可以通过 Python默认提供的len0函数获取字符串的长度,一个中文字
符和西文字符的长度都记为1。
len(“譬如朝露,去日苦多。”)

10
len hello World")

11

程序的语句元素

表达式

产生或计算新数据值的代码片段称为表达式。表达式类似数学中的计算公式,以表达单一功能为目的,运算后产生运算结果,运算结果的类型由操作符或运算符决定。
表达式一般由数据和操作符等构成,这是构成 Python语句的重要部分。
赋值语句

Python语言中,=表示“赋值”,即将等号右侧的值计算后将结果值赋给左侧变量,包含等号(=)的语句称为“赋值语句“
<变量> = <表达式>
同步赋值语句:同时给多个变量赋值
<变量1>,…<变量N>=<表达式1>,…,<表达式N>
例:将变量X和y交换
采用单个赋值,需要3行语句:
即通过一个临时变量t缓存ⅹ的原始值,然后将y值赋给ⅹ,再将ⅹ的原始值通过t赋值给y。
在这里插入图片描述
引用

Python程序会经常使用当前程序之外已有的功能代码,这个过程叫“引用"。 Python语言使用
import保留字引用当前程序以外的功能库,使用方式如下
Import<功能库名称>
引用功能库之后,采用<功能库名称>.<函数名称>()方式调用具体功能。
在这里插入图片描述

其他语句

除了赋值语句外, Python程序还包括一些其他的语句类型,例如,分支语句和循环语句等。更多的分支和循环内容将在第4章介绍。这里仅简要介绍这两类语句的基本使用。

分支语句

分支语句是控制程序运行的一种语句,它的作用是根据判断条件选择程序执行路径。分支语句包括:单分支、二分支和多分支。
单分支语句是最简单的分支语句,使用方式如下:

"""
if<条件>:
	<语句块>
"""
#判断输入整数是否在D,100]之间
num=eval( input("请输入一个整数:")
if 0<=num<=100: #判断[0,100]
	print("输入整数在0到100之间(含)")
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

循环语句

循环语句是控制程序运行的一类重要语句,与分支语句控制程序执行类似,它的作用是根据判断条件确定一段程序是否再次执行一次或者多次。循环语句包括遍历循环和条件循环

"""
while(<条件>):
    <语句块1>
    <语句块2>
"""
# 输出10到100步长为3的全部整数
n = 10
while n < 100:
    print(n, end=" ")
    n = n + 3
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
'
运行
基本输入输出函数

input()函数
在这里插入图片描述

eval()函数
在这里插入图片描述

print()函数

print()函数用于输出运算结果,根据输出内容不同,有三种用法。
在这里插入图片描述

实例解析

计算机程序是机械记忆的高手,下面将编写一段程序,获得用户输入,采用倒序的方式将输入内容输出出来。示例:

输入:To be or not to be,that’s a question.——莎士比亚

输出:亚比士莎——.noitseuq a s’taht,eb ot ton ro eb oT

以下给出了一种实现,采用正向递增序号,利用len()函数将i设为最后一个字符的索引序号,然后逐次输出至第一个字符。

s = input("请输入一段文本:")
i = len(s) - 1
while i >= 0:
    print(s[i],end="")
    i = i - 1
  • 1
  • 2
  • 3
  • 4
  • 5
'
运行

给出另一种实现,采用反向递减序号,将i首先设置为-1,直接索引最后一个字符,然后逐次输出至第一个字符。

s = input("请输入一段文本:")
i = -1
while i >= -1*len(s):
    print(s[i],end(""))
i = i - 1
  • 1
  • 2
  • 3
  • 4
  • 5
# 获取用户输入的一段文字,将这段文字进行垂直输出
s = input("请输入一段文本:")
i = -1 * len(s)
while i <= -1:
    print(s[i])
    i = i + 1
    
# 获取用户输入的一个实数,并提取小数部分
a = eval(input("请输入实数:"))
b = int(a)
c = a - b
print("{}".format(round(c,s)))

# 时针代码
import turtle
import datetime

"""抬起画笔,向前运动一段距离后放下"""


def Skip(distance):
    turtle.penup()
    turtle.forward(distance)
    turtle.pendown()


def mkHand(name, length):
    # 注册Turtle形状,建立表针Turtle
    turtle.reset()
    Skip(-length * 0.1)
    # 开始记录多边形的顶点。当前乌龟位置是多边形的第一个顶点。
    turtle.begin_poly()
    turtle.forward(length * 1.1)
    # 停止记录多边形的顶点。当前乌龟位置是多边形的最后一个顶点,将与第一个顶点相连。
    turtle.end_poly()
    # 返回最后记录的多边形。
    handForm = turtle.get_poly()
    turtle.register_shape(name, handForm)


def Init():
    global secHand, minHand, hurHand, printer
    # 重置Turtle指向北
    turtle.mode("logo")
    # 建立三个表针Turtle并初始化
    mkHand("secHand", 135)
    mkHand("minHand", 125)
    mkHand("hurHand", 90)
    secHand = turtle.Turtle()
    secHand.shape("secHand")
    minHand = turtle.Turtle()
    minHand.shape("minHand")
    hurHand = turtle.Turtle()
    hurHand.shape("hurHand")
    for hand in secHand, minHand, hurHand:
        hand.shapesize(1, 1, 3)
        hand.speed(0)
    # 建立输出文字 Turtle
    printer = turtle.Turtle
    # 隐藏画笔的 turtle形状
    turtle.hideturtle()
    turtle.penup()


def SetupClock(radius):
    # 建立表的外框
    turtle.reset()
    for i in range(60):
        Skip(radius)
        if i % 5 == 0:
            turtle.pensize(7)
            turtle.forward(20)
            # Skip(-radius - 20)
            # Skip(radius + 20)
            if i == 0:
                turtle.write(int(12), align="center", font=("Courier", 14, "bold"))
            elif i == 25 or i == 30 or i == 35:
                Skip(25)
                turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))
                Skip(-25)
            else:
                turtle.write(int(i / 5), align="center", font=("Courier", 14, "bold"))
            Skip(-radius - 20)
        else:
            turtle.pensize(1)
            turtle.dot(5)
            Skip(-radius)
        turtle.right(6)


def Week(t):
    week = ["星期一", "星期二", "星期三", "星期四", "星期五", "星期六", "星期日"]
    return week[t.weekday()]


def Date(t):
    y = t.year
    m = t.month
    d = t.day
    return "%s %d %d" % (y, m, d)


def Tick():
    # 绘制表针动态显示
    t = datetime.datetime.today()
    second = t.second + t.microsecond * 0.000001
    minute = t.minute + second / 60
    hour = t.hour + minute / 60
    secHand.setheading(6 * second)
    minHand.setheading(6 * minute)
    hurHand.setheading(30 * hour)
    turtle.tracer(False)
    turtle.forward(65)
    turtle.write(Week(t), align="center", font=("Courier", 14, "bold"))
    turtle.back(130)
    turtle.write(Date(t), align="center", font=("Courier", 14, "bold"))
    turtle.home()
    turtle.tracer(True)
    # 100ms后继续调用tick
    turtle.ontimer(Tick, 100)


def main():
    # 打开/关闭龟动画,并继续更新图纸设置延迟。
    turtle.tracer(False)
    Init()
    SetupClock(160)
    turtle.tracer(True)
    Tick()
    turtle.mainloop()


if __name__ == "__main__":
    main()

  • 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
  • 39
  • 40
  • 41
  • 42
  • 43
  • 44
  • 45
  • 46
  • 47
  • 48
  • 49
  • 50
  • 51
  • 52
  • 53
  • 54
  • 55
  • 56
  • 57
  • 58
  • 59
  • 60
  • 61
  • 62
  • 63
  • 64
  • 65
  • 66
  • 67
  • 68
  • 69
  • 70
  • 71
  • 72
  • 73
  • 74
  • 75
  • 76
  • 77
  • 78
  • 79
  • 80
  • 81
  • 82
  • 83
  • 84
  • 85
  • 86
  • 87
  • 88
  • 89
  • 90
  • 91
  • 92
  • 93
  • 94
  • 95
  • 96
  • 97
  • 98
  • 99
  • 100
  • 101
  • 102
  • 103
  • 104
  • 105
  • 106
  • 107
  • 108
  • 109
  • 110
  • 111
  • 112
  • 113
  • 114
  • 115
  • 116
  • 117
  • 118
  • 119
  • 120
  • 121
  • 122
  • 123
  • 124
  • 125
  • 126
  • 127
  • 128
  • 129
  • 130
  • 131
  • 132
  • 133
  • 134
  • 135