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:-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

(0)
miraclermiracler
上一篇 2017-09-16 20:41
下一篇 2017-09-17 18:09

相关推荐

  • 解析式

    列表解析式和字典解析式 datetime模块 对日期,时间,时间戳的处理 datetime类 today()返回本地时区当前的datetime对象 now(tz=None)返回当前时间的datetime对象,时间到微秒,如果tz为None,返回和today()一样 utcnow()没有时区的当前时间 fromtimestamp(timestamp,tz=Zo…

    2018-04-09
  • DevOps如何重构IT战略

    翻译: 至尊宝 原文: http://www.citeworld.com/article/2897738/development/how-devops-can-redefine-your-it-strategy.html?page=2   DevOps究竟是昙花一现还是你一直在寻找的竞争优势?我们咨询了一些专家,对于这种趋势他们的想法是什…

    Python干货 2015-03-26
  • Python第十二周学习总结

    Git的使用

    2018-05-27
  • 开源跳板机Jumpserver v2.0.0 Beta版发布

    demo页面: http://demo.jumpserver.org admin admin 一. 更新Log — 登录脚本 — 1.1 使用paramiko原生ssh协议登录后端主机(原来版本使用pexpect模拟登录) 1.2 新增使用别名或备注登录 1.3 新增主机分组查看,使用更方便 1.4 多线…

    Linux干货 2015-04-20
  • Python文件操作

    计算机体系架构 运算器:完成各种算术运算、逻辑运算、出具传输等数据加工处理 控制器:控制程序的执行 CPU = 运算器 + 控制器 存储器:用于记忆程序的数据,内存 输入设备:将数据或程序输入到计算机中 输出设备:将数据或程序的处理结果展示给用户 文件IO常用操作 open 打开 read 读取 write 写入 close 关闭 readline 行读取 …

    Python笔记 2018-05-02
  • Python函数式编程指南(四):生成器

    生成器是迭代器,同时也并不仅仅是迭代器,不过迭代器之外的用途实在是不多,所以我们可以大声地说:生成器提供了非常方便的自定义迭代器的途径。 这是函数式编程指南的最后一篇,似乎拖了一个星期才写好,嗯…… 转载请注明原作者和原文地址:) 4. 生成器(generator) 4.1. 生成器简介 首先请确信,生成器就是一种迭代器。生成器拥有next方法并且行为与迭代…

    Linux干货 2015-03-11