python
type
查看变量的类型
type = (变量值)
数据类型转换
新类型的值 = 转换后的类型(值)
字符串格式化
字符串精度控制
字符串快速格式化
#f:format
f "{变量} {变量}"
1.表达式
表达式就是一个具有明确结果的代码语句,如1+1、type(“字符串”)、3* 5等在变量定义的时候,如age = 11+11,等号右侧的就是表达式,也就是有具体的结果,将结果赋值给了等号左侧的变量表达式就是一个具有明确结果的代码语句,如1+1、类型(字符串“)、3*5等在变量定义的时候,如AGE=11+11,等号右侧的就是表达式,也就是有具体的结果,将结果赋值给了等号左侧的变量)
2.如何格式化表达式?
·f"{表达式}"·f“{表达式}”
. “%s%d \ %f”%(表达式、表达式、表达式)。“%s\df”%(表达式、表达式、表达式)
制表符 : \t 换行: \n
input语句(函数)
我们前面学习过print语句(函数),可以完成将内容(字面量、变量等)输出到屏幕上。在Python中,与之对应的还有一个input语句,用来获取键盘输入。
·数据输出: print
·数据输入: input
使用上也非常简单:
·使用input()语句可以从键盘获取输入
·使用一个变量接收(存储) input语句获取的键盘输入数据即可
构建随机数字函数:reandint
import random
随机生成的值 = random.randint(1,6)
for循环
1.for循环的语法格式是:
for 临时变量 in 待处理数据集(序列):
循环满足条件时执行的代码
2.for循环的注意点
无法定义循环条件,只能被动取出数据处理
要注意,循环内的语句,需要有空格缩进
终止循环
Python提供continue和break关键字,用以对循环进行临时跳过和直接结束
continue
continue关键字用于:中断本次循环,直接进入下一次循环continue可以用于:for循环和while循环,效果一致
break
break关键字用于:直接结束循环
break可以用于:for循环和while循环,效果一致
range语句
语法1:
range(num)
获取一个从O开始,到num结束的数字序列(不含num本身)
如range(5)取得的数据是:[0,1,2,3.4]
语法2:
range(num1,num2)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)如,range(5,10)取得的数据是∶[5,6,7,8,9]
语法3:
range(num1,num2, step)
获得一个从num1开始,到num2结束的数字序列(不含num2本身)数字之间的步长,以step为准( step默认为1)
函数的定义
#函数的定义:
def 函数名(传入参数):
函数体
return返回值
#函数的调用:函数名(参数)
函数名(参数)
函数的使用:先定义后调用
注意事项注意事项
1、参数如不需要,可以省略
2、函数必须先定义后使用(返回值如不需要,可以省略)
函数返回值
函数体在遇到return后就结束了,所以写在return后的代码不会执行。
语法格式:
def 函数(参数...):
函数体
return返回值
变量=函数(参数)
None类型
None表示:空的、无实际意义的意思
函数返回的None,就表示,这个函数没有返回什么有意义的内容。也就是返回了空的意息。
变量
变量作用域指的是变量的作用范围(变量在哪里可用,在哪里不可用)主要分为两类:局部变量和全局变量
局部变量
所谓局部变量是定义在函数体内部的变量,即只在函数体内部生效
def testA():
num = 100
print(num)
testA() # 100
print(num) #报错: name ' num' is not defined
#变量a是定义在`testA`函数内部的变量,在函数外部访问则立即报错.
局部变量的作用:在函数体的内部,然后在函数运行的时候零食保存的数据
全局变量
所谓全局变量,指的是在函数体内、外都能生效的变量
global关键字
使用global关键字可以在函数内部声明变量为全局变量
global money
数据容器
列表
列表的遍历- for循环
除了while循环外,Python中还有另外一种循环形式: for循环。
对比while,for循环更加适合对列表等数据容器进行遍历
语法:语法:
for 临时变量 in 数据容器:
对临时变量进行处理
表示,从容器内,依次取出元素并赋值到临时变量上。
在每一次的循环中,我们可以对临时变量(元素)进行处理。
1.什么是遍历?
将容器内的元素依次取出,并处理,称之为遍历操作
2.如何遍历列表的元素?将容器内的元素依次取出,并处理,称之为遍历操作2.如何遍历列表的元素?
可以使用while或for循环
3.for循环的语法:
for 临时变量 in 数据容器:
对临时变量进行处理
4.for循环和while对比.
for循环更简单,while更灵活对临时变量进行处理
4.表示循环和而非对比。
for对于循环更简单,而更灵活
for用于从容器内依次取出元素并处理,while用以任何需要循环的。
元组
元组的定义
元组定义:定义元组使用小括号,且使用逗号隔开各个数据,数据可以是不同的数据类型。
#定义元组字面量
(元素,元素,......,元素)
#定义元组变量
变量名称=(元素,元素,......,元素)
#定义空元组
变量名称=() #方式1
变量名称=tuple() #方式2
元组的操作
编号 | 方法 | 作用 |
---|---|---|
1 | index() | 查找某个数据,如果数据存在则返回对应的下标,否则报错 |
2 | count() | 统计某个数据在当前元组出现的次数 |
3 | len(元组) | 统计元组内的元素个数 |
元组的特点
可以容纳多个数据
可以容纳不同类型的数据(混装)
数据是有序存储的(下标索引)
允许重复数据存在
不可以修改(增加或删除元素等)
支持for循环
多数特性和list一致,不同点在于不可修改的特性。
序列
序列是指:内容连续、有序,可使用下标索引的一类数据容器
列表、元组、字符串,均可以可以视为序列。
序列的常用操作–切片
序列支持切片,即:列表、元组、字符串,均支持进行切片操作切片:从一个序列中,取出一个子序
语法:序列[起始下标:结束下标:步长]
表示从序列中,从指定位置开始,依次取出元素,到指定位置结束,得到一个新序列:
起始下标表示从何处开始,可以留空,留空视作从头开始
结束下标(不含)表示何处结束,可以留空,留空视作截取到结尾
步长表示,依次取元素的间隔
·步长1表示,一个个取元素
·步长2表示,每次跳过1个元素取
·步长N表示,每次跳过N-1个元素取
·步长为负数表示,反向取(注意,起始下标和结束下标也要反向标记)
集合
和列表、元组、字符串等定义基本相同:
列表使用︰[]
元组使用︰()
字符串使用:“”
集合使用:{}
注意事项
首先,因为集合是无序的,所以集合不支持:冲下标索引访问
但是集合和列表一样,是允许修改的,所以我们来看看集合的修改方法。
差集
取出2个集合的差集
语法∶集合1.difference(集合2),功能:取出集合1和集合2的差集(集合1有而集合2没有的)结果:得到一个新集合,集合1和集合2不变
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.difference(set2)
print(set3) #结果:{2,3}得到的新集合
print(set1) #结果:{,2,3}不变
print(set2) #结果:{几,5,6}不变
消除2个集合的差集
语法:集合1.difference_update(集合2)
功能:对比集合1和集合2,在集合1内,删除和集合2相同的元素。结果:集合1被修改,集合2不变
set1 = {1,2,3}
set2 = {1,5,6}
set1.difference_update(set2)
print(set1) #结果:{2,3}
print(set2) 结果:{1,5,6}
2个集合合并
语法:集合1.unioh(集合2)
功能:将集合1和集合2组合成新集合结果:得到新集合,集合1和集合2不变
set1 = {1,2,3}
set2 = {1,5,6}
set3 = set1.union(set2)
print(set3) #结果:{,2,3,5,6},新集合
print(set1) #结果:{几,2,3},set1不变
print(set2) #结果:{几,5,6},set2不变
经过上述对集合的学习,可以总结出集合有如下特点:
可以容纳多个数据
可以容纳不同类型的数据(混装)
数据是无序存储的(不支持下标索引)
不允许重复数据存在
可以修改(增加或删除元素等)
支持for循环
字典
字典的定义
同样使用,不过存储的元素是一个个的:键值对,如下语法:
#定义字典字面量
{key: value,key: value,...... , key: value}
#定义字典变量
my_dict = {key: value,key: value,...... , key: value}
#定义空字典
my_dict = {} #空字典定义方式1
my_dict = dict() #空字典定义方式2
字典的嵌套
字典的Key和Value可以是任意数据类型(Key不可为字典),那么,就表明,字典是可以嵌套的
字典的常用操作
编号 | 操作 | 说明 |
---|---|---|
1 | 字典[Key] | 获取指定Key对应的Value值 |
2 | 字典[Key]= Value | 添加或更新键值对 |
3 | 字典.pop(Key) | 取出Key对应的Value并在字典内删除此Key的键值对 |
4 | 字典.clear() | 清空字典 |
5 | 字典.keys() | 获取字典的全部Key ,可用于for循环遍历字典 |
6 | len(字典) | 计算字典内的元素数量 |
字典的特点
可以容纳多个数据
可以容纳不同类型的数据·
每一份数据是KeyValue键值对
可以通过Key获取到Value,,Key不可重复(重复会覆盖)·
不支持下标索引
可以修改(增加或删除更新元素等)·
支持for循环,不支持while循环
总结
数据容器可以从以下视角进行简单的分类:
是否支持下标索引
·支持:列表、元组、字符串–序列类型
不支持:集合、字典–非序列类型·
是否支持重复元素:
·支持:列表、元组、字符串–序列类型
不支持:集合、字典–非序列类型·
是否可以修改
·支持:列表、集合、字典
不支持:元组、字符串
数据容器的对比
基于各类数据容器的特点,它们的应用场景如下:
·列表:一批数据,可修改、可重复的存储场景
·元组:一批数据,不可修改、可重复的存储场景
·字符串:一串字符串的存储场景
·集合:一批数据,去重存储场景
·字典:一批数据,可用Key检索Value的存储场景
标索引
可以修改(增加或删除更新元素等)·
支持for循环,不支持while循环