day03

it2022-05-05  87

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) >> a,b,c,*d=1,23,4,5,6 >>> a 1 >>> b 23 >>> c 4 >>> d [5, 6] >>> >>> print(a,b,c,d) 1 23 4 [5, 6] >>> print(a,b,c,d,sep'-') File "<stdin>", line 1 print(a,b,c,d,sep'-') ^ SyntaxError: invalid syntax >>> print(a,b,c,d,sep='-') 1-23-4-[5, 6] >>> x=666 >>> import sys >>> sys.stdout(x) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: '_io.TextIOWrapper' object is not callable >>> sys.stdout.write(x) Traceback (most recent call last): File "<stdin>", line 1, in <module> TypeError: write() argument must be str, not int >>> sys.stdout.write(str(x)) 6663

格式化字符串

%号格式化

占位符

格式描述%d有符号的整数%s字符串%c字符及ASCll码%o无符号八进制整数%x%X无符号十六进制整数%e%E浮点数,科学计数法%f浮点数

输出百分数

a=100 print('%d%%'%a)#100% 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)+'.') print('{address},name:{},age:{}'.format('Tom',18,address='hangzhou')) print('第一个元素是{0[0]},第二个元素是{0[1]},第三个元素是{0[2]},\ 第四个元素是{1[0]}'.format(('www','google','com'),('baidu.','j')))

his name is Tom,his age is 18 his name is Tom his age is 18 . his name isTom,his age is18. hangzhou,name:Tom,age:18 第一个元素是www,第二个元素是google,第三个元素是com,第四个元素是baidu.

列表

数组 特点:是一个有序的 、可重复的、可变类型

li1=[1,23,4] li2=['s','d'] print(li1+li2) #拼接 print(li1*3) #重复 ls=['w','w','wew','r',12] print(len(ls)) #长度 print((ls[1],ls[4])) #索引提取 print(ls[2][1])

[1, 23, 4, ‘s’, ‘d’] [1, 23, 4, 1, 23, 4, 1, 23, 4] 5 (‘w’, 12) e

#append #extend #insert li1=["sad","你好"] sr='城市学院' li=[] for i in sr: li.append(ord(i))#末尾添加对象 print(li) li.extend(li1)#在后面添加 print(li) li.insert(2,li1)#按照索引添加 print(li)

[22478, 24066, 23398, 38498] [22478, 24066, 23398, 38498, ‘sad’, ‘你好’] [22478, 24066, [‘sad’, ‘你好’], 23398, 38498, ‘sad’, ‘你好’]

# li[6]='123'#按照索引修改 # li[2:4]=[3,6] # print(li)

#删除 #pop() 返回被删除的元素 # 如果不指定索引 默认删除最后一个元素 # 删除指定索引对应的元素 #remove()删除第一次遇到的指定元素 lu=['s','ss',1.35,23,'t','s'] print(lu.pop(2)) print(lu) print(lu.remove('s')) print(lu) del lu[3] print(lu) lu.clear() print(lu)#清空

遍历

#遍历 #元素遍历 li=['23','23',4] for i in li: print(i) #索引遍历 li=['23','23',4] for i in range(len(li)): print(li[i]) #枚举遍历 #enumerate(),对于一个可迭代的/可遍历的对象 # 将其组成索引序列,;利用它,同时可以获得索引和值 li=['23','23',4] for i in enumerate(li,6): print(i) li=['23','23',4] for index,value in enumerate(li[:3],3): print(index,value) print([x for x in range(10) if x%2==0])#[0, 2, 4, 6, 8]

(6, ‘23’) (7, ‘23’) (8, 4) 3 23 4 23 5 4

排序

li=['we','waa','a','asdsd'] li.reverse()#反转 li.sort()#按照ascii码排序 li.sort(reverse=True) print(li)

[‘we’, ‘waa’, ‘asdsd’, ‘a’]

1.input()函数实现往空列表中添加元素,当输入"q"的时候,结束输入,并返回列表。

# list1=[] # while True: # a=input('添加元素 \t') # if a=='q': # break # else: # list1.append(a) # print(list1)

2.随机生成30个0-10的随机整数,并统计每个数出现的次数, 返回的结果形式为[[0, 3], [1, 4], … , [10, 5]]

# s=[0]*11 # d=[] # import random # for i in range(30): # a=random.randint(0,10) # for j in range(11): # if a==j: # s[j]+=1 # for i in range(11): # d.append([i,s[i]]) # print(d) #进阶版 # rand_int=[] # result_int=[] # for i in range(30): # rand_int.append(random.randint(0,10)) # for i in range(11): # result_int.append([i,rand_int.count(i)]) # print(result_int)

深浅拷贝

三种实现方式 切片操作[:]工厂函数list(li)copy模块内的copy函数 import copy la=['s','wq',1,23,45,67,[44,56]] lb_copy=copy.copy(la) lb_deepcopy=copy.deepcopy(la) print(la,id(la)) print(lb_copy,id(lb_copy))#浅拷贝 print(lb_deepcopy,id(lb_deepcopy))#深拷贝 la[6][1]=34 print(la) print(lb_copy) print(lb_deepcopy) #深拷贝拷贝对象的所有元素,包括多层嵌套的元素 #因此,是开辟了一个新的内存存储区,和数据源没有关系了。

[‘s’, ‘wq’, 1, 23, 45, 67, [44, 56]] 19671040 [‘s’, ‘wq’, 1, 23, 45, 67, [44, 56]] 19670200 [‘s’, ‘wq’, 1, 23, 45, 67, [44, 56]] 48590600 [‘s’, ‘wq’, 1, 23, 45, 67, [44, 34]] [‘s’, ‘wq’, 1, 23, 45, 67, [44, 34]] [‘s’, ‘wq’, 1, 23, 45, 67, [44, 56]]

#三目运算符 y=10 x=y+1 if y>10 else y-1 print(x,y) #带过滤功能格式 '''python [exp for iter_val in iter if if_condtion] ''' name=['Tom','Jack','Lucy'] subject=['python','java','c'] print([[i,j]for i in name for j in subject])

9 10 [[‘Tom’, ‘python’], [‘Tom’, ‘java’], [‘Tom’, ‘c’], [‘Jack’, ‘python’], [‘Jack’, ‘java’], [‘Jack’, ‘c’], [‘Lucy’, ‘python’], [‘Lucy’, ‘java’], [‘Lucy’, ‘c’]]

元组

可以重复的不可以更改符号使用()

定义

元祖的创建 空元组的创建,不能添加元素单元组的创建,需要在单元素后面添加逗号多元组的创建,包含多种数据类型 a=('a','b','c') b=(1,2,3,4,[5,5]) b[4][1]=6#可修改最为元素的列表 print(a+b) print(3*b) print(b[1:3])

(‘a’, ‘b’, ‘c’, 1, 2, 3, 4, [5, 6]) (1, 2, 3, 4, [5, 6], 1, 2, 3, 4, [5, 6], 1, 2, 3, 4, [5, 6]) (2, 3)

增,不能

删,删除某个元素,不能;但可以全部删除

重新调用不改变id 地址


最新回复(0)