1.字符串处理

  1. name = "my name is jiachen"
  2. #首字母大写
  3. print (name.capitalize())
  4. #统计字母出现次数
  5. print (name.count('a'))
  6. #居中打印
  7. print (name.center(50,'-'))
  8. #字符串装换成bytes类型
  9. print (name.encode('utf-8'))
  10. #判断以什么结尾
  11. print (name.endswith('en'))
  12. #将tab转多少个空格
  13. print (name.expandtabs())
  14. #查找字符开头索引
  15. print (name.find('y'))
  16. #格式化字符串
  17. #name = "my name is {name} and i am {year} old"
  18. #print (name.format(name='jiachen',year=27))
  19. #print (name.format_map({'name':'jiachen','year':27}))
  20. #是否为数字或字母
  21. print ('abc123'.isalnum())
  22. #是否为字母
  23. print ('Abc'.isalpha())
  24. #是否为十进制
  25. '.isdecimal())
  26. #是否为整数
  27. '.isdigit())
  28. #判断是不是一个合法的表示符(变量名)
  29. print ('a1A'.isidentifier())
  30. #是否为小写
  31. print ('Abc'.islower())
  32. #是否只有数字
  33. '.isnumeric())
  34. #是否为空格
  35. print (' '.isspace())
  36. #是否每个首字母大写
  37. print ('My Name Is'.istitle())
  38. #是否能打印,tty file drive file
  39. print ('My Name Is'.isprintable())
  40. #是否都为大写
  41. print ('My'.isupper())
  42. #拼接字符串
  43. print ('+'.join('abc'))
  44. #长50不够用*号后面补上
  45. print (name.ljust(50,'*'))
  46. #长50不够用*号前面补上
  47. print (name.rjust(50,'*'))
  48. #变小写
  49. print ('Alex'.lower())
  50. #变大写
  51. print ('alex'.upper())
  52. #从左边去掉空格回车
  53. print (' jiachen '.lstrip())
  54. #从右边去掉空格回车
  55. print (' jiachen '.rstrip())
  56. #去掉头尾空格
  57. print (' jiachen '.strip())
  58. #
  59. p = str.maketrans(')
  60. print ('jiachen'.translate(p))
  61. #字符串替换
  62. print ('jaaaiachen'.replace('a','x',1))
  63. #从右侧查找
  64. print ('jiachen'.rfind('e'))
  65. #分割成列表
  66. print ('jiachen'.split('a'))
  67. #匹配换行符,分割成列表
  68. print ('1+2\n+3+4'.splitlines())
  69. #反转大小写
  70. print ('Jiachen'.swapcase())
  71. #变成一个title
  72. print ('jiachen'.title())
  73. #不够50就前面补零
  74. print ('jiachen'.zfill(50))

2.字典操作

  1. info = {
  2. 'stu01':'Tom',
  3. 'stu02':'Jack',
  4. 'stu03':'Ben'
  5. }
  6.  
  7. #创建
  8. #info['stu04'] = 'petter'
  9. #修改
  10. #info['stu01'] = '汤姆'
  11. #删除
  12. #del info['stu01']
  13. #info.pop('stu02')
  14. #随机删
  15. #info.popitem()
  16. #查询
  17. #print (info['stu01'])
  18. #print ('stu01' in info)
  19.  
  20. #取字典的value
  21. #print (info.values())
  22. #清空字典
  23. #info.clear()
  24. #复制字典
  25. #info2 = info.copy()
  26. #初始化一个字典
  27. #print (info.fromkeys(['stu04','stu05'],'look'))
  28. #取某个key的值
  29. #print (info.get('stu01'))
  30. #key-value元祖所有添加到列表中
  31. #print (info.items())
  32. #取字典的key
  33. #print (info.keys())
  34. #查找key如果不存在使用默认值
  35. #print (info.setdefault('stu04','Jane'))
  36. #将一个字典添加到另一个字典中
  37. #info2 = {'name':'jiachen'}
  38. #info.update(info2)
  39. #print (info)

3.元祖操作

集合、去重、关系测试

集合是一个无序的,不重复的数据组合

  1. list_1 = [1,4,5,7,3,6,7,9]
  2. list_1 = set(list_1)
  3.  
  4. list_2 = set([2,6,0,66,22,8,4])
  5. print (list_1,list_2)
  6. '''
  7. #求交集
  8. print (list_1.intersection(list_2))
  9. #求并集
  10. print (list_1.union(list_2))
  11. #求差集,1里面有2里面没有
  12. print (list_1.difference(list_2))
  13. #求子集,1是2的子集
  14. print (list_1.issubset(list_2))
  15. #求父集,1是2的父集
  16. print (list_1.issuperset(list_2))
  17. #求对称差集,两个互相没有的,去掉重复的
  18. print (list_1.symmetric_difference(list_2))
  19. #判断是否有交集,有为false,无为true
  20. print (list_1.isdisjoint(list_2))
  21. '''
  22.  
  23. #交集
  24. print (list_1 & list_2)
  25. #并集
  26. print (list_1 | list_2)
  27. #差集
  28. print (list_1 - list_2)
  29. #对称差集
  30. print (list_1 ^ list_2)
  31.  
  32. #添加
  33. list_1.add(999)
  34. list_1.update([222,223,224])
  35. #删除
  36. list_1.remove(999) #不存在报错
  37. list_1.discard(888) #不存在不报错
  38. #长度
  39. len(list_1)
  40. #测试x是否是a的成员
  41. 999 in list_1
  42. #测试x是否不是a的成员
  43. 999 not in list_1

4.文件操作

文件操作过程

打开文件获得文件句柄-操作-关闭文件

  1. #文件句柄
  2. #f = open('yesterday','r',encoding='utf-8')
  3.  
  4. #r模式为读模式
  5. #f = open('yesterday','r',encoding='utf-8')
  6.  
  7. #w模式为写,创建文件
  8. #f = open('yesterday2','w',encoding='utf-8')
  9. #f.write("我爱北京天安门,\n")
  10. #f.write("天安门上太阳升\n")
  11.  
  12. #a模式为追加,创建文件
  13. #f = open('yesterday2','a',encoding='utf-8')
  14. #f.write("我爱北京天安门,\n")
  15. #f.write("天安门上太阳升\")
  16.  
  17. #关闭文件
  18. #f.close()
  19.  
  20. #读前5行
  21. '''
  22. f = open('yesterday2','r',encoding='utf-8')
  23. for i in range(5):
  24. print (f.readline())
  25. '''
  26.  
  27. #
  28. '''
  29. f = open('yesterday2','r',encoding='utf-8')
  30. for i in f.readlines():
  31. print (i,)
  32. '''
  33.  
  34. #high bige
  35. '''
  36. count = 0
  37. f = open('yesterday2','r',encoding='utf-8')
  38. for line in f:
  39. if count == 9:
  40. print ('------我是分割线-------')
  41. count += 1
  42. continue
  43. print (line.strip())
  44. count += 1
  45. '''
  46.  
  47. #seek和tall用法
  48. '''
  49. f = open('yesterday2','r',encoding='utf-8')
  50. print (f.tell())
  51. print (f.readline().strip())
  52. print (f.readline().strip())
  53. print (f.readline().strip())
  54. print (f.tell())
  55. f.seek(0)
  56. print (f.readline().strip())
  57. '''
  58.  
  59. #
  60. #f = open('yesterday2','r',encoding='utf-8')
  61. #print (f.encoding)
  62. #强制刷新保存
  63. #f.flush()
  64.  
  65. #截断
  66. #f = open('yesterday2','r',encoding='utf-8')
  67. #f.truncate(10)
  68.  
  69. #读写,r+,读和追加
  70. '''
  71. f = open('yesterday2','r+',encoding='utf-8')
  72. print (f.readline())
  73. print (f.readline())
  74. print (f.readline())
  75. f.write('-----diao----\n')
  76. print (f.readline())
  77. '''
  78. #写读,w+,先创建一个文件
  79. '''
  80. f = open('yesterday2','w+',encoding='utf-8')
  81. f.write('-----diao----\n')
  82. f.write('-----diao----\n')
  83. f.write('-----diao----\n')
  84. f.write('-----diao----\n')
  85. print (f.tell())
  86. f.seek(10)
  87. print (f.readline())
  88. f.write('should\n')
  89. '''
  90.  
  91. #追加读,a+
  92.  
  93. #读二进制文件
  94. #f = open('yesterday2','rb')
  95. #print (f.readline())
  96. #写二进制文件
  97. #f = open('yesterday2','wb')
  98. #f.write('hello\n'.encode('utf-8'))
  99. #f.close()
  100.  
  101. #文件修改
  102. f = open('yesterday2','r',encoding='utf-8')
  103. f_new = open('yesterday3','w',encoding='utf-8')
  104. for line in f:
  105. if '肆意的快乐' in line:
  106. line = line.replace('肆意的快乐等我享受','肆意的快乐等贾晨享受')
  107. f_new.write(line)
  108. f.close()

5.打印进度条

  1. import sys,time
  2.  
  3. for i in range(100):
  4. sys.stdout.write('#')
  5. sys.stdout.flush()
  6. time.sleep(0.5)

6.字符编码与转码

gbk -> decode -> unicode
unicode -> encode -> gbk
utf-8 > decode -> unicode
unicode -> encode -> utf-8

打印默认编码

  1. import sys
  2. print (sys.getdefaultencoding())

7.函数介绍-1

三种编程方式:面向对象、面向过程、函数式编程

函数式编程与面向过程编程的区别

  1. #函数
  2. def func1():
  3. '''testing1'''
  4. print ('in the func1')
  5. return 0
  6.  
  7. #过程
  8. def func2():
  9. '''testing2'''
  10. print ('in the func2')
  11.  
  12. x = func1()
  13. y = func2()
  14.  
  15. print ('from func1 return is %s' % x)
  16. print ('from func2 retrun is %s' % y)

函数介绍-2

代码重用

保持一致性

可扩展

  1. import time
  2.  
  3. def logger():
  4. with open('a.txt','a+') as f:
  5. time_format = '%Y-%m-%d %X'
  6. time_current = time.strftime(time_format)
  7. f.write('%s end action\n' % time_current)
  8.  
  9. def test1():
  10. '''testing1'''
  11. print ('test1 starting action...')
  12. logger()
  13.  
  14. def test2():
  15. '''testing2'''
  16. print ('test2 starting action...')
  17. logger()
  18.  
  19. def test3():
  20. '''testing3'''
  21. print('test3 starting action...')
  22. logger()
  23.  
  24. test1()
  25. test2()
  26. test3()

8.函数返回值

return用来结束函数,返回值可以赋值给一个变量

没有return,返回None

return一个值,返回一个值

return多个值,返回一个元祖

为什么要有返回值,因为我们需要一个函数执行的结果

  1. def test1():
  2. print ('in the test1')
  3.  
  4. def test2():
  5. print ('in the test2')
  6. return 0
  7.  
  8. def test3():
  9. print ('in the test3')
  10. return 1,'hello',[12,3],{1:1,2:2}
  11.  
  12. x = test1()
  13. y = test2()
  14. z = test3()
  15. print (x)
  16. print (y)
  17. print (z)

9.函数的参数

带参数的函数,x、y形参,xxx、yyy实参

  1. def test(x,y,z=3):
  2. print (x)
  3. print (y)
  4. print (z)

位置参数调用,实参和形参要一一对应

  1. test('xxx','yyy')

关键字参数调用,与形参顺序无关

  1. test(y=2,x=1)

python之路 - 基础3的更多相关文章

  1. python之路基础篇

    基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...

  2. Python之路-基础数据类型之列表 元组

    列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...

  3. 百万年薪python之路 -- 基础数据类型的补充

    基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...

  4. python之路 - 基础1

    1.安装windows安装双版本Python2,Python3 下载Python2和Python3https://www.python.org/downloads/ 分别安装两个版本 进入Python ...

  5. Python之路----------基础 一(数据类型、变量、基本语法、流程控制)

    一. 数据类型与变量 1.数据类型 整数   #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数  1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...

  6. python之路——基础篇(2)模块

    模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...

  7. python之路 - 基础2

    1.导入模块 import 模块名 form 模块名 import 模块中的函数 可以将模块放入同级目录中,也可以将模块放入site-packages目录中 import sys print (sys ...

  8. Python之路-基础数据类型之字符串

    字符串类型 字符串是不可变的数据类型 索引(下标) 我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就 ...

  9. Python之路-基础数据类型之字典 集合

    字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...

  10. 百万年薪python之路 -- 基础数据类型的补充练习

    1.看代码写结果 v1 = [1,2,3,4,5] v2 = [v1,v1,v1] v1.append(6) print(v1) print(v2) [1,2,3,4,5,6] [[1,2,3,4,5 ...

随机推荐

  1. JS 禁止右键,禁止复制,禁止粘贴

    原文:JS 禁止右键,禁止复制,禁止粘贴 如何用用javascript 禁止右键,禁止复制,禁止粘贴,做站时常会用到这些代码,所以收藏了一下!1. oncontextmenu="window ...

  2. 【Android开发日记】妙用 RelativeLayout 实现3 段布局

    在设计过程中,我们经常会遇到这样的需求: 把一条线3控制,左对齐左控制,右侧控制右对齐,中间控制,以填补剩余空间. 或者一列内放3个控件,上面的与顶部对齐,以下的沉在最底部,中间控件是弹性的.充满剩余 ...

  3. Mysql插入内容过长(Packet for query is too large)

    原文:Mysql插入内容过长(Packet for query is too large) 这个以前一直没有碰到过,一次性向Mysql数据库插入内容过长的话会出现这个问题,解决办法就是在Mysql配置 ...

  4. String的使用

    String的常用方法 方法 说明 Anchor() 创建html锚 Concat() 把字符串连接起来 indexOf() 查找字符出现的位置 lastIndexOf() 查找最后出现字符 char ...

  5. C++ builder 中AnsiString的字符串转换方法大全

    C++ builder 中AnsiString的字符串转换方法大全 //Ansistring 转 charvoid __fastcall TForm1::Button1Click(TObject *S ...

  6. Object Pool

    设计模式之美:Object Pool(对象池)   索引 意图 结构 参与者 适用性 效果 相关模式 实现 实现方式(一):实现 DatabaseConnectionPool 类. 意图 运用对象池化 ...

  7. 基于python的《Hadoop权威指南》一书中气象数据下载和map reduce化数据处理及其可视化

    文档内容: 1:下载<hadoop权威指南>中的气象数据 2:对下载的气象数据归档整理并读取数据 3:对气象数据进行map reduce进行处理 关键词:<Hadoop权威指南> ...

  8. 【IOS开发】UItextfield输入电话号码,自动调整格式

    UItextfield中实现输入电话号码,自动按位置在加“—”效果.效果图如下. 核心代码: -(BOOL)textField:(UITextField *)textField shouldChang ...

  9. Linux学习-Linux历史(总结篇)

    Linux之前,Unix的历史 1969年以前,一个伟大的梦想:Bell,MIT与GE的Multics系统 在此之前的计算机主机少,用户从多,程序是在读卡纸上打洞,光是等待.为了更加强化大型主机的功能 ...

  10. 安装mono和jexus,运行asp.net程序

    随笔- 62  文章- 1  评论- 7  raspberrypi(树莓派)上安装mono和jexus,运行asp.net程序   参考网址: http://www.linuxdot.net/ htt ...