python之路 - 基础3
1.字符串处理
name = "my name is jiachen" #首字母大写 print (name.capitalize()) #统计字母出现次数 print (name.count('a')) #居中打印 print (name.center(50,'-')) #字符串装换成bytes类型 print (name.encode('utf-8')) #判断以什么结尾 print (name.endswith('en')) #将tab转多少个空格 print (name.expandtabs()) #查找字符开头索引 print (name.find('y')) #格式化字符串 #name = "my name is {name} and i am {year} old" #print (name.format(name='jiachen',year=27)) #print (name.format_map({'name':'jiachen','year':27})) #是否为数字或字母 print ('abc123'.isalnum()) #是否为字母 print ('Abc'.isalpha()) #是否为十进制 '.isdecimal()) #是否为整数 '.isdigit()) #判断是不是一个合法的表示符(变量名) print ('a1A'.isidentifier()) #是否为小写 print ('Abc'.islower()) #是否只有数字 '.isnumeric()) #是否为空格 print (' '.isspace()) #是否每个首字母大写 print ('My Name Is'.istitle()) #是否能打印,tty file drive file print ('My Name Is'.isprintable()) #是否都为大写 print ('My'.isupper()) #拼接字符串 print ('+'.join('abc')) #长50不够用*号后面补上 print (name.ljust(50,'*')) #长50不够用*号前面补上 print (name.rjust(50,'*')) #变小写 print ('Alex'.lower()) #变大写 print ('alex'.upper()) #从左边去掉空格回车 print (' jiachen '.lstrip()) #从右边去掉空格回车 print (' jiachen '.rstrip()) #去掉头尾空格 print (' jiachen '.strip()) # p = str.maketrans(') print ('jiachen'.translate(p)) #字符串替换 print ('jaaaiachen'.replace('a','x',1)) #从右侧查找 print ('jiachen'.rfind('e')) #分割成列表 print ('jiachen'.split('a')) #匹配换行符,分割成列表 print ('1+2\n+3+4'.splitlines()) #反转大小写 print ('Jiachen'.swapcase()) #变成一个title print ('jiachen'.title()) #不够50就前面补零 print ('jiachen'.zfill(50))
2.字典操作
info = { 'stu01':'Tom', 'stu02':'Jack', 'stu03':'Ben' } #创建 #info['stu04'] = 'petter' #修改 #info['stu01'] = '汤姆' #删除 #del info['stu01'] #info.pop('stu02') #随机删 #info.popitem() #查询 #print (info['stu01']) #print ('stu01' in info) #取字典的value #print (info.values()) #清空字典 #info.clear() #复制字典 #info2 = info.copy() #初始化一个字典 #print (info.fromkeys(['stu04','stu05'],'look')) #取某个key的值 #print (info.get('stu01')) #key-value元祖所有添加到列表中 #print (info.items()) #取字典的key #print (info.keys()) #查找key如果不存在使用默认值 #print (info.setdefault('stu04','Jane')) #将一个字典添加到另一个字典中 #info2 = {'name':'jiachen'} #info.update(info2) #print (info)
3.元祖操作
集合、去重、关系测试
集合是一个无序的,不重复的数据组合
list_1 = [1,4,5,7,3,6,7,9] list_1 = set(list_1) list_2 = set([2,6,0,66,22,8,4]) print (list_1,list_2) ''' #求交集 print (list_1.intersection(list_2)) #求并集 print (list_1.union(list_2)) #求差集,1里面有2里面没有 print (list_1.difference(list_2)) #求子集,1是2的子集 print (list_1.issubset(list_2)) #求父集,1是2的父集 print (list_1.issuperset(list_2)) #求对称差集,两个互相没有的,去掉重复的 print (list_1.symmetric_difference(list_2)) #判断是否有交集,有为false,无为true print (list_1.isdisjoint(list_2)) ''' #交集 print (list_1 & list_2) #并集 print (list_1 | list_2) #差集 print (list_1 - list_2) #对称差集 print (list_1 ^ list_2) #添加 list_1.add(999) list_1.update([222,223,224]) #删除 list_1.remove(999) #不存在报错 list_1.discard(888) #不存在不报错 #长度 len(list_1) #测试x是否是a的成员 999 in list_1 #测试x是否不是a的成员 999 not in list_1
4.文件操作
文件操作过程
打开文件获得文件句柄-操作-关闭文件
#文件句柄 #f = open('yesterday','r',encoding='utf-8') #r模式为读模式 #f = open('yesterday','r',encoding='utf-8') #w模式为写,创建文件 #f = open('yesterday2','w',encoding='utf-8') #f.write("我爱北京天安门,\n") #f.write("天安门上太阳升\n") #a模式为追加,创建文件 #f = open('yesterday2','a',encoding='utf-8') #f.write("我爱北京天安门,\n") #f.write("天安门上太阳升\") #关闭文件 #f.close() #读前5行 ''' f = open('yesterday2','r',encoding='utf-8') for i in range(5): print (f.readline()) ''' # ''' f = open('yesterday2','r',encoding='utf-8') for i in f.readlines(): print (i,) ''' #high bige ''' count = 0 f = open('yesterday2','r',encoding='utf-8') for line in f: if count == 9: print ('------我是分割线-------') count += 1 continue print (line.strip()) count += 1 ''' #seek和tall用法 ''' f = open('yesterday2','r',encoding='utf-8') print (f.tell()) print (f.readline().strip()) print (f.readline().strip()) print (f.readline().strip()) print (f.tell()) f.seek(0) print (f.readline().strip()) ''' # #f = open('yesterday2','r',encoding='utf-8') #print (f.encoding) #强制刷新保存 #f.flush() #截断 #f = open('yesterday2','r',encoding='utf-8') #f.truncate(10) #读写,r+,读和追加 ''' f = open('yesterday2','r+',encoding='utf-8') print (f.readline()) print (f.readline()) print (f.readline()) f.write('-----diao----\n') print (f.readline()) ''' #写读,w+,先创建一个文件 ''' f = open('yesterday2','w+',encoding='utf-8') f.write('-----diao----\n') f.write('-----diao----\n') f.write('-----diao----\n') f.write('-----diao----\n') print (f.tell()) f.seek(10) print (f.readline()) f.write('should\n') ''' #追加读,a+ #读二进制文件 #f = open('yesterday2','rb') #print (f.readline()) #写二进制文件 #f = open('yesterday2','wb') #f.write('hello\n'.encode('utf-8')) #f.close() #文件修改 f = open('yesterday2','r',encoding='utf-8') f_new = open('yesterday3','w',encoding='utf-8') for line in f: if '肆意的快乐' in line: line = line.replace('肆意的快乐等我享受','肆意的快乐等贾晨享受') f_new.write(line) f.close()
5.打印进度条
import sys,time for i in range(100): sys.stdout.write('#') sys.stdout.flush() time.sleep(0.5)
6.字符编码与转码
gbk -> decode -> unicode
unicode -> encode -> gbk
utf-8 > decode -> unicode
unicode -> encode -> utf-8
打印默认编码
import sys print (sys.getdefaultencoding())
7.函数介绍-1
三种编程方式:面向对象、面向过程、函数式编程
函数式编程与面向过程编程的区别
#函数 def func1(): '''testing1''' print ('in the func1') return 0 #过程 def func2(): '''testing2''' print ('in the func2') x = func1() y = func2() print ('from func1 return is %s' % x) print ('from func2 retrun is %s' % y)
函数介绍-2
代码重用
保持一致性
可扩展
import time def logger(): with open('a.txt','a+') as f: time_format = '%Y-%m-%d %X' time_current = time.strftime(time_format) f.write('%s end action\n' % time_current) def test1(): '''testing1''' print ('test1 starting action...') logger() def test2(): '''testing2''' print ('test2 starting action...') logger() def test3(): '''testing3''' print('test3 starting action...') logger() test1() test2() test3()
8.函数返回值
return用来结束函数,返回值可以赋值给一个变量
没有return,返回None
return一个值,返回一个值
return多个值,返回一个元祖
为什么要有返回值,因为我们需要一个函数执行的结果
def test1(): print ('in the test1') def test2(): print ('in the test2') return 0 def test3(): print ('in the test3') return 1,'hello',[12,3],{1:1,2:2} x = test1() y = test2() z = test3() print (x) print (y) print (z)
9.函数的参数
带参数的函数,x、y形参,xxx、yyy实参
def test(x,y,z=3): print (x) print (y) print (z)
位置参数调用,实参和形参要一一对应
test('xxx','yyy')
关键字参数调用,与形参顺序无关
test(y=2,x=1)
python之路 - 基础3的更多相关文章
- python之路基础篇
基础篇 1.Python基础之初识python 2.Python数据类型之字符串 3.Python数据类型之列表 4.Python数据类型之元祖 5.Python数据类型之字典 6.Python Se ...
- Python之路-基础数据类型之列表 元组
列表的定义 列表是Python基础数据类型之一,它是以[ ]括起来, 每个元素用' , '隔开而且可以存放各种数据类型: lst = [1,2,'你好','num'] 列表的索引和切片 与字符串类似, ...
- 百万年薪python之路 -- 基础数据类型的补充
基础数据类型的补充 str: 首字母大写 name = 'alexdasx' new_name = name.capitalize() print(new_name) 通过元素查找下标 从左到右 只查 ...
- python之路 - 基础1
1.安装windows安装双版本Python2,Python3 下载Python2和Python3https://www.python.org/downloads/ 分别安装两个版本 进入Python ...
- Python之路----------基础 一(数据类型、变量、基本语法、流程控制)
一. 数据类型与变量 1.数据类型 整数 #Python在程序中的表示方法和数学上的写法一模一样,-1,0,1都是整数. 浮点数 1 #浮点数就是小数. 字符串 1 #在Python中字符串是以 ...
- python之路——基础篇(2)模块
模块:os.sys.time.logging.json/pickle.hashlib.random.re 模块分为三种: 自定义模块 第三方模块 内置模块 自定义模块 1.定义模块 将一系列功能函数或 ...
- python之路 - 基础2
1.导入模块 import 模块名 form 模块名 import 模块中的函数 可以将模块放入同级目录中,也可以将模块放入site-packages目录中 import sys print (sys ...
- Python之路-基础数据类型之字符串
字符串类型 字符串是不可变的数据类型 索引(下标) 我们在日常生活中会遇到很多类似的情况,例如吃饭排队叫号,在学校时会有学号,工作时会有工号,这些就是一种能保证唯一准确的手段,在计算机中也是一样,它就 ...
- Python之路-基础数据类型之字典 集合
字典的定义-dict 字典(dict)是python中唯⼀的⼀个映射类型.他是以{ }括起来的键值对组成,字典是无序的,key是不可修改的.dic = {1:'好',2:'美',3:'啊'} 字典的操 ...
- 百万年薪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 ...
随机推荐
- 题注Oracle数据库的网络连接原理
版权声明:本文博客原创文章,博客,未经同意,不得转载.
- C++中怎样获取类成员的指针
我们都知道C++ class中有三种成员函数,static(静态的),nonstatic(非静态的),virtual(虚拟的)各种成员函数的指针各有差别,下面是一个完整的样例:(注意红颜色的差别 ...
- jQuery无限级联下拉框插件
自己编写jQuery插件 之 无限级联下拉框 因为是级联,所以数据必须是树型结构的,我这里的测试数据如下: 看下效果图: 1.>图一: 2.>图二: 3.>图三: 由图可知,下拉 ...
- JSON 分析数据格式
2014年4月26日本10:55:15 从三月初开始,并JSON战斗.学校不教怎样做,己..大规模的搜索啊.发表这篇文章,喜欢我和不知道如何开始的新手! 和 XML 如.JSON 也是基于纯文本数据格 ...
- SQL Server 增删改
--use用来设置当前使用哪个数据库use StudentDb--go批处理go --T-SQL中不区分大小写,数据库表中的数据是区分大小写的--例如:insert与INSERT不区分大小写,数据库表 ...
- 让VS2010记住TFS的登陆用户名和密码
用VS进行团队开发的都知道,每次打开VS连接TFS的时候,都要提示输入用户名和密码,每次都这样无疑感觉太多此一举了(当然你不想别人操作你的电脑就直接进入项目就没必要这么做),为了像连接远程那样可以记住 ...
- enode框架
enode框架 2.0 step by step之整体架构介绍 前言 enode框架简介 enode架构图 command handler一次只处理一个command 让domain生活在in mem ...
- iOS基础 - CALayer
一.CALayer简介 Core Animation是跨平台的,支持iOS环境和Mac OS X环境 凡是支持跨平台的框架,都不能直接使用UIKit框架,因为UIKit框架只能应用在iOS而不能用于M ...
- iframe跨域通讯
工作中遇到一个问题,IFRAME嵌套了一个外部页面用于统计 统计的JS由我们提供,并且需要提供热点图 一开始就碰到的问题就是 不知道页面高度 需要子页面传回页面高度用于将IFRAME拉升到合适高度 当 ...
- 用django搭建一个简易blog系统(翻译)(二)
03. Starting the blog app 在这部分,将要为你的project创建一个blog 应用,通过编辑setting.py文件,并把它添加到INSTALLED_APPS. 在你的命令行 ...