一、简介
Python 是一种解释型、面向对象的语言
Python 的语法和动态类型以及解释性语言的本质,使它成为多数平台上写脚本和快速开发应用的编程语言
二、基础语法
2.1、字面量
在代码中被写下来的的固定的值,称之为字面量
Python中有6种常用的值(数据)的类型
注意:type()语句可以查看变量存储的数据类型
2.2、注释
单行注释:以#开头,#右边的所有文字起辅助说明作用,而不是真正要执行的程序
1 # 单行注释 2 print("Hello World")
注意:#号和注释内容一般以一个空格隔开
多行注释:以一对三个双引号括起来
1 """ 2 多行注释 3 Python基础 4 内容 5 """ 6 print("Hello World")
2.3、数据类型转换
2.4、标识符
标识符:是用户在编程的时候所使用的一系列名字,用于给变量、类、方法等命名
标识符命名中,只允许出现:英文 中文 数字 下划线(_)这四类元素
注意:不推荐使用中文,数字不可以开头,且不可使用关键字
2.5、运算符
算术(数学)运算符:
复合赋值运算符:
2.6、字符串
2.6.1、字符串的三种定义方式
1 单引号定义法:name = 'Python' 2 双引号定义法:name = "Python" 3 三引号定义法:name = """Python"""
其中,单引号定义法,可以内含双引号; 双引号定义法,可以内含单引号 ;并且可以使用转义字符(\)来将引号解除效用,变成普通字符串
2.6.2、字符串拼接
1 name = "Tom" 2 print("Hello" + name)
注意:字符串无法和非字符串变量进行拼接
1 name = "Tom" 2 print("Hello" + name,end='')
默认print语句输出内容会自动换行,在print语句中加上 end=‘’ 即可输出不换行
2.6.3、字符串格式化
通过如下语法,完成字符串和变量的快速拼接
如下代码,完成字符串、整数、浮点数,三种不同类型变量的占位
1 name = "软件工程" 2 year = 2000 3 time = 23.11 4 message = "课程:%s,成立于:%d,已有:%f年" % (name,year,time) 5 print(message) 6 7 输出结果: 8 课程:软件工程,成立于:2000,已有:23.110000年
其中% 表示占位符,且在无需使用变量进行数据存储的时候,可以直接格式化表达式(变量的位置放入表达式),简化代码
2.6.4、格式化的精度控制
使用辅助符号"m.n"来控制数据的宽度和精度
m,控制宽度,要求是数字,如果设置的宽度小于数字自身,则不生效
n,控制小数点精度,要求是数字,会进行小数的四舍五入
示例:%5d:表示将整数的宽度控制在5位,如数字11,就会变成:[空格][空格][空格]11,用三个空格补足宽度
%5.2f:表示将宽度控制为5,将小数点精度设置为2,小数点和小数部分也算入宽度计算。如对11.345设置了%7.2f 后,结果是:[空格][空格]11.35。2个空格补足宽度,小数部分限制2位精度后,四舍五入为 .35
%.2f:表示不限制宽度,只设置小数点精度为2,如11.345设置%.2f后,结果是11.35
2.6.5、字符串快速格式化
通过语法:f"内容{变量}"的格式来快速格式化
1 name = "软件工程" 2 year = 2000 3 time = 23.11 4 print(f"课程:{name},成立于:{year},已有:{time}年") 5 6 输出结果: 7 课程:软件工程,成立于:2000,已有:23.11年
注意:这种写法不做精度控制, 不理会类型原样输出
2.7、数据输入
使用input()语句可以从键盘获取输入
1 name = input("你的名字是:") 2 print("我的名字是:" + name) 3 4 输出结果: 5 你的名字是:小李 6 我的名字是:小李
注意:无论键盘输入什么类型的数据,获取到的数据永远都是字符串类型
三、判断语句
3.1、if-else语句
1 age = 20 2 if(age >= 18): 3 print("我成年了") 4 else: 5 print("我还没有成年")
归属于if判断的代码语句块,需在前方填充4个空格缩进
Python通过缩进判断代码块的归属关系
3.2、if-elif-else语句
1 amount = 400 2 if amount < 100: 3 print("没有优惠") 4 elif 100 <= amount < 300: 5 print("打八折") 6 elif 300 <= amount < 500: 7 print("打七折") 8 else: 9 print("打六折")
四、循环语句
4.1、while循环
1 i = 0 2 while i < 10: 3 print("Hello World") 4 i += 1
4.2、for循环
1 name = "xiaoli" 2 for x in name: 3 print(x)
4.3、range语句
用于获得一个数字序列
语法1:range(num)
1 从0开始,到num结束(不含num本身)
语法2:range(num1, num2)
1 从num1开始,到num2结束(不含num2本身)
语法3:range(num1, num2, step)
1 从num1开始,间隔step到num2结束(不含num2本身)
1 for i in range(0,10,2): 2 print(i) 3 4 输出结果: 5 0 6 2 7 4 8 6 9 8
五、函数
函数:是组织好的,可重复使用的,用来实现特定功能的代码段
函数的定义:
1 def 函数名(传入参数) 2 函数体 3 return 返回值
注意:如果函数没有使用return语句返回数据,会返回None这个字面量;在if判断中,None等同于False;定义变量,但暂时不需要变量有具体值,可以用None来代替
使用 global关键字可以在函数内部声明变量为全局变量
六、数据容器
一种可以容纳多份数据的数据类型,容纳的每一份数据称之为1个元素。 每一个元素,可以是任意类型的数据
6.1、list(列表)
基本语法:
1 # 定义列表字面量 2 [元素1,元素2,元素3,...] 3 4 # 定义列表变量 5 变量名称 = [元素1,元素2,元素3,...] 6 7 # 定义空列表 8 变量名称 = [] 9 变量名称 = list()
列表的方法:
列表的特点:
- 可以容纳多个数据 (上限为2^63-1、9223372036854775807个)
- 可以容纳不同类型的数据 (混装 )
- 数据是有序存储的 (有下标序号)
- 允许重复数据存在
- 可以修改 (增加或删除元素等 )
6.2、tuple(元祖)
基本语法:
1 # 定义元祖字面量 2 (元素,元素,...,元素) 3 4 # 定义元祖变量 5 变量名称 = (元素,元素,...,元素) 6 7 # 定义空元祖 8 变量名称 = () 9 变量名称 = tuple() 10 11 # 定义一个元素的元祖 12 t1 = ('Hello',)
注意: 元组只有一个数据,则这个数据后面必须要添加逗号
元祖的方法:
元祖的特点:
- 不可以修改元祖的内容,否则会直接报错
- 但可以修改元祖内的list的内容(修改、增加或删除元素等)
6.3、字符串
字符串的方法:
字符串的特点:
- 字符串容器可以容纳的类型是单一的,只能是字符串类型
- 字符串不可以修改,如果必须要修改,只能得到一个新的字符串,旧的字符串是无法修改
6.4、序列的切片
序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列
- 起始下标表示从何处开始,可以留空,留空视作从头开始
- 结束下标(不含)表示到何处结束,可以留空,留空视作截取到结尾
- 步长表示依次取元素的间隔
- 步长为负数表示反向取(注意,起始下标和结束下标也要反向标记)
6.5、set(集合)
基本语法:
1 # 定义集合字面量 2 {元素,元素,...,元素} 3 4 # 定义集合变量 5 变量名称 = {元素,元素,...,元素} 6 7 # 定义空集合 8 变量名称 = set()
集合的方法:
集合的特点:
相较于列表、元组、字符串来说,不支持元素的重复(自带去重功能),并且内容无序
6.6、dict(字典)
基本语法:
1 # 定义字典字面量 2 {key:value,key:value,...,key:value} 3 4 # 定义字典变量 5 变量名称 = {key:value,key:value,...,key:value} 6 7 # 定义空变量 8 变量名称 = {} 9 变量名称 = dict()
字典的操作:
字典的特点:
- 键值对的Key和Value可以是任意类型(Key不可为字典)
- 字典内Key不允许重复,重复添加等同于覆盖原有数据
- 字典不可用下标索引,而是通过Key检索Value
6.7、数据容器的通用操作
特点对比:
通用功能: