shell作业 1. 取出文件基名 法一:cat 1.txt | egrep -o "[^/]+$" 法二:awk -F/ '{print $NF}' 1.txt 2. 取ip地址 法一:ifconfig eth0 | grep "inet addr" | awk '{print $2}' | cut -d: -f2 法二:ifconfig eth0 | egrep -o 'addr:[0-9\.]+' |cut -d: -f2 法三:ifconfig eth0 | awk -F'[: ]+' '/inet addr/{print $4}' ifconfig eth0 | awk -F'[[:space:]:]+' '/inet addr/{print $4}' 3. 百度云网页 法一:egrep -o '[^"><]+mp4' baiduyun.txt | sort -u 法二:awk 'BEGIN{RS=">|<"} /mp4$/{print($0)}' baiduyun.txt 基础知识 1. 冯诺依曼体系架构 CPU:由运算器和控制器组成 运算器:完成算数运算、逻辑运算、数据传输 控制器:控制程序的执行 存储器:用于记忆程序和数据(内存) 2. 高级语言与低级语言 高级语言和低级语言之间的转换工具:编译器和解释器 C、C++需要本地编译 java、python需要被解释器编译成中间代码,在虚拟机上运行 编译语言把源代码转换成目标机器的CPU指令 解释语言,解释后转换成字节码,运行在虚拟机上,解释器执行中间代码 3. Python解释器 CPython:最广泛的解释器 iPython:交互式、功能增强的Cpython PyPy:JIT技术,动态编译Python代码 Jython:Python的源代码编译成java的字节码,跑在JVM上 IronPython:与Jython类似,python代码编译成.Net的字节码 4. Python基础 注释:# 布尔:True、False 十六进制:0xa 八进制:0o10 二进制:0b10 字符串:使用能够''或""引用字符的序列,''' """单双三引号,可以跨行、可以在其中自由的使用单双引号 在字符串前面加上r或者R前缀,表示该字符不做特殊处理 5. 基础语法 标识符:可以用字母、下划线和数字,但只能以字母或下划线开头,不能使用如def等作为关键字,大小写有区别。 不允许使用中文,不能使用歧义单词,不能随意用下划线开头的表示符。 常量:赋值后就不能改变值的标识符,python无法定义常量 变量:赋值后,可以改变值得标识符 6. python语言类型 python是动态、强类型语言。 静态编译语言:实现声明变量类型,类型不能再改变,编译时检查 动态编译语言:不需要事先声明类型,随时可以赋值为其他类型;编程时不知道是什么类型。 强类型语言:不同类型之间操作,必须先强制类型转换为同一类型。print('a'+1) 弱类型语言:不同类型间可以操作,自动隐式转换。 7. 算数运算符和位运算符 加+ 减- 乘* 除/ 取余% 幂** /结果是浮点数,//整除 与& 或| 取反~ 异或^ 左移<< 右移>> 8. 原码、反码、补码 原码:5 => 0000 0101 反码:正数将原码按位取反;负数符号位不变其余按位取反 补码:正数的补码是其本身;负数符号位不变其余按位取反后+1 ~12:-13 0000 1100 (取反)--> 1111 0011(-1) --> 1111 0010(除符号位,按位取反) --> 1000 1101=-13 9. 运算符 比较运算符: 等于== 不等于!= 大于> 小于< 大于等于>= 小于等于<= 逻辑运算符:与或非 and or not 赋值运算符: += -= *= /= %= 成员运算符: in 、not in 身份运算符: is 、is not 10. 程序控制 顺序,分支,循环 while循环 for循环 if..eles..判断 while True: block for _ in range(10): print('*') if a>b: print(b,a) else: print(a,b) 11. continue与break continue:跳出当前循环,开始下次循环。 break:结束循环操作 程序练习: (1) 打印菱形: for i in range(-3,4): space = -i if i < 0 else i print(' '*space + '*'*(7-2*space)) 打印非对称菱形: for i in range(-3,4): if i<0: print(' '*(-i) + '*'*(4+i)) elif i==0: print('*'*7) else: print(' '*3 + '*'*(4-i)) (2) 99乘法表: for i in range(1,10): for j in range(1,i+1): print('{0}*{1}={2:<2}' .format(i,j,i*j),end=' ') print() 99乘法表倒置(1): for i in range(1,10): print(' '*7*(i-1),end=" ") for j in range(i,10): print('{0}*{1}={2:<2}' .format(i,j,i*j),end=' ') print() 99乘法表倒置(2): for i in range(1,10): line = '' for j in range(1,10): if i>j: line = '{} {} {:<4}' .format(' ',' ',' ') else: line = '{} * {} = {:<4}' .format(i,j,i*j) print(line,end=' ') print() (3) 求10万以内的质数: import datetime start = datetime.datetime.now() for i in range(101,1,-2): for j in range(3,i**0.5+1,2): if i%j==0: break else: print(i) end = datetime.datetime.now() - start (4) 求斐波那契数列第101项: a=1 b=1 index=2 print('{0},{1}' .format(0,1)) print('{0},{1}' .format(1,1)) print('{0},{1}' .format(2,1)) while True: c=a+b a=b b=c index += 1 print('{0},{1}' .format(index,c)) if index == 101: break
本文来自投稿,不代表Linux运维部落立场,如若转载,请注明出处:http://www.178linux.com/87284