python第三到二十天 函数

  1 # test="name\tpwd\ttel\nzhu\t123\t1234567\nzhu\t123\t1234567\nzhu\t123\t1234567"
  2 # a=test.expandtabs(20) #用于表格的排版制作每一列都用20个位置
  3 # print(a)
  4 
  5 # test="asd啊"
  6 # a=test.isalpha() #判断是否全部都是字母或汉字 返回 true  false
  7 # print(a)
  8 
  9 # test="敢问路在何方"
 10 # a=" "
 11 # v1=a.join(test)#根据某种定义将字符连接起来
 12 # b="_"
 13 # v2=b.join(test)
 14 # print(v1,v2)
 15 
 16 # test="aaa"
 17 # v1=test.ljust(12,"*")
 18 # v2=test.rjust(12,"-")
 19 # v3=test.upper()  #转大写
 20 # v4=test.lower()#转小写
 21 # v5=test.islower()# 判断是否为小写
 22 # print(v1,v2,v3,v4,v5)
 23 
 24 
 25 # test=" wa sd "
 26 # v1=test.lstrip()
 27 # v2=test.rstrip()   #处理空格
 28 # v3=test.strip()
 29 # print(v3,v1,v2)
 30 
 31 #根据对应关系进行字符替换
 32 # test1="abcde"
 33 # test2="12345"
 34 # test="aaabbbcccdddeee"
 35 # s=str.maketrans(test1,test2)  # a对应1 b对应2 .。。。
 36 # newtest=test.translate(s) #把abc等全部替换成123等
 37 # print(newtest)
 38 
 39 #分割字符串
 40 # test="abcdabcdabcd"
 41 # v=test.partition("a")
 42 # test.split('a')
 43 # test.rpartition('a')
 44 # test.rsplit('a')
 45 # print(v)
 46 
 47 # test="adad\nfssf\nyutu"
 48 # a=test.splitlines()  #只能根据换行符分割
 49 # print(a)
 50 
 51 # test="AlEx"
 52 # v=test.swapcase()  #大小写相互转换
 53 # print(v)
 54 
 55 
 56 
 57 #通过索引下标获取字符串中的某一个字符
 58 # test="alex"
 59 # v=test[0]
 60 # v=test[0:2]
 61 # print(v)
 62 
 63 # test="asdasdasdasd"
 64 # v=test.replace("a","1",2)  #这个也表示替换,把a替换为1  参数2表示只替换前两个
 65 # print(v)
 66 
 67 
 68 #帮助创建连续的数字或者间隔相同的数字
 69 # a=range(0,100,8) #创建0-100的数字,数字的间隔为10
 70 # for item in a:    #需要for循环遍历才可以显示
 71 #     print(item)
 72 
 73 #输出所输入字符的下标
 74 # test=input("请输入:")
 75 # num=len(test)
 76 # s=range(num)
 77 # for item in s:
 78 #     print(item,test[item])
 79 
 80 
 81 #列表
 82 
 83 #lists=[1,2,3,"a","b"]
 84 
 85 # print(lists[0])
 86 # for item in lists:
 87 #     print(item)
 88 
 89 
 90 #以切片方式进行修改和删除
 91 # lists[1,3]=["q","w"]  #修改
 92 # del lists[0]   #删除
 93 #v= 1 in lists  #判断某个东西是否在列表中
 94 
 95 
 96 #s="qwerasdf"
 97 #a=list(s) 字符串转列表
 98 #print(a)
 99 
100 
101 #lists=[1,2,3,"a","b"]
102 #lists.reverse()  #反转
103 # lists=[1,2,3]
104 # lists.sort() 从小到大排序
105 # lists.sort(reverse=True) 从大到小排
106 # print(lists)
107 
108 
109 
110 #元组  元组元素不可被修改   不能增加或删除
111 #tuple   字符串  列表  元祖之间可以相互转化
112 #tu=("aa","bb","cc",["dd",("ee","ff")],["oo"],)
113 #元组的一级元素不可被修改 或删除
114 #tu[3][0]="bb"
115 #tu[4][0]="gg"
116 #print(tu)    用于创建不可被修改的东西使用元组
117 
118 
119 
120 #字典  dict关键字
121 #就是保存的键值对,key:value 形式   字典是没有顺序的   字典元素可予以删除
122 #对字典for循环默认循环key值
123 
124 # test={
125 #     "key1":123,
126 #     "key2":"aaa",
127 #     1:"bbb",
128 #     "key3":"ccc"
129 # }
130 
131 #循环key value 的几种方法
132 # for a in test:
133 #     print(a)
134 # for b in test.keys():
135 #     print(b)
136 # for c in test.values()
137 #     print(c)
138 # for k,v in test.items():
139 #     print(k,v)
140 
141 #test.update(key1=abc,key4=cba) 存在的执行更新,不存在的执行创建
142 
143 # v=test.get("key1")
144 # print(v)
145 # z=test.get("aaa","没有这个值")
146 # print(z)
147 
148 
149 #集合{}  集合是无序的  集合中不能存在相同的值    集合中必须是不可变类型 int str
150 #test={"a","b","c"}
151 #test2={"c","d","e"}
152 #test.intersection(test2)   求两个集合的交集
153 
154 #并集
155 #test.union(test2)
156 
157 #差集
158 #test.difference(test2)
159 
160 #交叉补集
161 #test.symmetric_difference(test2)
162 
163 #定义不可变集合
164 #frozenset()
165 
166 
167 
168 
169 # %字符串拼接   %s 表示传的是字符串也几乎可以传任何类型
170 #msg="我叫 %s 在 %s" %("zjy","bj")
171 #print(msg)
172 # %(key)s  可以根据key值传参数
173 #  %.2f 打印浮点数 保留两位
174 #  %.2f %%  打印百分比
175 
176 
177 #format()
178 # print("my name is {},age are {}".format("z",18))
179 # print("my name is {1},age are {0}".format("z",18))
180 # print("my name is {names},age are {ages}".format(names="z",ages=18))
181 
182 
183 
184 #def 定义函数的关键字
185 # name="aaa"
186 # def test():
187 #     print("bbb")
188 #     global name  #global表示是外面的全局变量
189 #     name="ccc"    #改变了全局变量name的值
190 #
191 # test()
192 # print(name)
193 
194 
195 
196 #lambda 定义匿名函数关键字
197 #所谓匿名函数就是没有函数名
198 
199 # lambda x,y:x+1,y-1    #x为函数的形参  返回值为x+1    形参也可以有多个
200 #      #这两个函数具有相同的功能
201 # def lam(a):
202 #     return a+1
203 #
204 # fun=lambda x:x+1
205 # print(lam(10))
206 # print(fun(10))
207 
208 
209 
210 #编程方法分为三种:面向对象   面向过程   函数式编程
211 
212 
213 
214 
215 #函数式编程
216 #numlist=[1,4,3,6,23,12]
217 
218 #def add_one(x):  #这个还可以用匿名函数来代替 lambda x:x+1
219 #    return x+1
220 
221 # def maplist(fun,list):   #fun为一个函数方法的形式参数,它代表了一个方法
222 #     ret=[]
223 #     for i in list:
224 #         res=fun(i)
225 #         ret.append(res)
226 #     return ret
227 
228 #a=maplist(add_one,numlist)
229 #a=maplist(lambda x:x+1,numlist)
230 #print(a)
231 
232 
233 #使用系统提供map函数  map函数是对数据进行的处理,map函数最终返回结果数据的长度不会改变,只是里面的值会发生变化
234 #print(list(map(add_one,numlist)))   #注意使用map这种系统内置方法,后面传的数据就要是可迭代对象,所谓可迭代对象就是可以被for循环遍历的
235 
236 
237 
238 #filter() 函数   是对所有数据进行的筛选,返回结果长度会改变
239 # names=[
240 #     {'name':'aaa','age':'1000'},
241 #     {'name':'bbb','age':'500'},
242 #     {'name':'ccc','age':'25'}
243 # ]
244 # filter()  #这个系统内置函数与map使用方法类似,
245 #filter(lambda n:n['age']<150,names)    只留下年龄正常的人
246 
247 
248 
249 #reduce() 函数   是对数据进行的压缩  只返回一个值
250 # from functools import reduce  #使用之前首先要导入模块
251 #
252 # nums=[1,2,3,4,5,6]
253 # res=reduce(lambda x,y:x+y,nums)   #reduce()可以传递三个参数,最后一个参数默认为none,可以传也可以不传
254 # print(res)
255 
256 
257 
258 
259 #zip()函数    传入的参数应该是序列如  字符串  元组  列表
260 # a=zip("world","12345")
261 # print(list(a))      #zip可以将其一一对应组合起来
262 
263 # s={"name":"asd","age":"12","sex":"man"}
264 # a=zip(s.keys(),s.values())
265 # print(list(a))
266 
267 
268 
269 
270 
271 # min max 高级使用
272 #dic={"age1":12,"age2":13,"age3":14}
273 
274 #print(max(dic.values()))
275 
276 #print(max(dic))   比较字典默认比较keys的值
277 
278 #max 比较时是一个一个字符进行比较,第一个字符分出大小之后后面的也就不用比较了
279 
280 
281 
282 
283 #chr 与 ord
284 #print(chr(100))    #chr() 输入数字转为对应的阿斯卡码表中对应的字符
285 #print(ord('A'))     #ord()输入字符转为对应的数字
286 
287 
288 
289 #pow()
290 #print(pow(2,4))   #如果只传入两个参数  就相当计算2的4次方   例如:2**4
291 #print(pow(2,4,3))   #传入三个参数  就相当于  2**4%3
292 
293 
294 
295 
296 #reversed()  反转函数
297 
298 
299 #round()   四舍五入函数
300 
301 
302 
303 
304 
305 #sorted()  排序   排序只能同数据类型进行排序
306 # dic_a={
307 #     'ada':10,
308 #     'aide':14,
309 #     'gfx':19,
310 #     'fbkn':30
311 # }
312 #
313 # print(sorted(dic_a))  #默认根据keys值进行排序 a-z
314 #
315 # print(sorted(dic_a,key=lambda key:dic_a[key]))  #这个是根据values值大小排序,只显示打印出keys值
316 #
317 # print(sorted(zip(dic_a.values(),dic_a.keys())))   #这个是根据values值大小排序,将keys  values全部打印出来
318 
319 
320 
321 
322 #文件读处理    'r' 代表只读处理
323 #a=open('testfile','r',encoding='utf-8') #open() 打开文件时默认是按照系统的编码打开文件,如果文件存入磁盘时,编码方式与操作系统的编码方式不一样,打开时就会出错。
324 #s=a.read()    #encoding='utf-8'  指定以什么编码方式打开
325 #a.readline()  #一次只读取一行
326 # s=a.readlines()  #一次读取多行并且转为列表形式
327 # print(s)
328 
329 
330 #文件写处理   'w' 文件写只能对文件进行写入,不能读取,如果文件存在会将文件清空,不存在将会自动创建文件
331 # n=open("testwrite",'w',encoding='utf-8')   #写入操作只能写入字符串类型
332 # n.write('aaaaaaaaaa\n')     #文件写入不能自动换行,只能人为换行
333 # n.write('bbbbbbbbbb\n')
334 # n.write('cccccccccc\n')
335 
336 
337 
338 
339 #文件追加操作   'a'   a模式也是写的模式,只是它是追加的方式写的,追加到最后一行
340  #n=open("testwrite",'a',encoding='utf-8')
341  #n.write('写到最后一行')
342  #n.flush()   #刷新
343 
344 
345 
346 
347 #文件的修改操作思路:r模式打开一个文件将里面的内容取出来,然后再w模式打开一个重名的文件对上面取出来的内容进行字符串的操作,再把修改后的内容
348 #重新写到这个文件里完成修改操作
349    #使用with关键字可以一次性打开多个文件     一段代码过长可以使用\来断行
350 # with open('testfile','r',encoding='utf-8') as tf,\
351 # open("testwrite",'w',encoding='utf-8') as tw:
352 #     print('xxxx....其他的操作')
353 
354 
355 
356 
357 # 三元表达式
358 # name="asd"
359 # res="true"  if name=="asd" else "false"    #判断if条件是否为true,如果为真则执行前面的代码  否则执行后面的代码
360 # print(res)
361 
362 
363 
364 # 列表解析
365 #list=["字符%s" %i for i in range(10)]
366 #print(list)
367 
368 
369 # def test():    #函数中有yieid就是生成器函数
370 #     yield 1
371 #     yield 2
372 
373 
374 
375 #生产者消费者模型   单线程的并发,就是在一个线程同时运行两个程序
376 # import  time
377 # def xiaofei(name):
378 #     print("我是%s,我准备吃大餐。。。" %name)
379 #     while True:
380 #         dinner=yield
381 #         time.sleep(0.5)
382 #         print("%s把%s吃掉了" %(name,dinner))
383 #
384 #
385 # def shengchan():
386 #     p1=xiaofei("朱")
387 #     p1.__next__()
388 #     for i in range(5):
389 #         p1.send("叫花鸡 %s" %i)
390 #
391 # shengchan()
392 
393 
394 
395 
396 #装饰器  本质就是函数   功能就是为其他函数添加其它附加功能   并且不能修改被修饰函数的源代码 也不能修改被修饰函数的调用方式
397 
398 #装饰器=高阶函数+函数嵌套+闭包
399 
400 
401 #高阶函数
402 # import time
403 # def a():
404 #     print("a")
405 #
406 # def b(func):
407 #     start=time.time()
408 #     func()
409 #     end=time.time()
410 #     print(start-end)
411 #     return func
412 #
413 # a=b(a)
414 # a()
415 
416 
417 
418 #函数嵌套   就是函数里再定义函数
419 
420 # def a():
421 #     print("a")
422 #     def b():
423 #         print("b")
424 #         def c():
425 #             print("c")
426 #         c()
427 #     b()
428 #
429 #
430 #
431 #
432 # a()
433 
434 
435 
436 #装饰器
437 # def t(func):   #为b()函数增加功能
438 #      def a(*args,**kwargs):   #当被修饰的函数有参数时要加上*args,**kwargs,就可以接收不同数量的参数
439 #          res=func(*args,**kwargs)
440 #          print("增加的功能")
441 #          return res
442 #      return a
443 #
444 # @t   #@t 相当于  b=t(b)
445 # def b(name,age):
446 #     print("原功能")
447 #     return "返回值"
448 #
449 #
450 # #b()   #当b()没有返回值时
451 #
452 # aaa=b()  #当b()有返回值时这样运行
453 # print(aaa)
454 
455 
456 
457 
458 #需求中装饰器的简单应用
459 # user_list=[
460 #     {'name':'alex','passwd':'123'},
461 #     {'name':'linhaifeng','passwd':'123'},
462 #     {'name':'wupeiqi','passwd':'123'},
463 #     {'name':'yuanhao','passwd':'123'},
464 # ]
465 # current_dic={'username':None,'login':False}
466 #
467 #
468 # def auth_func(func):
469 #     def wrapper(*args,**kwargs):
470 #         if current_dic['username'] and current_dic['login']:
471 #             res = func(*args, **kwargs)
472 #             return res
473 #         username=input('用户名:').strip()
474 #         passwd=input('密码:').strip()
475 #         for user_dic in user_list:
476 #             if username == user_dic['name'] and passwd == user_dic['passwd']:
477 #                 current_dic['username']=username
478 #                 current_dic['login']=True
479 #                 res = func(*args, **kwargs)
480 #                 return res
481 #         else:
482 #             print('用户名或者密码错误')
483 #
484 #     return wrapper
485 #
486 # @auth_func
487 # def index():
488 #     print('欢迎来到京东主页')
489 #
490 # @auth_func
491 # def home(name):
492 #     print('欢迎回家%s' %name)
493 #
494 # @auth_func
495 # def shopping_car(name):
496 #     print('%s的购物车里有[%s,%s,%s]' %(name,'奶茶','妹妹','娃娃'))
497 #
498 # print('before-->',current_dic)
499 # index()
500 # print('after--->',current_dic)
501 # home('产品经理')
502 # shopping_car('产品经理')

 

转载于:https://www.cnblogs.com/nerver-give-up-Lall/p/9652372.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值