python字符串

面试题总结

大憨熊 提交于 2019-12-02 18:38:59
1、一行代码实现1--100之和 利用sum()函数求和 >>> sum(range(0,101)) 5050 2、如何在一个函数内部修改全局变量 利用global 修改全局变量 a = 5 def fn(): global a a = 4 fn() print(a) 3 、列出5个python标准库 os:提供了不少与操作系统相关联的函数 sys: 通常用于命令行参数 re: 正则匹配 math: 数学运算 datetime:处理日期时间 4、字典如何删除键和合并两个字典 del和update方法 >>> dic = {"name":"zs", "age":18} >>> del dic["name"] >>> dic {'age': 18} >>> dic2 = {"name":"ls"} >>> dic.update(dic2) >>> dic {'age': 18, 'name': 'ls'} 5、谈下python的GIL GIL 是python的全局解释器锁,同一进程中假如有多个线程运行,一个线程在运行python程序的时候会霸占python解释器(加了一把锁即GIL),使该进程内的其他线程无法运行,等该线程运行完后其他线程才能运行。如果线程运行过程中遇到耗时操作,则解释器锁解开,使其他线程运行。所以在多线程中,线程的运行仍是有先后顺序的,并不是同时进行。

chapter 9 summary

試著忘記壹切 提交于 2019-12-02 16:36:40
open() 的基本语法是: file_object = open(file_name, access_mode='r',buffering=-1) access_mode,'r','w','a','U'分别代表读取, 写入和追加,通用换行符支持 使用 'r' 或 'U' 模式打开的文件必须是已经存在的 文件模式 操作 r 以读方式打开 Edit By Vheavens Edit By Vheavens rU 或 Ua 以读方式打开, 同时提供通用换行符支持 (PEP 278) w 以写方式打开 (必要时清空) a 以追加模式打开 (从 EOF 开始, 必要时创建新文件) r+ 以读写模式打开 w+ 以读写模式打开 (参见 w ) a+ 以读写模式打开 (参见 a ) rb 以二进制读模式打开 wb 以二进制写模式打开 (参见 w ) ab 以二进制追加模式打开 (参见 a ) rb+ 以二进制读写模式打开 (参见 r+ ) wb+ 以二进制读写模式打开 (参见 w+ ) ab+ 以二进制读写模式打开 (参见 a+ ) a. Python 2.3 中新增 readlines() 方法并不像其它两个输入方法一样返回一个字符串. 它会读取所有(剩余的)行然 后把它们作为一个字符串列表返回. os 模块属性 描述 linesep 用于在文件中分隔行的字符串 sep

js笔记-上

落花浮王杯 提交于 2019-12-02 16:31:22
函数 1、函数声明 没有参数的函数 function kd(){ console.log('hello'); } kd(); //函数的直接调用法 有参数的函数 function kd(name,age){ console.log('姓名:'+name+' , 年龄:'+age); } kd('杜兰特',31); // 姓名:杜兰特 , 年龄:31 2、return返回值 用return的好处: 可以退出函数 return返回与直接调用函数的区别是,return返回是在函数外面输出值,这种方法最常用 返回的值可以赋值给变量 function kd(){ return '死神-杜兰特'; } kd(); //如果直接调用,就会变成下面这样 "死神-杜兰特" console.log(kd()); //无参数的函数返回 // 死神-杜兰特 ------------------------------------------ function kd(name,age){ return'姓名:'+name+' , 年龄:'+age; } console.log(kd('杜兰特',31));//有参数的函数返回 //姓名:杜兰特 , 年龄:31 ------------------------------------------- function add(n1,n2){ return n1

Python复习

不问归期 提交于 2019-12-02 16:22:50
1、 取余 % 整除 // 乘方 ** 整除: 向下圆整 ,即如果结果为-3.3则圆整为-4,而不是向零圆整。 取余: x%y等价于x - ( ( x // y ) * y ) 2、Python基本内置函数 round (): 圆整到最接近的 整数 ,并且同样接近时圆整到 偶数 。 floor (): 返回 小于或等于 给定书的最小整数。 ceil (): 返回 大于或等于 给定数的最小整数。 3、cmath和复数 >>> import cmath >>> cmath.sqrt(-1) 1j >>> cmath.sqrt(4) (2+0j) >>> (1+3j)*(1+2j) (-5+5j) >>> from cmath import sqrt >>> sqrt(4) (2+0j) >>> math.sqrt(4) 2.0 4、对引号的转义 \ >>> 'Let\'s go' "Let's go" 5、将值转换为字符串 str(这是一个类) repr(这是一个函数) >>> print(str("Hello,\nworld!"))#str能用合理的方法将值转化为用户看得懂的字符串,例如将特殊字符编码转换为对应的字符 Hello, world! >>> print(repr("Hello,\nworld!"))#repr是一个函数,是将值转换为合法的Python表达式 'Hello,

Django 过滤器

强颜欢笑 提交于 2019-12-02 16:03:15
转自: https://www.cnblogs.com/huangxm/p/6286144.html Django 过滤器 过滤器 描述 示例 upper 以大写方式输出 {{ user.name | upper }} add 给value加上一个数值 {{ user.age | add:”5” }} addslashes 单引号加上转义号 capfirst 第一个字母大写 {{ ‘good’| capfirst }} 返回”Good” center 输出指定长度的字符串,把变量居中 {{ “abcd”| center:”50” }} cut 删除指定字符串 {{ “You are not a Englishman” | cut:”not” }} date 格式化日期 default 如果值不存在,则使用默认值代替 {{ value | default:”(N/A)” }} default_if_none 如果值为None, 则使用默认值代替 dictsort 按某字段排序,变量必须是一个dictionary {% for moment in moments | dictsort:”id” %} dictsortreversed 按某字段倒序排序,变量必须是dictionary divisibleby 判断是否可以被数字整除 {{ 224 | divisibleby:2 }} 返回

ruby之基础语法

浪尽此生 提交于 2019-12-02 15:57:25
ruby语法之哈希 =》相当于python的字典 ruby语法之数组 =》相当于python的列表 举例: gitaly= Hash.new #建立新Hash类型 gitaly['first']="myfirst" gitaly['storage'] = [ { 'name' => 'default', 'path' => '/tmp/path-1' }, { 'name' => 'nfs1', 'path' => '/mnt/nfs1' } ] puts gitaly #{"first"=>"myfirst", "storage"=>[{"name"=>"default", "path"=>"/tmp/path-1"}, {"name"=>"nfs1", "path"=>"/mnt/nfs1"}]} puts gitaly.keys #first storage puts gitaly['storage'][0] #{"name"=>"default", "path"=>"/tmp/path-1"} puts gitaly['storage'][-1] #{"name"=>"nfs1", "path"=>"/mnt/nfs1"} puts gitaly.size # 2 test=[] #新的空的数组类型 test[0]="a" test[1]='k' puts test # a

python 不使用int()函数将字符串转换为数字

北城以北 提交于 2019-12-02 15:13:57
这里的几种方法的转换都是不包括符号'-',空格和其他的不是数字的字母,也不包括小数点,在Leetcode上 第8题 是包括这些情况的。这里的方法仅适用于类似将’12356‘转换为数字12356。 方法一:利用str函数 不能利用int函数,我们可以用str 函数找出0-9每一个数字的字符表示 def atoi(s): s = s[::1] # 将s反转 num=0 for i,v in enumerate(s): for j in range(0,10): if v ==str(j): num+=j*(10**i) return num 方法二:利用ord函数 利用ord 函数求出每一位字符的ASCII码再减去0的ASCII码求出每一位的数字 print(ord('1')) # 49 print(ord('0')) # 48 def atoi2(s): s = s[::1] num = 0 for i,v in enumerate(s): num+=(ord(v)-ord('0'))*(10**i) return num 方法三:利用eval函数 eval函数的功能是将字符串str当成有效的表达式来求值并返回计算结果。利用每一位字符构造与1相乘的表达式,再用eval函数转换为数字即可得到每一个字符的数字。 def atoi3(s): s = s[::1] num = 0 for i

python爬虫执行js代码-execjs

时间秒杀一切 提交于 2019-12-02 14:53:36
一.安装模块 pip install PyExecJS execjs会自动使用当前电脑上的运行时环境(建议用nodejs,与Phantomjs) 二.简单的使用 import execjs js_obj = execjs.compile('js字符串') js_obj.call('js字符串中方法',参数) 三.js字符串中模拟浏览器环境 即导入 document 与 window 对象 一.安装依赖 npm install jsdom 二.导入包 js_obj = execjs.compile('js字符串',cwd='node_modules') 三.js字符串中添加抬头 const jsdom = require("jsdom"); const { JSDOM } = jsdom; const dom = new JSDOM(`<!DOCTYPE html><p>Hello world</p>`); window = dom.window; document = window.document; XMLHttpRequest = window.XMLHttpRequest; 一.安装模块 pip install PyExecJS execjs会自动使用当前电脑上的运行时环境(建议用nodejs,与Phantomjs) 二.简单的使用 import execjs js_obj

day 23 复习

跟風遠走 提交于 2019-12-02 13:16:23
本来应该学习day23,由于上午未学习,下去困,导致今天未进行进度 那就做一下简单的复习吧! 1、 while else结构,如果while 后的条件条件不再满足 引发循环再继续,则执行else中的内容。如果是因为 break 引发的循环不再执行,则不执行else中的内容。 2、格式化输出:%s s代码的字符串类型   %d d是整数类型   %% 表示% 3、逻辑运算   x or y , x为真,值就是x,x为假,值是y;   x and y, x为真,值是y,x为假,值是x 4、Python中的整型用int表示 5、 name . startswith ( 'al' ) 判断这是不是字符串是不是以al开头的   name . endswith ( 'x' ) 判断这是不是字符串是不是以x结尾的 来源: https://www.cnblogs.com/xiaobai686/p/11746416.html

Python超详细的字符串用法大全

孤街醉人 提交于 2019-12-02 12:31:43
字符串拼接 实际场景:把列表中的数据拼接成一个字符串 解决方案:使用 str.join() 方法 >>> li = ['cxk', 'cxk', 'kk', 'caibi'] >>> ''.join([str(i) for i in li]) 'cxkcxkkkcaibi' 推荐使用生成器表达式,如果列表很大,可以节省很多内存空间 >>> ''.join(str(i) for i in li) '3cxkkkcaibi' 拆分含有多种分隔符的字符串 实际场景:把某个字符串依据分割符号拆分不同的字段,该字符串包含多种不同的分隔符 s = "ab;fd/ft|fs,f\tdf.fss*dfd;fs:uu}fsd" 1.使用 python 中的 split() 方法,由于 split 一次处理一个分隔符,例如: >>> res = s.split(';') >>> res ['ab', 'fd/ft|fs,f\tdf.fss*dfd', 'fs:uu}fsd'] 所以我们需要根据字符串中的分隔符,依次分割,可以是 map 函数! >>> list(map(lambda x: x.split("|"), res)) [['ab'], ['fd/ft', 'fs,f\tdf.fss*dfd'], ['fs:uu}fsd']] 结果变成了一个二维列表,而我们想要的结果是一维列表,怎么办?