基础数据类型
可哈希:int , str , tulpe , bool
不可哈希: list , dict , set
list :有序的,有索引,可切片。
dict : 无序的 key通过哈希运算决定value储存位置。
set : 无序的 不可重复的数据 。里面的元素是可哈希的。
数字类型int
数字类型
a = 100
print(a, type(a))
b = '100'
print(b, type(b))
100 <class 'int'>
100 <class 'str'>
数字取余
a = 10
b = 5
print(a % b) # 取余
0
字符串str
字符串拼接
a = 'li'
b = 'shi'
c = 'cheng'
print(a + b + c)
print('li' + 'shi' + 'cheng')
字符串可相乘
索引与切片
s = 'ABCDEFG'
print(s)
# 索引:
s1 = s[0]
print(s1)
s3 = s[-2]
print(s3)
# 切片:顾头不顾尾
s2 = s[0:3]
print(s2)
s4 = s[0:]
print(s4)
# 首:尾:步长:
s5 = s[0:5:2]
print(s5)
s6 = s[4:]
print(s6)
# 倒序:步长为负:
s7 = s[4::-2]
print(s7)
s7 = s[::-1]
print(s7)
循环打印字符串
info = input('>>>')
for i in info:
print(i)
isalpha (判断字母字符串)
如果字符串为字母字符串,则返回true,否则为false。
strip (首尾空白删除)
info = input('>>>').strip() # a1b2c3 (不可变数据类型)
for i in info: # 在for中数据类型不变,可变数据类型在循环时会发生改变
if i.isalpha(): # 判断是否为字符
info = info.replace(i, ' ') # 将字符转化为空
print(info)
l = info.split() # 将字符串转化为列表
print(l)
print(len(l)) # 统计列表中元素的个数
bit_length(二进制长度)
i = 6
print(i.bit_length()) # 二进制长度
bool值
判断语句的时候使用
a = 4
b = 3
print(a > b)
True
print(type(True))
<class 'bool'>
列表
增 删 改 查 :
append (在结尾添加)
# 在结尾添加
liebiao = ['a', 'b', 'c', 'd']
liebiao.append('e')
print(liebiao)
insert (在索引之前插入)
# 在索引之前插入
liebiao = ['a', 'b', 'c', 'd']
liebiao.insert(2,'f')
print(liebiao)
extend (迭代追加元素)
# 通过从迭代中追加元素来扩展列表
liebiao = ['a', 'b', 'c', 'd']
xin = [1, 2, 3] #拆分叠加
liebiao.extend(xin)
print(liebiao)
> ['a', 'b', 'c', 'd', 1, 2, 3]
xin = 'hello' #拆分叠加
liebiao.extend(xin)
print(liebiao)
> ['a', 'b', 'c', 'd', 'h', 'e', 'l', 'l', 'o']
pop (索引中删除)
# 从索引中删除
liebiao = ['a', 'b', 'c', 'd']
test = liebiao.pop(2)
print(test, liebiao)
c ['a', 'b', 'd'] # 有返回值
remove (删除列表中中元素)
# 删除元素
liebiao = ['a', 'b', 'c', 'd']
liebiao.remove('b')
print(liebiao)
clear
# 清空
liebiao = ['a', 'b', 'c', 'd']
liebiao.clear()
print(liebiao)
del (删除列表,切片删除)
liebiao = ['a', 'b', 'c', 'd']
del liebiao # 删除列表
print(liebiao)
liebiao = ['a', 'b', 'c', 'd']
del liebiao[1:] # 切片删除
print(liebiao)
改
liebiao = ['a', 'b', 'c', 'd']
liebiao[1] = 'aSDdaD' # 修改列表中的单个索引
print(liebiao)
liebiao = ['a', 'b', 'c', 'd']
liebiao[1:2] = 'aSDdaD' # 切片拆分改
print(liebiao)
['a', 'a', 'S', 'D', 'd', 'a', 'D', 'c', 'd']
查
liebiao = ['a', 'b', 'c', 'd']
for i in liebiao: # 逐个打印
print(i)
a
b
c
d
print(liebiao[2:]) # 索引分片打印
['c', 'd']
len 对象(字符、列表、元组等)长度或项目个数
>>>str = "runoob"
>>> len(str) # 字符串长度
6
>>> l = [1,2,3,4,5]
>>> len(l) # 列表元素个数
5
count (查看字符串出现的次数)
liebiao = ['a', 'b', 'c', 'd']
print(len(liebiao)) # 查看容器中元素的数目
4
print(liebiao.count('b')) #查看元素出现的次数
1
index (查看索引)
print(liebiao.index('a')) # 查看索引
sort (排序)
liebiao = [2, 7, 4, 9, 6] # 正序
liebiao.sort()
print(liebiao)
liebiao.sort(reverse=True) # 倒序
print(liebiao)
reverse (反转)
liebiao = [2, 7, 4, 9, 6]
liebiao.reverse()
print(liebiao)
[6, 9, 4, 7, 2] # 反转
嵌套:
需要注意的一点:在对列表中的元素进行修改时,需放回到列表中
upper (全大写)
liebiao = ['lishicheng', 'wenhao']
i = liebiao[0].upper() # 转换大写
capitalize (只有首字母大写)
liebiao = ['lishicheng', 'wenhao']
i = liebiao[0].capitalize() # 首字母大写,其余小写
liebiao[0] = i # 替换到列表中
replace (替换)
liebiao = ['liShiCheng', 'wenhao']
liebiao[0] = liebiao[0].replace('Cheng', liebiao[0].capitalize())
print(liebiao) # 替换
['liShiLishicheng', 'wenhao']
元祖
元组被称为只读列表,即数据可以被查询,但不能被修改,所以,字符串的切片操作同样适用于元组。(可循环查询、可切片;儿子可以改,孙子不能改)
yuanzu = ('a', 'b', 'c', 1, 2, 3, ['liShiCheng', 'wenhao'])
yuanzu[6][1] = yuanzu[6][1].upper()
print(yuanzu)
格式化输出
# 代码一
name = input("Name:")
info = '%s ,%s ,完成率%%3'%(name, name)
print(info)
代码一:如果正确输出%号,那么需要在添加一个%号。
# 代码二
info = '''---%s---
%s
完成率%%3
''' %(name, name)
# 这行的 % 号就是把前面的字符串与拓号后面的变量关联起来
print(info)
---lsc---
lsc
完成率%3
代码二:利用’’'号,设计好打印的格式
其他函数
isinstance (判断对象的类型)
liebiao = ['liShiCheng', 'wenhao']
a = isinstance(liebiao, list) # 判断对象的类型
print(a)
> True
type
liebiao = ['a', 'b', 'c', ['1', '2', '3'], 'e', 'f']
for i in liebiao:
if type(i) == list:
for a in i:
print(a)
else:
print(i)
join (列表转化成字符串)
s = 'hello'
s1 = '-'.join(s) # 将连接符放在各个字符之间(可迭代对象,字符串,裂变,元祖,集合)
print(s1)
h-e-l-l-o
s = ['a', 'b', 'c']
s1 = '-'.join(s)
print(s1)
a-b-c # 列表转化成字符串
split (字符串转化成列表)
s = 'a,b,c'
s1 = s.split() # 字符串转化成列表
print(s1)
['a,b,c']
range (数字列表)
for i in range(0,100): # 数字列表(顾头不顾尾)
print(i)
1
2
3
.
.
99
for i in range(0, 10, -2):
print(i) # 没有结果,不报错
for循环语句(打印列表及下级列表)
liebiao = ['a', 'b', 'c', ['1', '2', '3'], 'e', 'f']
for i in liebiao:
if isinstance(liebiao , list):
for a in i:
print(a)
else:
print(i)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
liebiao = ['a', 'b', 'c', ['1', '2', '3'], 'e', 'f']
for i in liebiao:
if type(i) == list:
for a in i:
print(a)
else:
print(i)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
liebiao = ['a', 'b', 'c', ['1', '2', '3'], 'e', 'f']
for i in range(len(liebiao)):
if type(liebiao[i]) == list:
for j in liebiao[i]:
print(j)
else:
print(liebiao[i])