第三章 python基础
字符串
字符串:由0个或多个字符组成的有序字符序列
字符串由一对单引号或一对双引号表示
字符串是字符的有序序列,可以对其中的字符进行索引
"hello"---->h e l l o
索引 0 1 2 3 4
基本操作
字符串的序号
1.正向递增序号
2.反向递减序号
使用[ ]是用来获取字符串中一个或多个字符
索引:返回字符串中单个字符 <字符串>[M]
切片:返回字符串中一段字符子串 <字符串>[M: N]
取值范围:左开右闭 正向递增 反向递减
``"""
正向递增 0 1 2 3 4 5 6
反向递减 -7 -6 -5 -4 -3 -2 -1
云 想 衣 裳 花 想 容
"""正向递增 0 1 2 3 4 5 6反向递减 -7 -6 -5 -4 -3 -2 -1云 想 衣 裳 花 想 容
"""
Str = "云想衣裳花想容"
print(Str[2:4])
print(Str[-5:-3])
print(Str[-5:4])
需求分析
转义字符
1.转义符形成一些组合,表达一些不可打印的含义
\n 换行(光标移动到下行首)
\t 横向跳格(跳到下一制表位置)
\v 竖向跳格
\b 退格
\r 回车(光标移动到本行首)
\f 走纸换页
\ 反斜杠字符’\’
\’ 单引号字符
2.可以去掉特殊含义
让这个双引号去掉本身含义,就打印双引号
print("我想\"嫁给\"秦霄贤")
常用函数
1.# len() 获取字符串的长度
a = len("去某个国家追个星")
print(a)
2.# str() 把任意数据类型转换成string
b = 30
print(type(b))
c = str(b)
print(type(c))
3.#Type()输出数据类型的
4.#hex() 十进制转换成十六进制(0x)
print(hex(99))
5.#oct() 十进制转换成八进制(0o)
print(oct(99))
6.#chr() 十进制转换成字符
print(chr(68))
7.#ord() 字符转换成十进制
print(ord('A'))
方法本身也是函数,但与<a>有关,<a>.<b>()风格使用
方法和函数的区别:
1.方法是特殊的函数,可以说是函数的子集
2.方法平常往往是和类有关的,是我们在面向对象语言中会提到,用到的。
3.函数是一一映射的关系,给定一个变量,则会出现一个确定的值。 是指一段可以直接被其名称调用的代码块,它可以传入一些参数进行处理并返回一些数据,所有传入函数的数据都是被明确定。
函数--->函数名字() 方法 类/模块.方法名字()
方法是一个特殊的函数
str.lower() 把字符串转换成小写 返回字符串
a = "AASDFGH"
print(a.lower())
#str.upper() 把字符串转换成大写 返回字符串
b = "luck"
print(b.upper())#str.split(按照什么拆分) 拆分 返回的是list列表[]
c = "I,love,you"
print(c.split(","))#str.count(子串) 某一个子串在str(字符串)中出现的次数 返回值整数类型
d = "o"
#o在I,love,you中出现了多少次 2
print(c.count(d))
print(type(c.count(d)))
#str.replace(old,new) str中的任意一个子串替换成新的子串 返回字符串
Str01 = "I,LOVE,YOU"
Str02 = Str01.replace("YOU", "李雪琴")
print(Str02)#str.center(宽度,新的字符) Str字符串根据某一个宽度进行居中 返回值字符串
"""
宽度 = 新的字符+str
新的字符必须是一个字符
"""
Str03 = "刘华强"
Str04 = Str03.center(10)
print(Str04)
Str05 = Str03.center(10,"牛")
print(Str05)#str.strip(字符) 去掉左右两边的字符 返回字符串
Str06 = "==I,LIVE,YOU=="
Str07 = Str06.strip("=L")
print(Str07)
格式化
1.使用百分号进行格式化输出的方式,用法如下:
%s,表示字符串;
%d,表示整数;
%f,表示浮点数
%代表一个占位符
name = "张三"
age = 18
print("%s is %d year old"%(name,age))
要求:
1.字符串和int不能拼接
2.对数据有未知性
bug: 占位符必须和参数一一对应,否则,语句不通顺,报错
2. <模板字符串>.format(<逗号分隔的参数>)
1. 利用{}为占位符
2. 利用索引(索引是0)
bug:比如100以上条数据,数数比较麻烦
print("{2}的爱徒是{0},儿徒是{1}".format("栾云平","烧饼","郭德纲"))
print("{1}的主角是{2},由{0}出演".format("孙红雷","扫黑风暴","李成阳"))
3. 利用变量的赋值
"{c}告诉我们:{b}不要和三观不合的人结婚,{a}我们不要和妈宝结婚".format(a="乔三丽",b="乔一成",c="乔家儿女")
大括号{}内部对格式化的配置方式
{ <参数序号> : <格式控制标记>}
注意:
参数序号:默认是0
填充字符:默认空格
若是整数,需要在前面补齐空格,若在字符串之后,也要补齐空格
对齐方式:默认是左对齐
列表 (List)
含义:列表是一种序列类型,创建后可以随意被修改
注意:列表是序列类型的一种扩展,十分常用
list创建
1.使用方括号 [] 或list() 创建,元素间用逗号 , 分隔
2.列表中各元素类型可以不同,无长度限制
list01 = [1,2,3,4]
list02 = list() #[]
list03 = list(["张三","李四"])
print(list01)
print(list02)print(list03)
list04 = [12.3,10,3.14e2,"张三"]
print(list04) #[12.3, 10, 314.0, '张三']
常用函数有:1.list() 2.len() 3.sum() 4 .max() 5.min()
1.#创建list
list01 = [1,2,5,7,-2,-9]
2.#len(列表) 统计列表中元素的个数
a = len(list01)
print(a) #6
3.#sum(列表) 求和
b = sum(list01)
print(b) #4
4.#max(列表) 最大值
c= max(list01)
print(c) #7
5.#min(列表) 最小值
d = min(list01)
print(d) #9
四大功能:增删改查
1. 增
#创建
#list.insert(index,值) 根据下标进行插入数据
list01=.insert(1,"杨幂")
print(list01)#['张艺兴','陈立农','迪丽热巴','杨幂']
#list.append(值) 在末尾插入
list01.append("杨紫")
print(list01)#['张艺兴','陈立农','迪丽热巴','杨幂','杨紫']
2. 删
#创建
list01 = ["张艺兴","陈立农,"迪丽热巴","杨幂","杨紫"]
#list.pop(index) 删除指定位置的数据
list01.pop(3)
print(list01) #["张艺兴","陈立农,"迪丽热巴","杨幂","杨紫","张艺兴"]
#list.remove(值) 删除值,但是他删除的是值第一次出现的位置
list01.remove("张艺兴")
print(list01) #["张艺兴","陈立农,"迪丽热巴","杨幂","杨紫"]
#list.clear() 删除所有数据
list01.clear()
print(list01) #[]
3.改
List[i] = 值(要修改的值
#重新进行赋值
list01=[3]="陈立农"
print(list01)##["张艺兴","迪丽热巴","杨幂","杨紫"]
4.查
#创建list
list01 = [1,2,5,7,-2,-9]
#查询所有 ---直接打印列表名字
print(list01)
注意:
查询单个值
利用[index]进行查询 index-->从0开始
print(list01[1]) #2
查询多个值
[start:stop] 左开右闭
小数在前面
正向递增 反向递减 一负一正
print(list01[1:4]) #[2, 5, 7]
print(list01[-5:-2]) #[2, 5, 7]
print(list01[-5:4]) #[2, 5, 7]
常用方法
元组(tuple)
含义:元组是一种序列类型,一旦创建就不能被修改 不能增删改
元组是序列类型的一种扩展
元组是python语言核心的一部分,python的元组对象不可变,不能动态添加或删除元素,元组具有很强的灵活性。
创建
tuple01 = (1,2,3)
tuple02 = tuple() #空元组 ()
tuple03 = tuple((5,6,7))
print(tuple01)
print(tuple02)
print(tuple03)
1.使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔
元组的意义:
#创建
tuple02 = tuple() #空元组 ()
list01 = list() #[]
空列表 空元组 空集合 空字典都是False all()
● print(all([[],()])) #False
查
#创建
tuple02 = (1,2,3,4,5,6)
查询所有值 直接打印元组名字
查询单个值 [index]
查询多个值 [start:stop] 左开右闭 一负一正
print(tuple02)
print(tuple02[2])
print(tuple02[1:4])
print(tuple02[-5:-2])
print(tuple02[-5:4])
运算符
#创建
Str = ("张三")
print(type(Str)) #<class 'str'>
#字符串只能存放一个值 元组可以存放多个值,加个逗号可以进行区分
tuple01 = ("张三",)
print(type(tuple01)) #<class 'tuple'>
#复制完以后把数据变成元组
print(tuple01*3) #('张三', '张三', '张三')
字典(dict)
在python中,字典是核心数据结构,它可以存储任意数量的对象,每个对象都有唯一 的字典键标识。字典常被称为:映射,散列表,查找表或关联数组
1.映射是一种键(索引)和值(数据)的对应
"""
映射
key value
张三 18
李四 20
王五 80
"""
"""
[1,2,3,4]
索引 0 1 2 3
"""
创建
1.键值对:键是数据索引的扩展
2.字典是键值对的集合,键值对之间无序(没有索引)
3.采用大括号{}和dict()创建,键值对用冒号: 表示
4.字典类型是“映射”的体现
5.字典变量> = {<键1>:<值1>, … , <键n>:<值n>
#创建
dict01 = {"张三":18,"李四":20,"王五":80}
dict02 = dict()
dict03 = dict({"张三":90,"李四":20})
print(dict01) #{'张三': 18, '李四': 20, '王': 80}
print(dict02) #{}
print(dict03) #{'张三': 90, '李四': 20}
增
dict01[新的key] = 新的值 添加数据
dict01["小乔"] = "天魔缭乱"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元哥': '无敌时间移位', '小乔': '天魔缭乱'}
删
dict.pop(key) 根据key删除一对数据
dict.clear() 清除所有数据
dict01.pop("元哥")
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船'}
改
只能修改值,不可以修改key
为什么:因为key是唯一的,不能重复的,避免出现重复的情况所以不能修改
怎么修改:
先根据key拿到值 dict01["孙策"]
再重新赋值
dict01["孙策"] = "乘风破浪"
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '乘风破浪', '元哥': '无敌时间移位'}
查
#创建
dict01 = {"鲁班":"空中支援","花木兰":"切换形态","孙策":"开船","元哥":"无敌时间移位"}
# dict.keys() 查看所有的key(英雄)
print(dict01.keys()) #dict_keys(['鲁班', '花木兰', '孙策', '元哥'])
# dict.values() 查询所有的value(大招)
print(dict01.values()) #dict_values(['空中支援', '切换形态', '开船', '无敌时间移位'])
查询单个值
1.dict[key] 利用key查询value
2.dict.get(key,默认值) 利用key查询value 如果key没有,那么就输出默认值
print(dict01["花木兰"]) #切换形态
print(dict01.get("花木兰")) #切换形态
print(dict01.get("貂蝉","没有此英雄,请购买")) #没有此英雄,请购买
查询所有值(包括key和value)
1.直接打印字典名
2.dict.items() 迭代方法
print(dict01) #{'鲁班': '空中支援', '花木兰': '切换形态', '孙策': '开船', '元哥': '无敌时间移位'}
print(dict01.items()) #dict_items([('鲁班', '空中支援'), ('花木兰', '切换形态'), ('孙策', '开船'), ('元哥', '无敌时间移位')])
常用的函数和方法
k in dict key在不在字典里面
如果在输出True 如果不在输出False
为什么 20 in dict0
原因是他只能判断key在不在,不能判断value在不在
print("张三" in dict01) #True
print(20 in dict01) #False
dict01.update(dict02) 把02中的数据更新到01中
更新是更新多个数据
是复制吗? no
但是你可以理解成添加数据
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
dict01.update(dict02)
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70, '李四': 80, '翠花': 20, '光头强': 10}
print(dict02) #{'翠花': 20, '光头强': 10}
#创建字典
dict01 = {"张三":20,"王五":30,"赵六":70,"李四":80}
dict02 = {"翠花":20,"光头强":10}
del 字典名[key] 删除指定位置的数据
和pop一样
dict.pop(key) 删除指定位置的数据
del dict01["李四"]
print(dict01) #{'张三': 20, '王五': 30, '赵六': 70}
集合(set)
含义:集合是一种无序的序列,集合中的元素具有唯一性,即集合中不存在两个同样的元素
在集合中放入的元素只能是不可变类型的,如:数字,字符串,元组,等。浮点数存在精度的问题,一般不适合做集合中的元素
集合是多个元素的无序(没有下标)组合
集合类型与数学中的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
创建
1.集合用大括号 {} 表示,元素间用逗号分隔
2.建立集合类型用 {} 或 set()
3.建立空集合类型,必须使用set()
#创建
● set01 = {1,2,3,4,5}
● set02 = set() #set()
● set03 = set({9,10,11})
● print(set01)
● print(set02)
● print(set03)
空列表 []
空元组 ()
空字典 {}
空集合 set()
原因是字典的创建也是{},两者冲突了
所以我们的空集合是set(),创建空集合的时候必须使
print(type({})) #<class 'dict'>
print(type(set())) #<class 'set'>
增
#创建
set01 = {"喜羊羊","美羊羊","懒洋洋","沸羊羊","暖羊羊","慢羊羊","灰太狼"}
注意: set.discard(值) 删除集合中的值
如果数据不存在,不报错
set01.discard("美羊羊")
print(set01) #{'慢羊羊', '喜羊羊', '灰太狼', '暖羊羊', '懒洋洋', '沸羊羊'}
set01.discard("小灰灰")
print(set01)
注意:set.remove(值) 删除集合中的值
KeyError: '小灰灰'
如果没有这个值,会报错
set01.remove("慢羊羊")
print(set01) #{'懒洋洋', '灰太狼', '沸羊羊', '喜羊羊', '暖羊羊'}
#set01.remove("小灰灰")
#print(set01)
set.pop() 随机删除
set01.pop() #{'懒洋洋', '沸羊羊', '喜羊羊', '暖羊羊'}#{'灰太狼', '喜羊羊', '沸羊羊', '暖羊羊'}
print(set01)
改
不可以更改数据
查
直接打印集合名字去查询
不能使用索引进行查询,因为我们集合是无序的
print(set01)
print(set02)
print(set03)
集合常用函数和方法
#创建
set01 = {"喜羊羊","美羊羊","懒洋洋","沸羊羊","暖羊羊","慢羊羊","灰太狼"}
#set.copy() 复制/拷贝一个一模一样的集合
set02 = set01.copy()
print(set02) #{'慢羊羊', '美羊羊', '灰太狼', '喜羊羊', '沸羊羊', '暖羊羊', '懒洋洋'}
#len(set) 返回集合的元素个数,集合的长度
a = len(set01)
print(a) #7
x in set 元素x在不在集合当中
x not in set 元素不在集合中
print("慢羊羊" in set01) #True
print("慢羊羊" not in set01) #False
#set(x) 把其他数据类型(x)转换成集合类型
Str = "hello"
print(Str) #hello
print(type(Str))b = set(Str)
print(type(b)) #<class 'set'>
print(b) #{'o', 'e', 'h', 'l'}
重点
并
1.他的符号是 |
2.返回两个集合的所有值
print(set01 | set02) #{1,2,3,4,5,7,9}
差
1.差的符号是 -
2.set01 - set02 set01去掉公共部分的值
print(set01 - set02) #{1, 4}
print(set02 - set01) #{9, 7}
交
1.交的符号 &
2.两个的公共部分
print(set01 & set02) #{2, 3, 5}
补
补集
1.补集的符号 ^
2.并集-交集 = 补集
3.除去公共部分,set01和set02的单独部分我都要
包含关系
判断set01 和 set02是不是包含关系
> < >= <=
口朝向那边,那边是大的
set01 >= set02 set01包含set02
print(set01 >= set02) #True
print(set01 < set02) #Falseprint(set02 < set01) #True
增强符
S |= t --- s=s | t
语法: set01 |= set02 并等 set01 = set01 | set02
s = set01 | set02
print(s) #{1, 2, 3, 4, 5, 7, 8, 9}set01 |= set02
print(set01) #{1, 2, 3, 4, 5, 7, 8, 9}
查看两个变量是否来自同一个地址
基本数据类型
1. 基本类型的赋值机制
2.容器类型的赋值机制
基本数据类型会为每一个对象单独赋值,即使值是一样,也是不同的内存
>>> x = 500
>>> id(x)
1862181199440
>>> y = 500
>>> id(y)
1862181199472
除了对象等于另一个对象
a =1
b = a
问题:为什么vs内存一样,idle内存却不一样?
因为在vs是一起创建的,在idle中是先创建一个,在创建另外一个
序列类型
第三章 python基础相关推荐
- 第三章 Python基础——文件操作函数
3.1三元运算 三元运算又称三目运算,是对简单条件的简写 if 条件成立:val=1 else:val=2 改成三元运算: val=1 if条件成立 else 2 3.2字符编码转换 编码的种类情况: ...
- 第三章 Python基础知识
list1 = ['张三','男',33,'江苏','硕士','已婚',['身高178','体重72']] # 取出第一个元素 print(list1[0]) # 取出第四个元素 print(list ...
- 第三章 Python函数基础及进阶
第三章 函数基础及进阶 3.1 上章补充内容 3.1.1 Bytes类型 计算机的数据需要存到硬盘上,但是硬盘只能存储二进制的数据. 我们知道将计算机里的数据转换成我们能看懂的数据是将二进制 -> ...
- python是动态类型语言、变量不需要显示声明类型_【IT专家】第3章 Python基础
第 3 章 Python 基础 2017/12/13 0 3-1 .标识符.为什么 python 中不需要变量名和变量类型声明? python 语言是动态的.强类型语言,一言以蔽之! 动态编译语言特点 ...
- python中 1.34e3_Python快速编程入门——第2章 Python基础语法
第2章 python基础语法 一.基本语法 二.变量和数据类型 三.标识符和关键字 四.简单数值类型 一.基本语法 注释:Python的注释是用# 不像C/C++使用的是//或者/*/.多行注释好像挺 ...
- 廖雪峰python教程——第一章 Python基础
第一章 Python基础 一.数据类型和变量 Python的数据类型包括整数.浮点数.字符串.布尔值.空值.变量.常量等.其中整数可以表示任意大小的整数:空值是Python里一个特殊的值,用None表 ...
- 【python第一章 基础捋顺,第二章 python基础语法】
第一章 基础捋顺,第二章 python基础语法 第一章 基础捋顺 第二章 python基础语法 2.1输入输出 2.2代码注释 2.3代码缩进 2.4命名规范 2.5变量 2.6基本数据类型 2.7数 ...
- 【面试宝典】软件测试工程师2021烫手精华版(第三章Mysql基础篇)
第三章 Mysql 基础 一. 基础知识 什么是数据库? 数据库(Database)是按照数据结构来组织.存储和管理数据的仓库 什么是关系型数据库,主键,外键,索引分别是什么? 关系型数据库是由多张能 ...
- 第一章 Python基础 ——一起搬砖打地基
目录 前言 第一章 Python基础 1.表达式 2.整型.浮点型和字符串数据类型 3.字符串的连接和复制 字符串的连接--"+"操作符 字符串的复制--" * &quo ...
最新文章
- VC中的Attach和Detach
- 练手CF3-C - Wormhouse
- php编程对联,形容程序员的对联大全
- git(9)--- 如何使用MTK GIT发布分支
- python的变量与注释
- Eclipse — 快速生成提示代码和快速导包
- git push失败的解决办法(2)
- MFC之学习绘制矩形、画刷使用
- python可以做微信小游戏吗_python可以写微信小游戏吗
- 【02】制作第一个zblog模板第二期,熟悉模板所有的开发运行和调试机制·提前做好所有纯html页面
- 被面试官问到项目中的难点?是时候对自己的项目进行总结了(记一次项目问题总结)
- android测试篇(三)单元测试之UI测试 Espresso学习与实践
- 基于树的机器学习模型的演化
- xmanager登陆linux黑屏,使用xmanager工具登陆linux服务器时黑屏问题
- 中国联通智能路侧单元白皮书
- 8421码5421码2421码余3码
- Azure语音合成再添新声音,“风格迁移”技术为不同音色实现多情感演绎
- 微信扫描下载提示以及js判断用户手机系统
- viewFlipper的基本实现
- 我的职场十年:谈谈普通员工的各种低级错误
热门文章
- 计算机系统基础:bomb炸弹实验
- 五彩斑斓的黑,找到了
- BDD100K数据集简单解析以及格式转换成voc格式
- 获取手机通讯录加好友
- Parsing error: No Babel config file detected for xxx Either disable config file checking...报错解决方法
- JAVA计算机毕业设计学生学籍信息管理系统Mybatis+源码+数据库+lw文档+系统+调试部署
- 电视机android正在升级卡住,智能电视升级失败,原因都在这里!
- VescoFx - Provoker压缩VST插件
- PMP考试-PMBOK指南第6版(中文)
- 关于validate_data_dir的一些理解