Python语言基本语法元素
活动地址:CSDN21天学习挑战赛
前言
上一节,我们学习Python语言程序设计的基本方法,知道什么了是程序设计语言,了解了Python语言的发展及特点,并进行Python开发环境的搭建以及Python集成开发环境PyCharm的安装及模板设置.
本节我们将学习Python语言的基本语法元素。包括Python程序的格式框架,语法元素名称,数据类型和语句元素以及基本的输入输出函数。
文章目录
- 前言
- Python语言基本语法元素
Python语言基本语法元素
一、程序的格式框架
程序的格式框架,即段落格式,是Python
语法的一部分,可以提高代码的可读性和可维护性。
1.缩进
Python语言采用严格的缩进来表示程序逻辑。也就是我们所说的Python程序间的包含与层次关系。一般代码不要求缩进,顶行编写且不留空白。在if、while、for、def、class
等保留字所在完整语句后通过英文的“:
”结尾并在之后行进行缩进,表明后续代码与紧邻无缩进语句的所属关系。
缩进可以用Tab
键实现,也可以用多个空格实现(一般是4个空格
),但两者不能混用。建议采用4个空格方式书写代码。
for i in range(1, 10): for j in range(1, i+1): print(i, '*', j, '=', i*j, end='\t') print()
当程序执行时,产生了“unexpected indent
”错误,说明代码中出现了缩进不匹配的问题。
2.注释
注释是代码中的辅助性文字,会被编译器或解释器略去,不被计算机执行,一般用于程序员对代码的说明。Python语言中使用“#
”表示一行注释的开始。注释可以在一行中任意位置通过“#
”开始,其后面的本行内容被当作注释,而之前的内容依然是Python执行程序的一部分。
注释的作用:
- 注释一般用于在代码中标明作者和版权信息
- 解释代码原理和用途
- 通过注释单行代码辅助程序调试。
# -*- coding: utf-8 -*-# @File : demo.py# @author: Flyme awei # @email : 1071505897@qq.com# @Time : 2022/8/2 13:40# 单行注释'''多行注释'''"""多行注释"""
3.续行符
Python程序是逐行编写的,每行代码长度并无限制,但从程序员角度,单行代码太长并不利于阅读。这个时候就可以使用续行符将单行代码分割为多行表达。
Python中的续行符为“\
”。续行符之后不允许再存在空格,即续行符后直接换行。
print("云南的城市有{}\n{}\n{}\n{}".format('昆明',\ '曲靖',\ '大理',\ '丽江'))
二、语法元素的名称
Python语言的基本单位是单词,少部分单词是Python语言规定的,被称为保留字。大部分单词是用户自己定义的,通过命名过程形成了变量或函数,用来代表数据或代码,称为标识符。
1.变量
变量是保存和表示数据值的一种语法元素,变量的值是可以改变的,通过赋值运算符“=
”方式被修改。Python语言中,变量可以随时命名、随时赋值、随时使用。
由三部分组成:
"""标识: id类型: type值:value """
多次赋值后将指向新的空间
name = 'hello' # 值print(id(name)) # 标识print(type(name)) # 类型name = 'world'print(name)
2.保留字
保留字也称keyword关键字,被编程语言内部定义并保留使用的,每种程序设计语言都有一套保留字,保留字一般用来构成程序的整体框架,Python3.x
中一共有35个保留字。
Python3.x中的35个保留字
andasassertasyncawaitbreakclass continuedefdelelifelseexceptFalse finallyforfrom globalif importin is lambdaNonenonlocalnotorpass raisereturnTruetry while with yield
Python二级考试涉及到的保留字一共有22个。选学5个:None、finally、lambda、pass、with。
Python中的保留字也是大小写敏感的。举例:True
为保留字,而true
则不是保留字。
3.标识符
标识符可以简单的理解为一个名字,主要用来标识变量、函数、类、模块和其他对象的名称。
标识符的命名规则
- 字母、数字、下划线
- 不能以数字开头
- 不能是Python中的保留字
- 只允许使用
ISO-Latin(ISO-8859-1)
字符集中的A-Z
和a-z
- 允许使用中文,但不建议
- 注意:标识符对大小写敏感,
name
和Name
是两个不同的名字。
三、数据类型
1.二进制与字符编码
二进制是一套计数方法,每个位置上的数有 2 种可能(0 - 1);二进制是计算机的执行语言,但是早在计算机出现前就存在这套计数方法,最早可追溯到古埃及。在日常生活中,我们使用的是十进制,每个位置上的数有 10 种可能(0 - 9)。
早期的程序员爸爸为了让计算机能够认识我,将我能够认识的符号和数字对应好,然后做成一张表叫ASCII
表,告诉计算机某种符号你应该使用哪个整数表示,A
使用了8个位(置)才能装得下我,在计算机中他们叫一个字节。
ASCII 码使用指定的 7 位或 8 位二进制数组合来表示 128 或 256 种可能的字符。标准 ASCII 码也叫基础ASCII码,使用 7 位二进制数来表示所有的大写和小写字母,数字 0 到 9、标点符号, 以及在美式英语中使用的特殊控制字符。其中:
0~31及127(共33个)是控制字符或通信专用字符(其余为可显示字符),如控制符:LF(换行)、CR(回车)、FF(换页)、DEL(删除)、BS(退格)、BEL(振铃)等;通信专用字符:SOH(文头)、EOT(文尾)、ACK(确认)等;ASCII值为 8、9、10 和 13 分别转换为退格、制表、换行和回车字符。它们并没有特定的图形显示,但会依不同的应用程序,而对文本显示有不同的影响。
32~126(共95个)是字符(32sp是空格),其中48~57为0到9十个阿拉伯数字;
65~90为26个大写英文字母,97~122号为26个小写英文字母,其余为一些标点符号、运算符号等。
同时还要注意,在标准ASCII中,其 最高位(b7) 用作奇偶校验位。所谓奇偶校验,是指在代码传送过程中用来检验是否出现错误的一种方法,一般分奇校验和偶校验两种。奇校验规定:正确的代码一个字节中 1 的个数必须是奇数,若非奇数,则在最高位 b7 添1;偶校验规定:正确的代码一个字节中1的个数必须是偶数,若非偶数,则在最高位 b7 添1。
后128个称为扩展ASCII码,目前许多基于x86的系统都支持使用扩展(或“高”)ASCII。扩展 ASCII 码允许将每个字符的第 8 位用于确定附加的 128 个特殊符号字符、外来语字母和图形符号。
ASCII码表
ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 | ASCII值 | 控制字符 |
---|---|---|---|---|---|---|---|
0 | NUT | 32 | (space) | 64 | @ | 96 | 、 |
1 | SOH | 33 | ! | 65 | A | 97 | a |
2 | STX | 34 | ” | 66 | B | 98 | b |
3 | ETX | 35 | # | 67 | C | 99 | c |
4 | EOT | 36 | $ | 68 | D | 100 | d |
5 | ENQ | 37 | % | 69 | E | 101 | e |
6 | ACK | 38 | & | 70 | F | 102 | f |
7 | BEL | 39 | , | 71 | G | 103 | g |
8 | BS | 40 | ( | 72 | H | 104 | h |
9 | HT | 41 | ) | 73 | I | 105 | i |
10 | LF | 42 | * | 74 | J | 106 | j |
11 | VT | 43 | + | 75 | K | 107 | k |
12 | FF | 44 | , | 76 | L | 108 | l |
13 | CR | 45 | - | 77 | M | 109 | m |
14 | SO | 46 | . | 78 | N | 110 | n |
15 | SI | 47 | / | 79 | O | 111 | o |
16 | DLE | 48 | 0 | 80 | P | 112 | p |
17 | DCI | 49 | 1 | 81 | Q | 113 | q |
18 | DC2 | 50 | 2 | 82 | R | 114 | r |
19 | DC3 | 51 | 3 | 83 | S | 115 | s |
20 | DC4 | 52 | 4 | 84 | T | 116 | t |
21 | NAK | 53 | 5 | 85 | U | 117 | u |
22 | SYN | 54 | 6 | 86 | V | 118 | v |
23 | TB | 55 | 7 | 87 | W | 119 | w |
24 | CAN | 56 | 8 | 88 | X | 120 | x |
25 | EM | 57 | 9 | 89 | Y | 121 | y |
26 | SUB | 58 | : | 90 | Z | 122 | z |
27 | ESC | 59 | ; | 91 | [ | 123 | { |
28 | FS | 60 | < | 92 | / | 124 | | |
29 | GS | 61 | = | 93 | ] | 125 | } |
30 | RS | 62 | > | 94 | ^ | 126 | ~ |
31 | US | 63 | ? | 95 | — | 127 | DEL |
ASCII码表字符解释
NUL 空 | VT 垂直制表 | SYN 空转同步 |
---|---|---|
SOH 标题开始 | FF 换页键 | ETB 信息组传送结束 |
STX 正文开始 | CR 回车 | CAN 作废 |
ETX 正文结束 | SO 移位输出 | EM 纸尽 |
EOY 传输结束 | SI 移位输入 | SUB 代替 |
ENQ 请求 | DLE 空格 | ESC 换码 |
ACK 收到通知 | DC1 设备控制1 | FS 文字分隔符 |
BEL 报警 | DC2 设备控制2 | GS 组分隔符 |
BS 退一格 | DC3 设备控制3 | RS 记录分隔符 |
HT 水平制表符 | DC4 设备控制4 | US 单元分隔符 |
LF 换行 | NAK 拒绝 | DEL 删除 |
2.数值类型
Python提供的3种数值类型:
整数类型:与数学中的整数一致,包含正、负、0。一个整数有二进制、八进制、十进制、十六进制4种表示方式。
进制 | 基本数 | 逢几进一 | 表示形式 |
---|---|---|---|
十进制 | 0,1,2,3,4,5,6,7,8,9 | 10 | 520 |
二进制 | 0,1 | 2 | 0b11010 |
八进制 | 0,1,2,3,4,5,6,7 | 8 | 0o520 |
十六进制 | 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F | 16 | 0xAF12546 |
浮点数类型:与数学中的小数一致,没有取值范围限制,可正、可负。有两种表示形式,一种是小数点的形式,另外一种是科学计数法。浮点数只有十进制形式。
复数:与数学中的复数一致,采用a+bj
的形式表示,存在实部和虚部。
3.字符串类型
计算机经常处理文本信息,文本信息在程序中使用字符串类型表示。在Python中使用单引号或双引号括起来的一个或多个字符来表示。单引号和双引号的作用相同。
# 字符串类型 被称为不可变的字符序列print('我用python')print("我用python")print('''我用python''')print(type('我用python'))print(type("我用python"))print(type('''我用python'''))
字符序列有两种序号体系:
正向递增序号: 有效范围为[0,N-1],其中N为字符串中字符的个数。最左侧的字符序号为0,依次向右递增,最右侧字符序号为N-1。
反向递减序号:有效范围为[-1,-N],其中N为字符串中字符的个数。最右侧的字符序与为-1,依次向左递减,最左侧的字符序号为-N。
两种索引可以同时使用,以下代码为对单个字符进行的索引。
s = 'hello word'print(s[0]) # hprint(s[-10]) # h
还可以采用[N:M]
格式获取字符串的子串,这种操作被称为切片操作。[N:M]
获取字符串中从N
到M
(但不包含M
)的连续的子字符串。N
和M
都表示的是索引序号,可以混合使用正向递增序号和反向递减序号。
s = 'hello word'print(s[0:5]) # helloprint(s[0:-5]) # hello
通过Python默认提供的len()函数获取字符串的长度,一个中文字符和一个英文字符的长度都记为1。
print(len(s)) # 10
四、程序的语句元素
1.表达式
产生或计算新数据值的代码片段称为表达式。类似于数学中的公式,一般由数据和操作符构成。
2.赋值语句
对变量进行赋值的一行代码被称为赋值语句。在Python中使用一个“=
”表示“赋值”,即将等号右侧表达式计算后的结果值赋给左侧的变量。
基本赋值语句语法:
变量 = 表达式
同步赋值语句就是同时给多个变量进行赋值。
同步赋值语句语法:
变量1,变量2,......变量N=表达式1,表达式2,......,表达式N
同步赋值语句应用最多的就是互换变量的值。即交换两个变量的值。
3.引用
Python程序会经常使用到当前程序之外已有的功能代码,这个过程叫引用。
Python语言中使用import
这个保留字引用当前程序以外的功能库。
import
引用功能库之后使用 功能库.函数名()
的方式调用基本功能,这种方式简称为“A.B()
”方式。
4.其他语句
除了赋值语句之外,Python还有分支语句和循环语句。先简单介绍一下使用,后面后详细讲解。
分支语句:根据判断条件选择程序执行路径。一般包含单分支结构、双分支结构和多分支结构。
单分支语法结构:
if 条件: 语句块
任何能够产生True或False的语句都可以作为条件,当条件为True时,则执行语句块中的内容。
双分支语法结构:
if 条件: 语句块1 else: 语句块2
当条件为True
时,执行语句块1,当条件为False
时,执行语句块2。其中if...else
都是保留字。
循环结构与分支结构一样都是程序控制语句,它的作用是根据判断条件确定一个程序是否再执行一次或者多次。
条件循环的语法结构:
while 条件: 语句块1语句块2
当条件为True
时,执行语句块1,然后再次判断条件,当条件为False
时,退出循环,执行语句块2。
五、基本输入输出函数
1.input( )函数
input()
函数是从控制台获得用户的一行输入,无论用户输入什么内容,input()
函数都以字符串类型返回。input()
函数可以包含一些提示性文字,用来提示用户。
input语法格式:
变量=input('提示性文字')
无论用户输入的是数字还是字符,input()
函数统一按照字符串类型输出,为了后续能够操作用户输入的信息,需要将输入指定一个变量进行存储。
input()
函数的提示性文字不是必须的,可写可不写。
2.eval( )函数
eval(s)
函数将去掉字符串s
最外侧的引号,并按照Python语句方式执行去掉引号后的字符内容。
eavl语法格式:
变量 = eval(字符串)
变量用来保存对字符串内存进行Python运算的结果。
eval()
函数去掉了字符串’1.2
’最外侧的引号,结果赋值给a
,所以a
的类型为float
类型。eval()
函数去掉了字符串’1.2+3.4’
最外侧的引号,对其内容当作Python语句进行运算,运算的结果为4.6
,保存到变量a中,所以a的类型是float
类型。
当eval()
函数处理字符串’python
’时,字符串去掉了两边的引号,Python语句将其解释为一个变量,由于这个变量在之前别有定义,因此解释器报错。如果定义变量python
并赋值为123
,再运行这个语句时就没有问题,如果输出为123
。
eval()
函数经常和input()
函数一起使用,用来获取用户输入的数字。
eval()
与input()
函数一起使用的语法:
变量=eval(input(提示性文字))
q
用户输入的数字、包括小数和负数,input()
解析为字符串,再由eval()
去掉字符串引号,将被直接解析为数字保存到变量中。
3.print()函数
print()
函数用于输出运算结果。
def print(self, *args, sep=' ', end='\n', file=None): # known special case of print """ print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False) Prints the values to a stream, or to sys.stdout by default. Optional keyword arguments: file: a file-like object (stream); defaults to the current sys.stdout. sep: string inserted between values, default a space. end: string appended after the last value, default a newline. flush: whether to forcibly flush the stream. """ pass
sep=' '
分隔符,默认为一个空格
end='\n'
结束符,默认以换行结束
print()
函数的三种用法:
1.仅用于输出字符串或单个变量
print(待输出字符串或变量)
对于字符串,print()
函数输出后将出掉两侧引号,对于其它类型,则会直接输出。
当print()
输出字符串表示时,字符串统一使用单引号表达。在[]
中的字符串都使用了双引号,但是在被print()
函数打印输出时,输出结果都采用了单引号。
2.用于输出一个或多个变量 ,输出后的各变量之间用一个空格分隔。
print(变量1,变量2,......,变量N)
3.用于混合输出字符串与变量的值,其中输出字符串模板中使用{}表示一个槽位,每个槽位对应.format()
中的一个变量。
print(输出字符串模板.format(变量1,变量2,......,变量N))
‘整数{}和整数{}的差是:{}
’是输出字符串模板,也就是混合字符串输出的样式,大括号{}
表示一个槽位,括号中的内容由后面紧跟着的format()
方法中的参数按顺序填充。
学习知识点
100天精通Python(基础篇)——第2天:入门必备