自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

杰瑞的专栏

架构师、脚本语言专家;精通Python、Shell、正则表达式;熟悉Java、C、Tcl、Ruby、Scala、Perl等多种编程语言;在性能,开源,自动化测试方面有非常丰富的经验

  • 博客(622)
  • 资源 (5)
  • 收藏
  • 关注

原创 一道按顺序排列组合题的几种解法

有一道面试题: 一个字符串"Yes", 用代码实现,输出其全部大小写组合,比如说字符串"no"则输出['no', 'No', 'nO', 'NO']想到了如下的几种解法:方法一:借助于itertools.combinations# coding = utf -8def handle_string(src=""): from itertools import combi...

2018-12-30 21:57:54 1151

原创 Python实现统计一篇英文文章内每个单词的出现频率的两种很好解法

有一道Python面试题: 用python实现统计一篇英文文章内每个单词的出现频率,并返回出现频率最高的前10个单词及其出现次数。文件的内容,就拷贝import this模块中的内容,文件名为: this.txtThe Zen of Python, by Tim PetersBeautiful is better than ugly.Explicit is better than im...

2018-12-30 19:47:44 13312 5

原创 Python中最大递归深度值探讨

Python对递归函数设置是有默认值。 可以通过下面命令来查看设置的默认值>>> import sys>>> sys.getrecursionlimit()3000查看该函数的帮助文件就更清晰了:>>> help(sys.getrecursionlimit)Help on built-in function getrecu...

2018-12-28 22:20:32 5647

原创 Shell中整数计算的几种方式

在Shell中可以使用下列方式来做整数的计算(+,-,*,/)方式一:linux:~ # A=1linux:~ # B=2linux:~ # C=$(($A+$B))linux:~ # echo $C3方式二:linux:~ # A=1linux:~ # B=2linux:~ # C=$[$A + $B]linux:~ # echo $C3方式三:li...

2018-12-28 21:15:00 3195

原创 Shell中小数计算的两种方式

在Shell中,不能用计算整数的方式来计算小数。要借助bc命令,可以说bc是一个计算器,也可以说bc是个微型编程语言,反正当作工具来用,还是很方便,特别是小数计算。必须借助bc命令。方式一:linux:~# var1=5linux:~# var2=35.14linux:~# var3=$(echo "scale=4; $var2 / $var1" | bc)linux:~# ech...

2018-12-28 21:02:32 14365

原创 Shell中检测某一网段IP在线与否的脚本

作为系统管理员或者运行维护人员,经常会碰到检查某个网段IP是up还是down的情况,这个时候肯定不会一个个手工去ping的,写脚本是肯定的,小脚本其实很简单#!/bin/bashset -xvip1='192.168.0'for ip2 in $(seq 0 254)do ip=${ip1}.${ip2} ping -c 2 -i 1 -w 1 $ip > ...

2018-12-26 22:10:47 1884

原创 Shell中表示数字跨度的几种方式

在Shell脚本中,如果要输出数字为0-20中3的倍数。可以使用下面三种方式来完成方式一:  ((i=0;i<=20;i+=3))for((i=0;i<20;i+=3))do echo $idone方式二: {0..20..3}for i in {0..20..3}do echo $idone方式三: seq 1 3 20for i...

2018-12-26 21:58:12 2658

原创 Python中一般如何处理中文

Python中的中文是个很头痛的问题,Python2和Python3都会出现,而且py2中出现的概率要大些。 有一道面试题: Python中如何处理中文问题,能想到的就是以下几方面来规避:1. 首行添加 # coding = utf-8# coding = utf-8# 或者# -*- coding:utf-8 -*-2. 字符串前添加u>>> s =...

2018-12-26 21:42:34 2692

原创 Shell中将标准错误标准输出重定向到同一个文件的两种方式

在Shell中,标准错误写法为 2>, 标准输出为 1> 或者 >。如要要将标准输出和标准错误合二为一,都重定向到同一个文件,可以使用下面两种方式:方式一: > out.txt 2>&1[root@localhost ~]# { time ls /etc; } > out.txt 2>&1方式二: &> out...

2018-12-26 21:17:22 9852

原创 一道题理解sort命令中的多个参数

sort命令很常用,但参数也很多,比如: -o, -n, -u, -r一时也未必能想起如何使用。 这里有一道题,可以很好的结合使用上面的参数,达到很好记忆的效果。 题目: 数据文件data中含以下数据:41351001245请用一条命令反向排序,去重并将这些数据同样保存在data文件中。最终输出结果:100154321要达到上面的三条要求,就要同时借...

2018-12-26 21:07:16 1006

原创 Shell中数组中元素排序的技巧

要将old=(4 7 1 101)里面的元素,按自然数的顺序排序,生成新的数组new=(1 4 7 101)。如果要遍历元素,借助中间变量一个个比较的方式可能比较繁琐,这里有两种比较简单达到数组重新排序。 方法一: 借助于tr和sort命令[root@localhost ~]# old=(4 7 1 101)[root@localhost ~]# new=$(cat ${old[@]}...

2018-12-26 20:56:49 5812 2

原创 Python对字符首字母大写处理

有一列表['toM', 'BAT', 'book', 'aNT'],要对其元素的首字母大写,其余做小写处理。 因为元素由一个个字符串组成,这个时候可以借鉴字符中很多方法,比如capitalize或者title等方法来完成。 方法一: capitalize>>> L = ['toM', 'BAT', 'book', 'aNT']>>> [s.capit...

2018-12-25 22:46:53 33818 2

原创 Shell中的tr命令加密解密中的一个小应用

tr命令可以来删除或替换,这个可能大家都非常熟悉。比如[root@localhost ~]# echo "The Number:12345" | tr -cd '[0-9]' # 仅保留数字12345[root@localhost ~]# echo "Tom" | tr '[a-z]' '[A-Z]' # 转变为大写TOM上面的方法也许是tr命令中最常用的,但...

2018-12-25 22:36:38 1104 1

原创 对一个含正数负数列表统计及排序的问题

有一道Python面试题:已知列表,foo = [-5, 8, 0, 4, 9, -4, -20, -2, 8, 2, -4]1). 求列表中整数,负数元素各多少个? 里面如有重复元素,只算一个,比如,里面有两个8,只算一个# 方法一: 先用filter过滤负数,再在set(foo)中取正数>>> len(filter(lambda x:x>0, set(foo...

2018-12-24 22:37:56 4154

原创 Linux中的shell如何切换

在Linux中默认使用/bin/bash,在用户创建时,会自动给用户创建用户默认的shell。root :x :0 :0 :root :/root :/bin/bash 注册用户名:密码:UID:GID:用户信息:用户主目录:命令解释程序 如上,用于默认的shell就是/bin/bash。要修改shell将其设置为/bin/ksh,有两种方法方法方法一:...

2018-12-23 18:24:34 33347

原创 Python打印九九乘法表

九九乘法表如下:1*1=11*2=2 2*2=41*3=3 2*3=6 3*3=91*4=4 2*4=8 3*4=12 4*4=161*5=5 2*5=10 3*5=15 4*5=20 5*5=251*6=6 2*6=12 3*6=18 4*6=24 5*6=30 6*6=361*7=7 2*7=14 3*7=21 4*7=28...

2018-12-23 17:54:53 6980 1

原创 正则精准匹配IP的问题

经常会碰到匹配IP的问题,很多时候用粗略点方式,比如\d{3}\.\d{3}\.\d{3}\.\d{3}使用上面的就可以匹配,但有时候,要准确匹配的话,上面的显然就不行比如999.10.10.10显然就不是IP地址(1-255).(0-255).(0-255).(0-254)上面四个其实还是正则的准匹配。具体而言百位: 25[0-5]|24[0-9]|1\d{2}  或者 2...

2018-12-23 12:01:34 714

原创 正则匹配字符串中硬盘

hda  一般是指IDE接口的硬盘,hda一般指第一块硬盘,类似的有hdb,hdc,hd64asda  一般是指SATA接口的硬盘,sda一般指第一块硬盘,类似的有sdb,sdc, sd64a, sd-64a, sd64acnvme 一般格式nvme64n1as = "id=64 /dev/sd-65a id=66 /dev/sd67aa id=68 /dev/hd69a id=70 /...

2018-12-23 10:29:44 481

原创 一道字符串转换题的几种处理办法

有字符串"64,63,62,61"中每个数字加4,应用chr函数,再将其反转成"A-B-C-D"要知道chr(61+4) == 'A',刚好能完成转换方法一:>>> s = '64,63,62,61'>>> a = s.split(',')>>> a.reverse()>>> a[

2018-12-23 09:38:19 303

原创 Python中如何实现序列反转

在Python中如果是序列为列表的话,可以使用内置reversed或者reverse来反转一个序列,前者不会改变顺序,后者会改变顺序。使用reverse实现列表反转>>> L = ["A", "B", "C", "D"]>>> L.reverse() # 使用reverse来反转一个列表&g

2018-12-22 10:24:54 2596

原创 Python中collections.Counter模块的most_comm方法小示例

collections模块中的Counter方法可以对列表和字符串进行计数,设置可以对字典中的键和值进行处理(dict.keys(), dict.items(),dict.values()),其中有个不错的方法most_common,可以用来统计列表或字符串中最常出现的元素。比如说,要统计下面的字符串某个字母个数前三的显示出来,就可以使用most_common(3),来处理,其中的3代表最常用的3...

2018-12-19 22:37:57 3284

原创 itertools.combinations在解方程时的一个妙用

有时候在解方程时,比如说,x,y,z互不相等, x< y < z,且都在[1-6]之间,满足x + y + z == 6,要求x, y, z使用itertools.combinations能起到很好的效果,先看下,itertools会产生什么数据。 >>> import itertools>>> help(itertools.combin...

2018-12-19 05:50:04 949

原创 Python实现输入三个整数x,y,z,请把这三个数由小到大输出

输入三个整数x,y,z,请把这三个数由小到大输出,如果用Python来实现,可以有好多种方法。方法一: >>> import re>>> x, y, z = map(int, re.split(r"[ |,]+", raw_input("Enter Three Number: ")))Enter Three Number: 4,3,2>&g...

2018-12-18 22:59:48 52767 1

原创 Python并行显示序列中多个元素的方法

在遍历序列中的元素时,有时候需要不需要一个个处理,有的时候需要多个一起处理,比如要将26个大写英文字母每四个一起显示,每个字符以TAB分隔,这个时候需要借助下面的方法借助切片>>> import string>>> S = string.uppercase>>> L = ['\t'.join(list(S[i:i+4])) for...

2018-12-16 10:27:14 713

原创 批量添加20个用户,用户名为user1-20,密码为user后面跟5个随机字符

Shell脚本#!/bin/bashfor i in `seq -w 1 20`do user="user$i" password=$(cat /dev/urandom | head -1 | md5sum | head -c 1-5) useradd user$i echo "$user:$password" | passwd --stdin $use...

2018-12-16 09:44:07 4100

原创 Python删除某根目录下的所有空目录

假如D:\data目录下,有四个子目录,data1,data2里面有子文件或子目录,而test1,test2则为空>>> import os>>> os.listdir("D:\data")['data1', 'data2', 'test1', 'test2']>>> os.listdir("D:\data\data1")['1.

2018-12-14 22:10:50 2269

原创 Python中保留两位小数的几种方法

保留两位小数,并做四舍五入处理方法一: 使用字符串格式化>>> a = 12.345>>> print("%.2f" % a)12.35>>>方法二: 使用round内置函数>>> a = 12.345>>> round(a, 2)

2018-12-14 21:43:57 355892 13

原创 Shell中去掉文件中的换行符简单方法

文件中每行都以\n结尾,如果要去掉换行符,使用sed命令[root@host ~]# sed -i 's/\n//g' FileName或者使用tr命令[root@host ~]# cat fileName | tr '\n' ''或者其他命令,效果都不好,没达到目的,其实有一种简单的方法:[root@host ~]# cat FileName | xargs echo ...

2018-12-14 21:14:59 45514 4

原创 Python语言求1+3!+5!+7!+9!+50!的几种思路

有一道Python面试题,求和1+3!+5!+7!+9!+50!方法一: 常规思路 L = [1, 3, 5, 7, 9, 50]def func(n): if n == 1: return 1 else: return n * func(n-1)total = 0for i in L: total = total +...

2018-12-10 22:08:13 18528

原创 Python对csv文件读写

Python对csv文件进行读写很简单,使用csv模块可以很简单的完成任务。对csv文件读# coding = utf-8import csvreader = csv.reader(open("score.csv"))for item in reader: print(item) 执行结果:['NAME', 'SCORE']['Jerry', '98']['...

2018-12-09 20:28:38 662

原创 一道Python面试题的几种解答思路

[[1,2],[3,4],[5,6]]代码展开,得到[1,3,5]的奇数列表。方法一: 常规思路>>> L = [[1, 2], [3, 4], [5, 6]]>>> T = []>>> for items in L:... for item in items:... if item % 2 == 1:...

2018-12-09 19:39:23 267

原创 用Python对一组典型数据进行格式转换

有一组源数据,第一行会是个日期数据,第二行标明字段,再接下来是两行数据行。1018 14:31:30.193Type Succ Failsour_sm 1308 1205data_sm 2205 33011019 16:32:30.201Type Succ Faildata_sm 3308 2206data_sm 1765 11051020 18:00:00.203Type...

2018-12-09 19:09:35 589

原创 enumerate在递归求和的一个小应用

有一道面试题: 对一个列表的元素递归求和,L = [2, 7, 3, 4, 6, 10, 20, 40], [2, 2+7, 2+7+3, 2+7+3+4....]。 这个时候使用enumerate可以起到很好的效果。 >>> L = [2, 7, 3, 4, 6, 10, 20, 40]>>> [sum(L[:i]) for (i,v) in enum...

2018-12-09 17:24:07 240

原创 Python中解决UncodeDecodeError:'gbk' codec can't decode byte... 的办法

有时候打开的文件里面有中文,就会报UncodeDecodeError:'gbk' codec can't decode byte的错误。 解决办法,在打开文件句柄的时候,增加encoding='UTF-8'就可以了。 fd = open('fileName', 'r', encoding='UTF-8') ...

2018-12-05 21:48:03 14412

原创 查看Python中内置函数和内置变量的方法

dir(__builtins__)>>> for item in dir(__builtins__):... print(item)...ArithmeticErrorAssertionErrorAttributeErrorBaseExceptionBlockingIOErrorBrokenPipeErrorBufferErrorBytesWar...

2018-12-05 21:41:39 4498

原创 Linux终端打开关闭回显

关闭回显[root@host ~]# stty -echo打开回显[root@host ~]# stty echo# 或者[root@host ~]# stty scane 

2018-12-03 22:43:47 7447

原创 Python使用正则匹配过滤的面试题

面试题: 字符串a = "not 404 found 张三 99 深圳",每个词中间是空格,用正则过滤掉英文和数字,最终输出"张三  深圳"常规思路:先将字符串转变成列表,根据正则匹配到数字和英文字符,然后从列表中移除,用join重新拼接字符串import reS = "not 404 found 张三 99 深圳"L = S.split(" ") ...

2018-12-02 20:44:46 2880

原创 Python 不用sort对列表排序

有道面试题: L = [2,3,5,4,9,6,8,7,1],从小到大排序,不许用sort,输出[1,2,3,4,5,6,7,8,9]如果用sort很简单,如果不用sort的话,处理起来就麻烦些,处理思路大致:创建一个空列表,遍历原先列表,找出最小值,放到空列表中,原列表弹出该值,直到无值。有了上面的思路,就好处理了:>>> L = [2,3,5,4,9,6,8...

2018-12-02 11:06:58 14419

原创 Python中列表去重,保留原先顺序的八种方法

有道面试题: 将列表  L = [3, 1, 2, 1, 3, 4]去掉重复的元素,但保留原先顺序。 最后结果应该是:[3, 1, 2, 4]如果不保留顺序的去重,很好处理,比如用set>>> L = [3, 1, 4, 2, 3]>>> list(set(L))[1, 2, 3, 4]如果要保留原先顺序不变,同样也有很多种方法:方法一:...

2018-12-01 19:56:00 22515 2

原创 Ubuntu下vdbench的一个配置

Ubuntu运行vdbench,会提示缺少openflags=o_direct的错误,这里有一个可正确运行的配置文件[root@host ~]# cat parmfilesd=sd1,lun=/dev/sdx,thread=16,openflags=o_directsd=sd2,lun=/dev/sdy,thread=16,openflags=o_directwd=wd1,sd=(sd...

2018-11-30 21:34:19 1016

Perl Cookbook

Perl Cookbook, 学习Perl非常宝贵的经典!

2014-03-29

ASE_config_guide_unix

本文档用于UNIX下,Sybase Adaptation Server的安装,配置,管理。

2014-02-17

Clean Code-代码整洁之道 中文完整版清晰版

本书提出一个概念:代码的质量与其整洁度成反比。干净的代码,在质量上较为可靠,在维护上比较方便。作为编程领域内的佼佼者,作者给出了一系列行之有效的整洁代码操作实践。 本书阅读对象为一切有志于改善代码质量的程序员及技术经理。

2014-02-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除