zoukankan      html  css  js  c++  java
  • Python之旅day1

    Python是什么?

    python是运维晋升的一个趋势

    python下载地址

    https://www.python.org/downloads/

    python解释器pycharm安装以及激活

    http://idea.lanyus.com/              获取验证码

    #!/usr/bin/env python
    #_*_ coding:utf-8 _*_
    # ** author: zhaobin
    # ** description: more function
    # ** createDate: 2018-8-13
    # ** run python: python xxxx.py  
    # *****************************

    1.文件头

    #!/usr/bin/env python
    #_*_ coding:utf-8 _*_
    
     
    Linux下修改pip源方法如下:
    
    linux下,修改 ~/.pip/pip.conf (没有就创建一个),
    
     
    
    [global]
    timeout = 6000
    index-url = http://pypi.douban.com/simple
    trusted-host = pypi.douban.com
    

      

    2.python的文件可以是任意的后缀名

    2.1、执行 Python 脚本的两种方式
    直接调用python脚本,用python解释器去调用python脚本
    
    2.2、简述位、字节的关系
    一个字节是8位,计算机计算是以字节为单位,存储是以位单位
    
    2.3、简述 ascii、unicode、utf-­‐8、gbk 的关系
    最先出现的是ascii编码,其次是unicode编码,又因为每个国家的标准不同,继而出现unicode的压缩编码utf-8。ascii码8位,unicode码16位。用ascii码表示的字符,再用unicode表示就会造成内存浪费,提出的utf-8编码,能用多少表示就用多少表示。
    
    2.4、请写出 “李杰” 分别用 utf-­‐8 和 gbk 编码所占的位数
    Utf-8 中文一个字代表3个字节,占了6个字节
    Gbk是一个代表2个字节,占了4个字节
    

    3.单行注释: # 注释内容

    多行注释:"""注释内容"""

    4变量的声明与引用

    #!/usr/bin/env python 会查找python的位置
    
    name='buer'    #变量的声明
    name           #通过变量名,引用变量的值
    print(name)    #引用并且打印变量的名name对应的值,即'buer'
    
     1 #所有脚本第一句话都要写解释以下脚本是用什么解释器
     2 #!/usr/bin/python python
     3 #语言设置为:简体中文
     4 #_*_coding:utf-8_*_
     5 
     6 
     7 #变量定义的规则:
     8 
     9 #变量名只能是 字母、数字或下划线的任意组合
    10 #变量名的第一个字符不能是数字
    11 #以下 关键字 不能声明为变量名
    12 ['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif',
    13  'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if',
    14  'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise',
    15  'return', 'try', 'while', 'with', 'yield']
    16 #变量要有意义
    17 #变量不能太长
    18 #不要用中文
    19 #推荐使用驼峰或者下划线命名
    20 #区分大小写

    5.简单的账号密码

    1 #input <输入>
     2 #print<打印>
     3 username = input('用户名')
     4 password = input('密码')
     5 print(username,password)
     6 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
     7 #输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
     8 
     9 
    10 import getpass
    11 
    12 username = input('usernmae:')
    13 password = getpass.getpass('password:')
    14 
    15 print(username,password)
    16 
    17 
    18 
    19 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    20 
    21 #  .format   <格式>
    22 #  import    <调用>  getpass<py系统自带函数模块,密文输入>
    23 #  print     <打印>
    24 #  if        <条件成立执行>
    25 #  and       <而且>
    26 #  else      <if条件不成立时执行>
    27 
    28 import getpass
    29 
    30 name = 'alex'
    31 word = 'as123'
    32 
    33 username = input('名字:')
    34 password = input('密码:')
    35 
    36 if name == username and word == password:
    37     print('欢迎 {N} 登录'.format(N=name))
    38 else:
    39     print('账号或者密码错误')

    6.for循环

     1 #  i  <变量名>
     2 #  range(10)  <范围>  (0,1,2,3,4,5,6,7,8,9)<0-9十个数>
     3 
     4 for i in range(10):
     5     print('loop',i)
     6 
     7     
     8 #  (0,10,3)  <起始数,结束值,步长>  <步长默认加1>
     9 for i in range(0,10,3):
    10     print('loop',i)
    11 
    12 
    13 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    14 
    15 # continue  <跳出本次循环,重新循环>
    16 
    17 for h in range(0,10):
    18     if h <3:
    19         print('loop',h)
    20     else:
    21         print('kkkkkk...')
    22         continue
    23         print('yyyyyy...')
    24     print('呵呵呵...')
    25 
    26 ######################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    27 
    28 #  for t in range(9)  <条件循环> <变量名> <在> <范围(参数)>
    29 #  print  <打印>
    30 #  if     <条件判断>
    31 #  break  <中止程序>
    32 
    33 for t in range(9):
    34     print('______',t)
    35     for j in range(11,50):
    36         print(j)
    37         if j >= 22:
    38                break

    7.python的数据类型

     1 1、数字
     2 int(整型)
     3 -9223372036854775808~9223372036854775807
     4 
     5 float(浮点型)
     6 3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4
     7 complex(复数)
     8 (-5+4j)和(2.3-4.6j)是复数的例子,其中-5,4为实数,j为虚数
     9 
    10 2、布尔值
    11   真或假
    12   1 或 0
    13 
    14 3、字符串
    15 "hello world"

    8.显示数据类型

    2 #显式转换的多种类型
     3 #
     4 #int (x [,base]) ⇒ 将x转换为一个十进制的整数 
     5 #long(x [,base]) ⇒ 将x转换为一个十进制的长整数 
     6 #float(x) ⇒ 将x转换为一个浮点数 
     7 #str(object) ⇒ 转换为字符串 
     8 #repr(object) ⇒ 转换为表达式字符串 
     9 #eval(str) ⇒ 用来计算在字符串中的有效Python表达式,并返回一个对象 
    10 #tuple(seq) ⇒ 将序列seq转换为一个元组 
    11 #list(seq) ⇒ 将序列seq转换为一个列表 
    12 #chr(x ) ⇒ 将一个整数转换为一个字符 
    13 #unichr(x ) ⇒ 将一个整数转换为Unicode字符 
    14 #ord(x ) ⇒ 将一个字符转换为它的整数值 
    15 #hex(x ) ⇒ 将一个整数转换为一个十六进制字符串 
    16 #oct(x ) ⇒ 将一个整数转换为一个八进制字符串
    View Code

    9.数据运算

    #############################################################################>>>
    
    #——————————数据运算——————
    #
    #——算数运算:——
    #
    #    运算符     描述                                                                         实例
    #
    #    +          加-两个对象相加________________________________________________________________a+b 输出结果 30    15+15=30
    #    -          减-得到负数或者一个数减去另一个数______________________________________________a-b 输出结果-10    20-30=-10
    #    *          乘-两个数相乘或者返回一个被重复若干次的字符串__________________________________a*b 输出结果200    20*10=200
    #    /          除-X除以Y______________________________________________________________________b/a 输出结果2      4/2=2
    #    %          取模-返回除法的余数____________________________________________________________b%a 输出结果0
    #    **         幂-返回X的Y次幂________________________________________________________________a**b 为10的20次方,输出结果100000000000000000000
    #    //         取整除-返回商的整数部分________________________________________________________9//2 输出结果 4      9.0//2.0  输出结果4.0
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——比较运算:——   false<假0>   true<真1>
    #
    #    运算符     描述                                                                          实例
    #
    #    ==         等于-比较对象是否相等__________________________________________________________(a==b)返回False
    #    !=         不等于-比较两个对象是否不相等__________________________________________________(a!=b)返回true
    #    <>         不等于-比较两个对象是否不相等__________________________________________________(a<>b)返回true   这个运算符类似  !=
    #    >          大于-返回X是否大于Y____________________________________________________________(a>b)返回False
    #    <          小于-返回X是否小于y。所有比较运算符返回1表示真,返回0表示假____________________(a<b)返回true
    #                     这分别与特殊的变量True和False等价.注意,这些变量名的大写。                                 
    #    >=         大于等于-返回x是否大于等于y____________________________________________________(a>=b)返回False
    #    <=         小于等于-返回x是否小于等于y____________________________________________________(a>=b)返回true
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——赋值运算:——
    #
    #    运算符      描述                                                                           实例
    #
    #    =           简单的赋值运算符_______________________________________________________________c  =  a + b 将 a + b 的运算结果赋值给 c
    #    +=          加法赋值运算符_________________________________________________________________c +=  a   等效于 c = c +  a
    #    -=          减法赋值运算符_________________________________________________________________c -=  a   等效于 c = c -  a                                                              
    #    *=          乘法赋值运算符_________________________________________________________________c *=  a   等效于 c = c *  a                                                                                                             
    #    /=          除法赋值运算符_________________________________________________________________c /=  a   等效于 c = c /  a                                                                                                             
    #    %=          取模赋值运算符_________________________________________________________________c %=  a   等效于 c = c %  a                                                                    
    #    **=         幂赋值运算符___________________________________________________________________c **= a   等效于 c = c ** a                                                                                                              
    #    //=         取整赋值运算符_________________________________________________________________c //= a   等效于 c = c // a                                                 _                                                             
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——逻辑值运算:——
    #
    #    运算符      描述                                                                           实例
    #
    #    and         布尔“与”-如果X为False,  X and Y  ,返回False,否则它返回Y的计算值_____________(K and J)返回true
    #    or          布尔“或”-如果X为True, 它返回True,否则它返回Y的计算值_________________________(K or J)返回true
    #    not         布尔“非”-如果X为True,返回False,如果X为False,它返回True______________________not(K and J)返回true                                                            
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——成员运算:——
    #
    #    运算符      描述                                                                           实例
    #
    #    in         如果在指定的序列中找到值返回True,否则返回False,________________________________x在y序列中,如果x在y序列中返回True
    #    not in     如果在指定的序列中没有找到值返回True,否则返回False,____________________________x不在y序列中,如果x在y序列中返回True                                                
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——身份运算:——
    #
    #    运算符      描述                                                                           实例
    #
    #    is         is是判断两个标识符是不是引用自一个对象__________________________________________x is y ,如果 id(x) 等于 id(y)  ,is 返回结果1
    #    is not     is not是判断两个标识符是不是引用自不同对象______________________________________x is not y ,如果 id(x) 不等于 id(y)  ,is not 返回结果1                                            
    #
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——位运算:——
    #
    #    运算符     描述                                                                         实例
    #
    #    &          按位与运算符_________________________________________________________________(a&b)  输出结果  12 ,二进制解释: 0000 1100
    #    |          按位或运算符_________________________________________________________________(a|b)  输出结果  61 ,二进制解释: 0011 1100
    #    ^          按位异或运算符_______________________________________________________________(a^b)  输出结果  49 ,二进制解释: 0011 0001
    #    ~          按位取反算符_________________________________________________________________(~a)   输出结果 -61 ,二进制解释: 1100 0011  ,在一个有符号二进制数的补码形式。
    #    <<         左移动运算符_________________________________________________________________a<<2   输出结果 240 ,二进制解释: 1111 0000
    #    >>         右移动运算符_________________________________________________________________a>>2   输出结果  15 ,二进制解释: 0000 1111
    #
    ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #    按位取反运算规则(按位取反再加1)
    #!/usr/bin/python
      
    a = 60            # 60 = 0011 1100
    b = 13            # 13 = 0000 1101
    c = 0
      
    c = a & b;        # 12 = 0000 1100
    print "Line 1 - Value of c is ", c
      
    c = a | b;        # 61 = 0011 1101
    print "Line 2 - Value of c is ", c
      
    c = a ^ b;        # 49 = 0011 0001 #相同为0,不同为1
    print "Line 3 - Value of c is ", c
      
    c = ~a;           # -61 = 1100 0011
    print "Line 4 - Value of c is ", c
      
    c = a << 2;       # 240 = 1111 0000
    print "Line 5 - Value of c is ", c
      
    c = a >> 2;       # 15 = 0000 1111
    print "Line 6 - Value of c is ", c
    
    
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #
    #——运算符优先级:——
    #
    #    运算符                             描述                                                                           
    #
    #    **                                  ___指数(最高优先级)
    #    ~ + -                               ___按位翻转,一元加号和减耗(最后两个的方法名为+@和-@)
    #    * / % //                            ___乘,除,取模和取整数                                                         
    #    + -                                 ___加法减法                                                                                                          
    #    >> <<                               ___右移,左移运算符                                                                                                         
    #    &                                   ___位 'AND'                                    
    #    ^ |                                 ___位运算符                                                                                                  
    #    <= < > >=                           ___比较运算符                                                          
    #    < > == !=                           ___等于运算符
    #    = %= /= //= -= += *= **=            ___赋值运算符
    #    is  is not                          ___身份运算符                                                           
    #    in  not in                          ___成员运算符                                                                                                         
    #    not or and                          ___逻辑运算符                                                                                                       
    # 
    ######>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    #    * / + -  <一元操作符>
    #    %[百分比,取余数]  **[幂运算操作符,比一元操作符左边高比一元操作符右边低]
    #    //[地板除法]
    #
    #运算符优先级
    #              幂运算          **
    #             正负号        +*  -*
    #         算术操作符    *  /  //   +  -
    #         比较操作符   <  <=   >   >=   ==   != 
    #         逻辑运算符       not  and  or
    #
    #比较操作符 < <=  >  >=  ==  !=   <根据表示的值进行比较>
    #
    #true  <1,真>   false  <0,假>
    #逻辑符  and <左右都为true执行>  or <左右 或者为true执行>  not<相反执行>
    
    ###>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    
    #三元操作符  语法: x if 条件 else y
    #x,y = 4, 5
    #if x < y:
    #   small=x
    #else:
    #   small=y
    #改进为
    #small = x if x < y else y
    #
    #assert<断言,关键字,AssertionError,程序检查点>
    
    #true  <1,真>   false  <0,假>
    #while<而,循环体,为true时执行>
    #
    #for<为,循环体>  in<在>
    #
    #for 目标 in 表达式
    #   循环体
    
    ##############################################################################################>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
    
    三元运算
    
    result = 值1 if 条件 else 值2
    如果条件为真:result = 值1
    如果条件为假:result = 值2
    
    三、进制
    
    二进制,01
    八进制,01234567
    十进制,0123456789
    十六进制,0123456789ABCDEF  二进制到16进制转换http://jingyan.baidu.com/album/47a29f24292608c0142399cb.html?picindex=1
    计算机内存地址和为什么用16进制?
    
    为什么用16进制
    1、计算机硬件是0101二进制的,16进制刚好是2的倍数,更容易表达一个命令或者数据。十六进制更简短,因为换算的时候一位16进制数可以顶4位2进制数,也就是一个字节(8位进制可以用两个16进制表示)
    2、最早规定ASCII字符集采用的就是8bit(后期扩展了,但是基础单位还是8bit),8bit用2个16进制直接就能表达出来,不管阅读还是存储都比其他进制要方便
    3、计算机中CPU运算也是遵照ASCII字符集,以16、32、64的这样的方式在发展,因此数据交换的时候16进制也显得更好
    4、为了统一规范,CPU、内存、硬盘我们看到都是采用的16进制计算
    
    16进制用在哪里
    1、网络编程,数据交换的时候需要对字节进行解析都是一个byte一个byte的处理,1个byte可以用0xFF两个16进制来表达。通过网络抓包,可以看到数据是通过16进制传输的。
    2、数据存储,存储到硬件中是0101的方式,存储到系统中的表达方式都是byte方式
    
    3、一些常用值的定义,比如:我们经常用到的html中color表达,就是用的16进制方式,4个16进制位可以表达好几百万的颜色信息。
    View Code

    10. 简单的几个习题

    10.1 使用while循环输入 1 2 3 4 5 6 8 9 10

    #coding=utf-8
    count = 1
    while count < 11:
        if count == 7:
            pass
        else:
            print (count)
        count = count+1
    
    print ('--end--')

    10.2 求1-100的所有数的和

    #coding=utf-8
    a = 1
    b = 0
    while a < 101:
        b = b + a
        a = a+1
    print (b)

    10.3求1-100的所有偶数

    #coding=utf-8
    a = 1
    while a < 101:
        temp = a %2
        if temp ==0:
           pass
           print (a)
        else:
           pass
        a = a+1   

    10.4求1-2+3-4+5..99的所有和

    #coding=utf-8
    a = 1
    b = 0
    while a < 101:
        temp = a % 2 
        if temp == 0:
            b = b - a
        else:
            b = b + a
        a = a+1
    print(b)

     10.5 用户登录(3次重试机会)

    import getpass
    s_name = "zhao"
    s_pass = "123456"
    count = 0
    while count < 3:
        tar_name = input("输入你的账户")
        password = input("输入你的密码")
        if tar_name == s_name and password == s_pass:
            print "欢迎进入"
            break
        elif not tar_name and not password:
            print "账户名不能为空"
            count +=1
        else:
            print "账户密码错误"
            count +=1

    一、流程控制

    1.条件语句

    条件判断

    计算机之所以能做很多自动化的任务,因为它可以自己做条件判断

    1
    2
    3
    a = 5
    if a > 2:
        print('yes')

    根据Python的缩进规则,如果if语句判断是True,就把缩进的两行print语句执行了,否则,什么也不做。

    也可以给if添加一个else语句,意思是,如果if判断是False,不要执行if的内容,去把else执行了:

    a = 5
    if a > 8:
        print('yes')
    else:
        print('no')
    复制代码
    a = 5
    if a > 8:
        print('yes')
    elif a > 3:
        print('no')
    else:
        print('bey')
    复制代码

    elifelse if的缩写,完全可以有多个elif,所以if语句的完整形式就是:

    if <条件判断1>:
        <执行1>
    elif <条件判断2>:
        <执行2>
    elif <条件判断3>:
        <执行3>
    else:
        <执行4>

    if语句执行有个特点,它是从上往下判断,如果在某个判断上是True,把该判断对应的语句执行后,就忽略掉剩下的elifelse

    if判断条件还可以简写,比如写:

    1
    2
    if x:
        print('True')

    只要x是非零数值、非空字符串、非空list等,就判断为True,否则为False

    2.循环

    Python的循环有两种,一种是for...in循环,依次把list或tuple中的每个元素迭代出来,看例子:

    for i in range(0,5):
        print(i)
    else:
        print('The for loop is over')
    names = ['Michael', 'Bob', 'Tracy']
    for name in names:
        print(name)

    所以for x in ...循环就是把每个元素代入变量x,然后执行缩进块的语句。

    再比如我们想计算1-100的整数之和,可以用一个sum变量做累加:

    sum = 0
    for x in range(101):
        sum+=x
    print(sum)

    习题:公鸡5文钱一只,母鸡3文钱一只,小鸡3只一文钱,用100文钱买一百只鸡,其中公鸡,母鸡,小鸡都必须要有,问公鸡,母鸡,小鸡要买多少只刚好凑足100文钱。

    复制代码
    for x in range(1,20):
        for y in range(1,33):
            z = 100-x-y
            if (z % 3 == 0) and (x * 5 + y * 3 + z / 3 == 100):
                s = "公鸡:%d;母鸡:%d;小鸡:%d;" %(x,y,z)
                print(s)
    复制代码

    第二种循环是while循环,只要条件满足,就不断循环,条件不满足时退出循环。比如我们要计算100以内所有奇数之和,可以用while循环实现:

    复制代码
    sum = 0
    n = 99
    while n > 0:
        sum += n
        n = n - 2
    print(sum)
    复制代码

    break

    在循环中,break语句可以提前退出循环。例如,本来要循环打印1~100的数字:

    复制代码
    n = 1
    while n <= 100:
        if n > 10: # 当n = 11时,条件满足,执行break语句
            break # break语句会结束当前循环
        print(n)
        n += 1
    print('END')
    复制代码

    执行上面的代码可以看到,打印出1~10后,紧接着打印END,程序结束。

    可见break的作用是提前结束循环。

    continue

    在循环过程中,也可以通过continue语句,跳过当前的这次循环,直接开始下一次循环。

    复制代码
    n = 0
    while n < 10:
        n += 1
        if n % 2 == 0: # 如果n是偶数,执行continue语句
            continue # continue语句会直接继续下一轮循环,后续的print()语句不会执行
        print(n)
    复制代码

    执行上面的代码可以看到,打印的不再是1~10,而是1,3,5,7,9。

    可见continue的作用是提前结束本轮循环,并直接开始下一轮循环。

    小结:break用于退出本层循环;continue用于退出本次循环,继续下一次循环

  • 相关阅读:
    fiber
    ACM用到的算法。先做个笔记,记一下
    matlab安装及破解
    银行家算法
    网络安全(超级详细)零基础带你一步一步走进缓冲区溢出漏洞和shellcode编写!
    心脏滴血漏洞复现(CVE-2014-0160)
    KMP算法分析
    利用BURPSUITE检测CSRF漏洞
    BURPSUITE爆破密码
    动态规划—最长回文子串LEETCODE第5题深度剖析
  • 原文地址:https://www.cnblogs.com/zhaobin-diray/p/8746437.html
Copyright © 2011-2022 走看看