; python基础 | Linux运维部落

python基础

 

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:-130000 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运维部落立场,如若转载,请注明出处:/87284

发表评论

电子邮件地址不会被公开。 必填项已用*标注

联系我们

400-080-6560

在线咨询:点击这里给我发消息

邮件:1660809109@qq.com

工作时间:周一至周五,9:30-18:30,节假日同时也值班

友情链接:万达主管  万达娱乐直属  万达直属  万达娱乐开户  万达招商  万达娱乐登录  万达娱乐直属  万达注册  万达主管QQ  测试