title: python复习100天--第2天
date: 2020-02-21 15:00:24
tags:
- python
- 基础
categories: python复习
top: 3
Python基本数据类型
数字
-
类型:int、float、bool、complex
-
数字的四则运算
eg:
print(1 + 2) # 整数相加得整数:3 print(2.1 - 1.1) # 浮点数相减得浮点数:1.0 print(1 * 2) # 整数相乘得整数:2 print(2 / 1) # 整数相除得浮点数:2.0 print(9 // 2) # 取整除法:4 print(9 % 2) # 求余除法:1 print(3 ** 3) # 求3的3次方:27
一般来说,同类型的数字进行四则运算会得到同类型的数字,但是除法不是。因为除法可能会出现小数,所以一般在进行除法运算的时候,Python会自动把整数变成浮点数之后,再进行运算,所以,整数相除是浮点数。
-
数字的类型转换。
eg:
print(1 + 1.1) # 整数加小数得小数:2.1 print(1 + True) # 整数加布尔型得整数:2 print(1 + (2 + 3j)) # 整数加复数得复数:3+3j
python会自动把低精度的往高精度上转换。如果是整数遇到了浮点数,整数自动转浮点数(浮点数能存储的东西多);同样的,如果是整数遇到了布尔型,布尔型自动转整数(整数储存的数据比布尔型多)。整数与复数的转换规则也是如此。
# 布尔型的转换规则 """ 布尔转整数 Ture -> 1 False -> 0 """ print(int(True)) # 布尔转整数:1 print(int(False)) # 布尔转整数:0 # int函数可以把其它数据类型转成整数 """ 整数转布尔 非零-> True 0 -> False """ print(bool(10)) # 整数转布尔:True print(bool(-10)) # 整数转布尔:Ture print(bool(0)) # 整数转布尔:False
注:int函数可将数据转整数,float函数可以将数据转浮点型,bool函数将数据转布尔型,complex函数将数据转复数。
字符串
-
字符串切片:上节已讲。具体可以看https://www.vbahome.cn
-
关于反斜杠转义:如果不想让它转义,可以加一个r,代表raw,原生不动。这样反斜杠就不会转义了。
eg:
print(r'1\n2') # r代表不转义,此处输出:1\n2
-
常用字符串内置函数
-
len:用于计算字符串的长度
eg:
print(len('你好玛利亚')) # 输出结果为5
-
-
常用字符串内置方法
-
join: 可以使用特定的字符将一个序列拼(通常为元组和列表)接成一个字符串
eg:
list1 = ['你好', ',', '玛利亚', '!'] # 后面会讲list,这里只是一个示意 a = ''.join(list1) # 利用空字符串把列表拼接成一个字符串 print(a) # 输出结果:你好,玛利亚!
-
replace:用于查找特定的字符串并替换成新的字符串
a = '我爱你,湖南' a = a.replace('湖南', '中国') # 将湖南替换为中国,并且重新赋值给a print(a) # 输出结果: 我爱你,中国
-
find:查找某个字符串是否在该字符串内,默认只返回第一个匹配的字符串的第一个字符所在位置.
a = 'Hello world,Hello China' result1 = a.find('Hello') # 找Hello的位置,结果: 0 print(result1)
-
split:以特定字符串进行切割,常用于语句分词,分词后的结果是一个列表.
eg:
a = 'Hello world,Hello China' print(a.split(' ')) # 以空格进行分词 # 输出结果:['Hello', 'world,Hello', 'China']
-
title: 将字符串标题化,也就是所有单词首字母大写
eg:
a = 'hello world,hello china' print(a.title()) # 标题化输出 # 输出结果:Hello World,Hello China
-
upper:将单词的所有字母都变成大写
eg:
a = 'hello world,hello china' print(a.upper()) # 小写单词转大写 # 输出结果:HELLO WORLD,HELLO CHINA
-
lower: 将所有单词大写转小写
a = 'HELLO WORLD,HELLO CHINA' print(a.lower()) # 大写单词转小写 # 输出结果:hello world,hello china
-
startwith: 是否以某个字符串开头,返回值为布尔型
eg:
a = 'hello world,hello china' print(a.startswith('hello')) # 判断是否以hello开头 # 输出结果:True
-
endswith: 是否以某个字符结尾,返回值为布尔型
eg:
a = 'hello world,hello china' print(a.endswith('china')) # 判断是否以hello开头 # 输出结果:True
-
strip: 删除两边多余的字符,默认是删除空格
a = ' hello world,hello china ' print(a.strip()) # 删除两边的空格 print(a.strip().strip('a')) # 删完空格再删两边的字符a # 输出结果: """ hello world,hello china hello world,hello chin """
-
encode:将字符串编码,默认是utf-8
eg:
a = ' hello world,hello china ' print(a.encode('utf-8')) # 默认是utf-8,可以不填 # 输出结果 """ b' hello world,hello china ' """
上面多了一个b,代表是二进制格式.
-
decode:将二进制解码成字符串,默认用utf-8进行解码
eg:
a = b' hello world,hello china ' b = b'\xe6\x88\x91\xe7\x88\xb1Python' print(a.decode()) # 默认是utf-8,可以不填 print(b.decode('utf-8')) # 输出结果 """ hello world,hello china 我爱Python """
-
-
字符串的复制
-
字符串常用*号代表复制,后面接数字代表复制多少次
eg:
a = 'hello' print(a*10) # 输出结果 """ hellohellohellohellohellohellohellohellohellohello """
-
-
字符串转数字
-
如果是数字构成的字符串,可以将该字符串转成浮点型数字
-
注意:字符串只能转浮点型数字,不能转整数形
eg:
a = '1.0' b = '2' print(type(a)) print(type(b)) c = float(a) d = float(b) print(type(c)) print(type(d)) # 输出结果 """ <class 'str'> <class 'str'> <class 'float'> <class 'float'> """
-
-
数字转字符串
-
直接用str函数即可
eg:
a = 1 print(type(1)) b = str(1) print(type(b)) # 输出结果 """ <class 'int'> <class 'str'> """
-
列表
-
list:代表多个有序数据的集合
-
列表是有序的, 每个列表元素都有一个“序号”,一般称为索引
-
索引是从零开始,然后依次加1
-
想要获取列表的元素,需要用中括号加索引的位置
eg:
a = [1, 2, 3, 4] print(a[1]) # 取第二个索引所在的元素值 # 输出结果 """ 2 """
-
列表的创建方法
- 法一: 和上面一样用中括号然后加逗号隔开
- 法二: 利用list函数生成列表
a = list() # 创建一个空列表 b = list('ashofsdo') # 将字符串变成列表,默认一个字符串一个列表元素 print(a) print(b) print(type(a)) print(type(b)) # 输出结果 """ [] ['a', 's', 'h', 'o', 'f', 's', 'd', 'o'] <class 'list'> <class 'list'> """
-
列表常搭配的函数:range
- range函数用于生成一个数字范围,一般以零开始,需要用list转成列表
- range生成的数字范围可迭代,常用于循环(此处不需要过于理解)
eg:
a = range(10) # 生成一个从零开始到10结束的范围,不包括10 a_list = list(a) # 将该范围转为列表 print(a) print(type(a)) print(a_list) print(type(a_list)) # 输出结果 """ range(0, 10) <class 'range'> [0, 1, 2, 3, 4, 5, 6, 7, 8, 9] <class 'list'> """
- range可以自定义开头位置,用逗号隔开
eg:
a = list(range(1, 10)) # 从1开始,到10结束,不包括10 print(a) # 输出结果 """ [1, 2, 3, 4, 5, 6, 7, 8, 9] """
- range可以自定义步长,默认是1,可以加一个逗号,第二个逗号右边表示步长.
eg:
a = list(range(1, 30, 3)) # 从1开始,到30结束,不包括30,每隔3取一个 print(a) # 输出结果 """ [1, 4, 7, 10, 13, 16, 19, 22, 25, 28] """
-
列表的切片
- 切片方法和字符串一样的
- 切片后可以重新赋值(注意:只有字符串、列表,、字典可以重新赋值)
eg:
a = list(range(1, 10)) # 从1开始,到30结束,不包括30,每隔3取一个 print('原来的a为: \n', a) a[0] = 100 # 对a[0]重新赋值 print('重新赋值后的a为:\n', a) print(a[0:5]) # 取第一个到第5个值,不包括a[5],也就是不包括第6个值 print(a[0:7:2]) # 从第一个取到第7个,不包括a[7],每隔两个取一个 print(a[-5: -1: 2]) # 从倒数第五个取到倒数第一个,不包括倒数第一个,每隔两个取一个 # 输出结果 """ 原来的a为: [1, 2, 3, 4, 5, 6, 7, 8, 9] 重新赋值后的a为: [100, 2, 3, 4, 5, 6, 7, 8, 9] [100, 2, 3, 4, 5] [100, 3, 5, 7] [5, 7] """
-
列表的常用函数
-
len:计算列表中元素的个数
eg:
a = list(range(10))
print(len(a))输出结果
"""
10
"""- max:找到列表中的最大值 - min函数代表找到列表中的最小元素 eg: ```python a = list(range(10)) print(max(a)) print(min(a)) # 输出结果 """ 9 0 """
-
-
列表的常用方法
-
append:末尾追加元素
eg:
a = list(range(10)) a.append(11) print(a) # 输出结果 """ [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 11] """
-
copy函数,常用于列表的复制,防止新列表更新后污染旧的列表。
eg:
a = list(range(10)) b = a.copy() # 复制列表a b[0] = 100 print(a) print(b) # 输出结果 """
[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
[100, 1, 2, 3, 4, 5, 6, 7, 8, 9]
"""- insert: 在置顶的位置插入元素 eg: ```python a = list(range(10)) a.insert(4, 100) # 在第五个索引后面插入100 print(a) # 输出结果 """ [0, 1, 2, 3, 100, 4, 5, 6, 7, 8, 9] """
-
index: 找到某个元素所匹配的索引位置
eg:
a = ['张三', '李四', '王二小'] print(a.index('李四')) b = [2, 1, 5, 6, 9, 4] print(b.index(max(b))) # 先找到b的最大值,再找到最大值对应的索引 # 输出结果 """ 1
4
"""- sort: 对列表进行排序 eg: ```python b = [2, 1, 5, 6, 9, 4] b.sort() # 对b进行排序 print(b) # 输出结果 """ [1, 2, 4, 5, 6, 9] """
-
reverse:对列表进行反转
eg:
b = [2, 1, 5, 6, 9, 4] b.reverse() # 对b进行反转 print(b) # 输出结果 """ [4, 9, 6, 5, 1, 2] """
-
pop: 删除元素,默认删除最后一个元素
eg:
b = [2, 1, 5, 6, 9, 4] print('原始的b列表长这样:\n', b) b.pop() # 删除最后一个元素 print('删除最右边的元素后\n', b) b.pop(0) # 删除第一元素 print('删除第一个元素后的样子:') print(b) # 输出结果 """ 原始的b列表长这样: [2, 1, 5, 6, 9, 4] 删除最右边的元素后 [2, 1, 5, 6, 9] 删除第一个元素后的样子: [1, 5, 6, 9] """
-
remove函数,用于删除特定的元素,pop是删索引,注意两者区别。
eg:
b = [2, 1, 5, 6, 9, 4] print('原始的b列表长这样:\n', b) b.remove(5) # 删除元素5 print('第一次删除后\n', b) b.remove(6) # 删除元素6 print('第二次删除后:') print(b) # 输出结果
"""
原始的b列表长这样:
[2, 1, 5, 6, 9, 4]
第一次删除后
[2, 1, 6, 9, 4]
第二次删除后:
[2, 1, 9, 4]
""" -
方法和函数的区别
-
方法是一种特殊的函数
-
方法属于某一个对象(数字、列表、字符串都可以看成对象,后面会仔细讲),而函数可以单独存在
eg:如列表的pop方法只有列表才可以用,而max函数可以直接使用
-
方法使用:obeject.funciton(),函数的使用:funciton()
-
方法包含的参数中,一定有一个参数是对象本身
eg:如sort方法实际就是对它自身进行排序,可以看成是list.sort(self),self代表它本身.
博客首发:https://www.vbahome.cn,欢迎关注。
网友评论