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('产品经理')
python第三到二十天 函数
猜你喜欢
转载自www.cnblogs.com/nerver-give-up-Lall/p/9652372.html
今日推荐
周排行