查看“Python基础”的源代码
←
Python基础
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您请求的操作仅限属于该用户组的用户执行:
用户
您可以查看和复制此页面的源代码。
Python 是一种解释型、面向对象、动态数据类型的高级程序设计语言。 Python 由 Guido van Rossum 于 1989 年底发明,第一个公开发行版发行于 1991 年。 像 Perl 语言一样, Python 源代码同样遵循 GPL(GNU General Public License) 协议。 官方宣布,2020 年 1 月 1 日, 停止 Python 2 的更新。 Python 2.7 被确定为最后一个 Python 2.x 版本。 本文档包括:基本语法、string、re === Base === ====Install==== 已安装包 *pip3 list *Pip3 install numpy…whl =====reload===== import importlib importlib.reload(usql_sys) ====sys==== sys.argv 是命令行参数列表,type=列表 ====ENV==== os.environ['NLS_LANG'] = 'AMERICAN_AMERICA.UTF8' #oracle === Dev === ====指定编码==== 变量中出现非ASCII字符,则需要指定处理之编码,如:utf-8 #coding=<encoding name> OR #!/usr/bin/python3 #-*- coding: utf-8 -*- ====引入路径==== 同目录或系统 import sys import os import ustr 当前文件下一级目录 import udef.ustr as ustr # or from udef.ustr import to_num ## 当前文件同级目录 sys.path.append("..") import udef.ustr as ustr ====建目录(多级,相当于 -p)==== if not os.path.exists(path_op): os.makedirs(path_op) ====判断文件是否存在==== os.path.exists(FN) - OR - os.path.isfile(FN) - OR - os.access(FN, os.F_OK|R_OK|W_OK|X_OK) ====当前路径==== os.chdir('./ppy') os.getcwd() ====动态执行命令==== TOPIC=b"l_serv_monitor_io" CMD="mqkc.topics[TOPIC]" mqtp = eval(CMD) ====编译==== ====DEBUG==== python3 -m pdb mqlog_oc_mc3 n=10000 offset=0 b umq.py:353 设置断点 c 执行到下一个断点 l 列出附近代码 ====特殊字符==== PA='\x04' ====三目==== max = a if a>b else b ====lamda 表达式==== uncol = str([x for x in re.split(" *, *", uncol) if x]).strip('[]') cols = re.sub('[\[\]\']', '', str([x for x in re.split(" *, *", cols) if x]))'' === 变量类型 === ====string==== =====split===== # 将字符串按分隔符切几次,切分的最后部分为剩余全部;如:n=1时,字符串为两部分 v1 = "1010;msinfo;bidb01;10.10.137.10;/;32" key,type,name,ip,v1 = v1.split(';', 4) #也可以把拆分后的结果存到 list v1_list = v1.split(';') ## strip #移除字符串头尾指定的单字符,支持多个单字符。 str.strip([chars]) s=',hello, world.,!,' s.strip(',.!') # 'hello, world' str(e).replace('\r', ' ').replace('\n', ' ') # delete \r\n ## 重复字符 v1 = "%s," * 10 ## 子字符个数 s.count(',') =====字符串方法===== str.upper() str.lower() str.capitalize() 首个字母大写,其余小写 str.casefold() 消除大小写类似于转为小写,但是更加彻底一些,因为它会移除字符串中的所有大小写变化形式。 例如,德语小写字母 'ß' 相当于 "ss"。 由于它已经是小写了,lower() 不会对 'ß' 做任何改变;而 casefold() 则会将其转换为 "ss" str.center(width[, fillchar]) 返回长度为 width 的字符串,原字符串在其正中。 使用指定的 fillchar 填充两边的空位(默认使用 ASCII 空格符)。 如果 width 小于等于 len(s) 则返回原字符串的副本 str.count(sub[, start[, end]]) 返回子字符串 sub 在 [start, end] 范围内非重叠出现的次数。 可选参数 start 与 end 会被解读为切片表示法。 If sub is empty, returns the number of empty strings between characters which is the length of the string plus one ==== list ==== v1 = ['abc', ' ', 'aa', ';', 'bb', ',', 'cc', ' ', '', '|', 'dd(xx).xxx', ' ', "12.12'", ' ', 'xxxx']'' * 添加/删除元素 v1.append('Apple') del v1[0] * 列表截取,list[parm1:parm2:parm3] # parm1:开始下标,可以为空,默认为0 # parm2:结束下标,可以为空,默认为 list.size,但是不包括 list.size,左闭右开 # param3:步长,默认为1 v1[1] 第二个元素 v1[-2] 倒数第二个元素 v1[::-1] 逆序列表 v1[:-1] 除了最后一个,取全部 v1[2::-1] 从第三个元素开始到结束的逆序 === 包 === ====re==== =====re.split===== import re v1="abc aa;bb,cc | dd(xx).xxx 12.12' xxxx" >>> re.split(r' ', v1) ['abc', 'aa;bb,cc', '', '|', 'dd(xx).xxx', "12.12'\txxxx"]'' >>> re.split(r'[\s]', v1) ['abc', 'aa;bb,cc', '', '|', 'dd(xx).xxx', "12.12'", 'xxxx']'' >>> re.split(r'[\s;,.()]', v1) ['abc', 'aa', 'bb', 'cc', '', '|', 'dd', 'xx', '', 'xxx', '12', "12'", 'xxxx'] >>> re.split(r'bb,', v1) ['abc aa;', "cc | dd(xx).xxx 12.12'\txxxx"] >>> re.split(r'[,; ] *', v1) ['abc', 'aa', 'bb', 'cc', '', 'dd(xx).xxx', "12.12'", 'xxxx'] >>> re.split(r'(,|;| |\|) *', v1) # 带分隔符 ['abc', ' ', 'aa', ';', 'bb', ',', 'cc', ' ', '', '|', 'dd(xx).xxx', ' ', "12.12'", ' ', 'xxxx'] >>> 可以使用 [::2] 去掉分隔符 =====与 str.split 比较,相同部分===== s1='a,b,c,d, ,,12.3' >>> re.split(',', s1) ['a', 'b', 'c', 'd', ' ', '', '12.3']'' >>> s1.split(',') ['a', 'b', 'c', 'd', ' ', '', '12.3']'' >>> s1.split('c,') ['a,b,', 'd, ,,12.3'] # string 可以指定分解的个数 >>> s1.split(',',3) ['a', 'b', 'c', 'd, ,,12.3'] =====正则===== s2='a,{b,c,d}, ,,12.3' >>> re.split('{|}', s2) ['a,', 'b,c,d', ', ,,12.3'] >>> re.split('{|}|,', s2) ['a', '', 'b', 'c', 'd', '', ' ', '', '12.3']'' =====re.sub 替换===== . = any char * = more re.sub(' ', '', p_str1)'' str1 = 'a, b , c ,d e, f1,g' re.sub(' *, *', ',', str1) s="select a,b,c,eee from tab where sfrom = 'abc'" re.sub('select.*?from', '', s) '' # " tab where sfrom = 'abc'" # 惰性匹配 #*,+,?等都是贪婪匹配,后面加?号使其变成惰性匹配 cols = re.sub(':.*?,', ',', s1+',').strip(',') # s1=uuid:1|32|h,etl_id:2|8|r,... # 分组匹配 import re s = '110223199001011123' res = re.search('(?P<province>\d{3})(?P<city>\d{3})(?P<born_year>\d{4})(?P<bron_month>\d{2}',s) print(res.groupdict()) 此分组取出结果为: {'province': '110', 'city': '223', 'born_year': '1990', 'bron_month': '01'} # 取{}字符 re.search('\{.*\}', S1) # 替换超过五个数字 re.sub('(\d\d\d\d\d*)', '32000', str1) # str1 = 'varchar2(65536)' =====Error Info===== # except Exception as e: str(e).split('\n')[0] # raise raise ValueError('Error.') === Tips === ==== 迭代 ==== [[分类:Develop]] [[分类:Python]]
返回
Python基础
。
导航菜单
个人工具
登录
命名空间
页面
讨论
大陆简体
查看
阅读
查看源代码
查看历史
更多
搜索
导航
首页
最近更改
随机页面
目录
文章分类
侧边栏
帮助
工具
链入页面
相关更改
特殊页面
页面信息