print()函数查看帮助文件
>>> help(print)
Help on built-in function print in module builtins:
print(...)
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
Prints the values to a stream, or to sys.stdout by default.
Optional keyword arguments:
file: a file-like object (stream); defaults to the current sys.stdout.
sep: string inserted between values, default a space.
end: string appended after the last value, default a newline.
flush: whether to forcibly flush the stream.
>>>
语法格式
print(value, ..., sep=' ', end='\n', file=sys.stdout, flush=False)
等价于
print(value1,value2,....,valuen,sep=' ', end='\n', file=sys.stdout, flush=False)
print("%d" % 6688)
name = "TOM"
age = 18
print("His name is %s,his age is %d" % (name,age))
print("His name is",name,"his age is " ,age,".")
print("His name is "+ name +",his age is "+ str(age) + ".")
格式化字符串
%格式化
占位符
格式 | 描述 |
---|---|
%d | 有符号的整数 |
%s | 字符串 |
%c | 字符以及ASCll码 |
%o | 无符号八进制整数 |
%x/%X | 无符号十六进制整数 |
%e/%E | 浮点数,科学计数法 |
%f | 浮点数 |
% 格式化字符串 用%匹配参数,注意个数一一对应
“%d%%” % a
‘100%’
>>> print("His name is %s,his age is %d" % (name,age))
His name is TOM,his age is 18
>>> print("His name is",name,"his age is" ,age,".")
His name is TOM his age is 18 .
>>> print("His name is "+ name +",his age is "+ str(age) + ".")
His name is TOM,his age is 18.
format格式化
1)位置映射
print("{}:{}".format('Tom',18))
print("Name:{},age:{}".format('Tom',18))
2)关键字映射
print("Name:{},age:{},{address}".format('Tom',18, address = "gongshu,hangzhou")) #关键字放在位置参数的后面
print("{address},Name:{},age:{},".format('Tom',18, address = "gongshu,hangzhou"))
列表
列表是用方括号括起来的[],每个元素以逗号分隔;
可以储存不同的数据类型
特点:
-是一个有序的
-可以重复的
-可变类型
创建
-创建空列表
li = []
print(type(li))
-创建多元素列表
i = [1,2,3,"sasa","city","collage",["i","love","python"]]
print((li,type(li)))
-强转
sr = 'abcd'
li = list(sr)
print(li,type(li))
1)拼接
li1 = ["i"]
li2 = ["am","A"]
print(li1 + li2)
# ['i', 'am', 'A']
2)重复
print(li2 *3)
#['am', 'A', 'am', 'A', 'am', 'A']
3)索引(偏移)[], 切片[:],[::]
li = ["c","i","t","y","city","collage","zhejiang",["city","collage","zhejiang"]]
print(len(li))
print((li[0],li[-7]))
print(li[:5])
print(li[::-1])
print(li[7][1])
8
('c', 'i')
['c', 'i', 't', 'y', 'city']
[['city', 'collage', 'zhejiang'], 'zhejiang', 'collage', 'city', 'y', 't', 'i', 'c']
collage
4)列表的常见操作
增删改查
1.增
-append()
-extend()
-insert()
li = ["city","collage"]
print(id(li))
li1 = ["a","b","c"]
li.append(li1)
print((li,id(li)))
li1 = ["a","b"]
print(id(li))
sr = "城市学院"
li = []
for i in sr:
li.append(ord(i))
print(li)
2159465076360
(['city', 'collage', ['a', 'b', 'c']], 2159465076360)
2159465076360
[22478, 24066, 23398, 38498]
li = ["city","collage"]
li1 = ["a","b","c"]
li.extend(li1)
print(li)
li.insert(1,li1)
print(li)
改
li[5] = "6666"
li[2:6] = ["x","y","z"]
print(li)
删除
pop() ,返回被删除的元素
如果不指定索引,默认删最后一个元素
删除指定索引对应的元素
li = ["a","b","c","d"]print(li.pop())print(li)
remove()移除第一次遇到的指定元素
li = ["a","b","c","d","d"]
print(li.remove("d"))
print(li)
del() 删除指定元素
li = ["a","b","c","d","d","aaa"]
del li[5]
print(li)
li.clear()
print(li)
clear() 清空
查
索引,切片
遍历
(1)元素遍历
li = ["a","b","c","d","d","aaa"]
for i in li:
print(i)
(2)索引遍历
li = ["a","b","c","d","d","aaa"]
for i in range(len(li)):
print(li[i])
(3)枚举遍历
enumerate(),对于一个可迭代的/可遍历的对象(列表,字符串等),
enumerate() 将其组成一个索引序列,利用它,我们可以同时获得索引和值
li = ["a","b","c"]
for i in enumerate(li):
print(i)
(0, 'a')
(1, 'b')
(2, 'c')
li = ["a","b","c"]
for index, value in enumerate(li[:2],2):
print(index,value)
2 a
3 b
堆和栈,用列表实现
其他操作
计数,count(),查找元素出现的次数
反转,reverse()
li = list("abcd")
print(li)li.reverse()
print(li)
li.sort()
print(li)
li.sort(reverse=True)
print(li)
排序,sort()
1.input()函数实现往空列表中添加元素,当输入“q”的时候,结束输入,并返回列表
li = []
while True:
i = input("请输入:")
if i == "q":
print(li)
break
li.append(i)
2.随机生成30个0-10 的随机整数,并统计每个数出现的次数
返回结果的形式为[[0,3],[1,4]]
import random
rand_int = []
result_li = []
for i in range(30):
rand_int.append(random.randint(0,10))
print(rand_int)
sum = 0
for i in range(0,11):
result_li.append([i,rand_int.count(i)])
sum += rand_int.count(i)
print(result_li)
print(sum)
赋值与深浅拷贝
拷贝
import copy
la =[1,2,3,4,5,'a',['b1','b2']]
lb_copy = copy.copy(la)
la[6][0] = "bbb"
print(la)
print(lb_copy)
深拷贝
import copy
la =[1,2,3,4,5,'a',['b1','b2']]
lb_deepcopy = copy.deepcopy(la)
print(la,id(la))
print(lb_deepcopy,id(lb_deepcopy))
la[6][1] = "aaa"
print(la)
print(lb_deepcopy)
[1, 2, 3, 4, 5, 'a', ['b1', 'b2']] 2275933574856
[1, 2, 3, 4, 5, 'a', ['b1', 'b2']] 2275933576136
[1, 2, 3, 4, 5, 'a', ['b1', 'aaa']]
[1, 2, 3, 4, 5, 'a', ['b1', 'b2']]
浅拷贝相当于我们只拷贝了一层,修改外层元素,会修改引用,让他们指向另一个位置;
修改嵌套列表的元素,列表地址没有发生变化,指向的还是同一个位置
(会跟着一起变)
深拷贝拷贝对象的所有元素,包括多层嵌套的元素。因此,是开辟了一个新的内存存储区,和数据源没有关系了
元组
有序
可以重复
不可更改
符号使用
定义:用圆括号包裹的一组元素值,逗号隔开
创建
空元组的创建,不能添加元素
tup1 = ()
单元素元组的创建,需要在单元素后面添加逗号
tup1 = (50,)
多元素元组的创建,包含多种数据类型
1)拼接
2)重复
3)索引(偏移) 切片
字符串 | 列表 | 元组 | |
---|---|---|---|
增 | join() | -append() -extend() -insert() | \ |
删 | sr.strip() | pop() remove() del() clear() | \ |
改 | replace(old, new) lower() upper() title() capitalize() | li[5] = "6666" li[2:6] = [“x”,“y”,“z”] | \ |
查/遍历 | print ("var1[0]: ", var1[0]) print ("var2[1:5]: ", var2[1:5]) | for i in li: print(i) for i in range(len(li)): print(li[i]) for index, value in enumerate(li[:2],2): print(index,value) | 和列表相同 |
创建 | var1 = 'Hello World! | li = [],li = [1, 2, 3, 4, 5 ] | tup1 = (),tup1 = (50,) |
拼接 | var1[:6] + var2 | (li1 + li2) | tup1 + tup2 |
索引 | print(len(str)) print(str[2]) | print(len(li)) print((li[0],li[-7])) print(li[:5]) print(li[::-1]) | 和列表相同 |
计数 | count(str, beg= 0,end=len(string)) | count() | |
互相转换 | var=‘abcd’ list=[] list=[i for i in var] tup=tuple(var) | var1=’ ,’.join(list) |