# 第三章
#字符串
概念:
字符串:由0个或多个字符组成的有序字符序列
字符串由一对单引号或一对双引号表示
字符串是字符的有序序列,可以对其中的字符进行索引
"hello"---->h e l l o
索引 0 1 2 3 4
操作符及使用 | 描述 |
x+y | 连接连个字符x和y |
n*x或x*n | 复制n次字符串x |
x in s | 如果x是s的字串,返回True,否则返回False |
正向递增反向递减
使用[ ]获取字符串中一个或多个字符
数值小的在前面
索引:返回字符串中单个字符 <字符串>[M]
切片:返回字符串中一段字符子串 <字符串>[M: N]
左开右闭
举例
正向递增 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.转义符形成一些组合,表达一些不可打印的含义
"\b"回退
"\n"换行(光标移动到下行首)
"\r" 回车(光标移动到本行首)
# 让这个双引号去掉本身含义,就打印双引号
print("我想\"嫁给\"秦霄贤")
常用函数
# len() 获取字符串的长度
a = len("去某个国家追个星")
print(a)
# str() 把任意数据类型转换成string
b = 30
print(type(b))
c = str(b)
print(type(c))
#Type()输出数据类型的
#hex() 十进制转换成十六进制(0x)
print(hex(99))
#oct() 十进制转换成八进制(0o)
print(oct(99)
#chr() 十进制转换成字符
print(chr(68))
#ord() 字符转换成十进制
print(ord('A'))
函数及使用 | 描述 |
len(x) | 长度,返回字符串x的长度 len("一二三456")结果为6 |
str(x) | 任意类型x所对应的字符串形式 str(1.23)结果为"1.23"str([1,2])结果为"[1,2]" |
hex(x)或oct(x) | 整数x的十六进制或八进制小写形式字符串 hex(425)结果为"0x1a9" oct(456)结果为"0o651" |
方法本身也是函数,但与<a>有关,<a>.<b>()风格使用
方法是一个特殊的函数
方法vs 函数
-
函数--->函数名字() 方法 类/模块.方法名字()
-
方法是一个特殊的函数
# 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)
一些以方法形式提供的字符串处理功能
方法及使用 | 描述 |
str.lower()或str.upper() | 返回字符串的副本,全部字符小写/大写 "AbCdEfGh".lower()结果为"abcdefgh" |
str.split(sep=None) | 返回一个列表,由str根据sep被分隔的部分组成 "A,B,C".split(",")结果为['A','B','C'] |
str.count(sub) | 返回字串sub在str中出现的次数 "a apple a day".count("a")结果为4 |
#格式化
第一种方式
-
使用百分号进行格式化输出的方式,用法如下:
%s,表示字符串;
%d,表示整数;
%f,表示浮点数。
%代表一个占位符
name = "张三"
age = 18
print("%s is %d year old"%(name,age))
1.字符串和int不能拼接
2.对数据有未知性
格式化:让数据更加明了
# List
概念
列表是序列类型的一种扩展,十分常用
-
列表是一种序列类型,创建后可以随意被修改
创建
-
使用方括号 [] 或list() 创建,元素间用逗号 , 分隔
-
列表中各元素类型可以不同,无长度限制
● list01 = [1,2,3,4]
● """
● [] 空列表
● list() 里面什么都没有,创建空列表
● list(["张三","李四"])
● """
● list02 = list() #[]
● list03 = list(["张三","李四"])
● print(list01)
● print(list02)
● print(list03)
● list04 = [12.3,10,3.14e2,"张三"]
● print(list04) #[12.3, 10, 314.0, '张三']
常用函数
#创建list
list01 = [1,2,5,7,-2,-9]
#len(列表) 统计列表中元素的个数
a = len(list01)
print(a) #6
#sum(列表) 求和
b = sum(list01)
print(b) #4
#max(列表) 最大值
c= max(list01)
print(c) #7
#min(列表) 最小值
d = min(list01)
print(d) #9
# 增
# 元组
概念
元组是序列类型的一种扩展
• 元组是一种序列类型,一旦创建就不能被修改 不能增删改
创建
• 使用小括号 () 或 tuple() 创建,元素间用逗号 , 分隔
•#创建
•tuple01 = (1,2,3)
•tuple02 = tuple() #空元组 ()
•tuple03 = tuple((5,6,7))
•print(tuple01)
•print(tuple02)
•print(tuple03)
# 查
运算符
# set
概念
集合是多个元素的无序(没有下标)组合
集合类型与数学中的集合概念一致
集合元素之间无序,每个元素唯一,不存在相同元素
集合元素不可更改,不能是可变数据类型
为什么? 无序唯一
创建
-
集合用大括号 {} 表示,元素间用逗号分隔
-
建立集合类型用 {} 或 set()
-
建立空集合类型,必须使用set()
-
● #创建 ● set01 = {1,2,3,4,5} ● set02 = set() #set() ● set03 = set({9,10,11}) ● print(set01) ● print(set02) ● print(set03)
-
空列表 []
-
空元组 ()
-
空字典 {}
-
空集合 set()
-
原因是字典的创建也是{},两者冲突了
-
所以我们的空集合是set(),创建空集合的时候必须使用set()
-
● print(type({})) #<class 'dict'> ● print(type(set())) #<class 'set'>
#增
-
#删
#改
不可以更改数据
集合元素不可更改,不能是可变数据类型
为什么? 无序唯一
#查
直接打印集合名字去查询
不能使用索引进行查询,因为我们集合是无序的
print(set01) print(set02) print(set03)
# 第四章
#判断语句if
#单分支
语法
if 条件:
代码块
1.冒号必须是英文状态下
2.必须要缩进
执行流程
代码
eval(字符串)
1.把字符串转换成int类型
a = eval("10")
print(a) #10
print(type(a)) #<class 'int'>
2.对字符串进行计算
a = "3*2"
print(a) #3*2
b = eval(a)
print(b) #6
#input("请猜一个数字") ---Str #eval() 把Str转换成int guess = eval(input("请猜一个数字")) if guess ==99: print("恭喜你猜对了") #恭喜你猜对了
#二分支