zoukankan      html  css  js  c++  java
  • Python基础(一)

    1.Python2.X和3.X的区别:

      编码:
    
        3.X默认使用utf-8编码,支持中文字符。2.X要支持中文需要设定编码格式  # -*- coding: utf-8 -*-
    
      语法:
    
        1)去除了<>,改用!=.
    
        2)去除‘’,改用repr().
    
        repr(对象)- >字符串   返回对象的规范字符串表示。对于大多数对象类型,eval(repr(对象))= =对象。
    
        3)整型除法返回浮点数.原整型结果请使用// 例如5//4
    
        4)print语句的改变,原print "" 更换为print ("") 例如:原 print "Hello World"现 print ("Hello World")
    
        5)raw_input去除
    
          
    
        6) 2.X: print x,                              # 使用逗号结尾禁止换行 
             3.X: print(x, end=" ")                     # 使用空格代替换行 
    
        7) 2.X: print (x, y)                          # 输出repr((x, y)) 
             3.X: print((x, y))                         # 不同于print(x, y)! 
    
        8)  你也可以定制项目之间的分隔符,例如:
    
          print("There are <", 2**32, "> possibilities!", sep="")

    2.流程控制和数据类型。

    1 条件判断
    2 循环
    3 列表和元组
    4 字典
    5 集合
    6 文件处理

     

     1.1.条件判断

        条件判断格式:

        if <条件判断1>:

          <执行操作1>

        elif <条件判断2>:

          <执行操作2>

        else:

          <执行操作3>

        例如:简单判断用户密码是否正确

        User=“chen”
    
        Passwd="123"
    
        Login_u=input("please input your User:")
    
        Login_p=input("please input your Pass:")
    
        if Login_u == User and Login_p == Passwd:
    
          print ("Welcome %s login to system!") %User
    
        #elif....(判断是否为来宾用户等...)
    
        else:
    
          print ("invalid user,GoodBay!!")

    在2.X版本中可以隐藏用户输入的密码,在3.X版本中测试有点问题。

    import getpass  ##必须导入getpass模块
    user="chenjinpeng"
    passwd="123"
    a=raw_input("user:")
    b=getpass.getpass("passwd:")  
    print user,passwd,a,b
    if a == user and b ==passwd:
            print "welcome"
    else:
            print "baibai"

      1.2循环

    for循环
        
        for (表达式1;表达式2...)
            循环体
    while循环
        while (条件)
            循环体

    需求:让我们刚才的判断登陆加入次数限制,用户输入3次错误后退出

    break跳出本层村换

    continue 跳出本层本次循环,进去下一次循环

    for循环

    for i in range(3):
    User="chen"
    Passwd="123"
    Login_u=input("please input your User:")
    Login_p=input("please input your Pass:")
    if Login_u == User and Login_p == Passwd:
    print ('Welcome %s login to system!' %Login_u)
    break
    else:
    print ("密码错误,输入3次退出")
    else:
    print ("你已经输入错误超过三次")

    while 循环

    User = "chen"
    Passwd = "123"
    count = 0
    while count < 3:
        Login_u=input("please input your User:")
        Login_p=input("please input your Pass:")
        if Login_u == User and Login_p == Passwd:
            print ("Welcome %s login to system!" % Login_u)
            break
        else:
            print ("密码错误,超过三次将退出")
            count +=1
    else:
        print ("密码输入错误超过3次,退出!")

    计时器 time模块

    import time
    for i in range(10):
        print (i)
        time.sleep(5)

    1.3 列表和元组 

    列表是指一组有序列的集合,可以将各式各样的数据存放在列表中,方便对其进行增删改查以及遍历等各种操作,也可以将列表赋值给变量

      列表和元组的区别:

    列表格式:['zhao','tian','sun','li']
    元组格式:('zhao','tian','sun','li') 
    列表:append() | remove()  | pop()  | extend() | count() | index() | insert() | reverse() | sort()  
    元组:count() | index()
    type(Name)可以查看Name的类型
    <type 'list'> 元组表示为 <type 'tuple'>
    len(Name)可以查看列表以及元组元素的个数

    >>> len(Name)
    4

    列表中参数解释:

    append()     #列表尾部增加元素。

    remove()  #删除列表中的元素,如有重复元素则为删除第一个找到的元素

    pop()          #默认删除末尾的元素,()中如果添加了元素的索引值,则删除索引到的元素

    extend()      #将两个列表组合。

    >>> Name
    ['zhao', 'sun', 'li', 'chen']
    >>> Name2=['a','b']
    >>> Name.extend(Name2)
    >>> Name
    ['zhao', 'sun', 'li', 'chen', 'a', 'b']

    count()  #计数,统计列表中相同的元素出现的次数。

    >>> Name
        ['zhao', 'sun', 'li', 'zhao', 'chen', 'a', 'b']
        >>> Name.count('zhao')
        2

    index()  #查看索引值(查看元素在列表中的位置,从0开始)

    >>> Name
    ['zhao', 'sun', 'li', 'zhao', 'chen', 'a', 'b']
    >>> Name.index('li')
    2

    insert()  #插入元素到列表中,可以指定位置

    >>> Name
    ['zhao', 'sun', 'li', 'zhao', 'chen', 'a', 'b']
    >>> Name.insert(2,'zhou')
    >>> Name
    ['zhao', 'sun', 'zhou', 'li', 'zhao', 'chen', 'a', 'b']

    reverse()  #列表反转

    >>> Name
    ['zhao', 'sun', 'zhou', 'li', 'zhao', 'chen', 'a', 'b']
    >>> Name.reverse()
    >>> Name
    ['b', 'a', 'chen', 'zhao', 'li', 'zhou', 'sun', 'zhao']

    sort()排序 # 默认优先排序符号,其次为数字,大小写,在其次按照字母优先级进行排序

    >>> Name
    ['a', 'b', 'chen', 'li', 'sun', 'zhao', 'zhao', 'zhou', '1', '2', 'A', 'C']
    >>> Name.sort()
    >>> Name
    ['1', '2', 'A', 'C', 'a', 'b', 'chen', 'li', 'sun', 'zhao', 'zhao', 'zhou']

    >>> Name.append('&')
    >>> Name.append('%')
    >>> Name.sort()
    >>> Name
    ['!', '%', '&', '1', '2', 'A', 'C', 'a', 'b', 'chen', 'li', 'sun', 'zhao', 'zhao', 'zhou']

    元组与列表类似,但是元组一单初始化就不能修改,这也是元组的特点

      陷阱:当你定义一个tuple的时候,tuple的元素就必须被确定下来。

    >>> a = (1,2)
    >>> a
    (1, 2)
    如果要定义一个空的元组,可以写成()
    例如:
    >>> a = ()
    >>> a
    ()
    但是,要一定一个只有一个元素的元组,如果你这样定义
    >>> a = (1)
    >>> a
    1
    >>> type(a)
    <type 'int'>
      是的,它是一个整数类型,,而不是元组,你必须这么去做
    >>> a = (1,)
    >>> a
    (1,)
    >>> type(a)
    <type 'tuple'>
    这是因为括号()既可以表示元组,又可以表示数学公式中的小括号,这就产生了歧义,因此python定义,这种情况,按小括号计算。必须使用,消除歧义

    切片  #切片可以从列表中读取出指定的多个元素。

      例:

    >>> name=['zhao','tian','sun','li','1','2','3']
        name[2:] #取出索引值2以后的元素,包含2
        >>> name[2:]
    ['sun', 'li', '1', '2', '3']
        >>> name[:2] #取出索引值2以前的元素 不包含2
    ['zhao', 'tian']
        >>> name[1:4] #取出索引值从1开始到4的元素 不包含4
    ['tian', 'sun', 'li']
        >>> name[:-3] # 取出-3以前的元素 不包含-3
    ['zhao', 'tian', 'sun', 'li']
        >>> name[-3:] #取出-3以后的元素 包含-3
    ['1', '2', '3']
        >>> name[0:6:2] #从0-6之间不包含6,每隔2个取一个值,2为步长
    ['zhao', 'sun', '1']
        >>> name[0:7:3]#从0-7开始不包含7,每隔2个取一个值,3为步长
    ['zhao', 'li', '3']
    #注意:如元素只有n个 必须为n+1才能取出最后一个元素

    字典

    ...

    多行注释以及格式化输出

    Name = input("please input your Name:")
    Age = int(input("please input your Age:"))
    Job = input("please input your Job:")
    print ('''Information:
        Name: %s   
        Age:  %d
        Job:  %s
        ''' %(Name,Age,Job))         ##%s和%d表示一个连接调用的意思,在结束分别按照顺序输入你的变量名称即可。 三个单引号'或者双引号"可以多行打印,也可以多行注释。

    数据类型

    1.数字   
    INT(整数)
    32位机器上,整数的位数为32位,取值范围为-2**32-1~2**32-1
    64位机器上,整数的位数为64位,取值范围为-2**63-1~2**63-1
    LONG(长整型)
    3.X版本取消了长整型
    FLOAT(浮点型)
    带有小数点的数字
    2.布尔值
    真或假
    1或0
    3.字符串
    “Hello World”
    pythonZ中,每次创建字符串需要在内存中开辟一块连续的空,并且一单需要修改字符串 话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一次空间
    PS: 字符串表示为 %s ; 整数%d;浮点数 %f
    字符串的常用功能:
        .移除空白
        .分割
        .长度
        .索引
        .切片
    4.列表
    基本操作:
        .索引    
        .切片
        .追加
        .删除
        .长度
        .切片
        .循环
        .包含
    5.元组
    基本操作:
        .索引
        .切片
        .循环
        .长度
        .包含
    6.字典(无序)
    常用功能:
        .索引
        .新增
        .删除
        .键、值、键值对应
        .循环
        .长度
        .PS. 循环,range , continue 和break

    运算符

    算数运算符

    以下假设变量a为10,b为20

    运算符 描述   实例
    +       加-两个对象相加 a+b=30
    - 减-得到的负数或是一个数减去另一个人数 a-b=-10
    * 乘-两个数相乘 a*b=200
    / b/a=2
    % 取模-返回除法的余数 b%a=0
    ** 幂,返回a的b次幂 a**b=10的20次方
    // 取整除,返回除法的整数部分 b//a=2

    比较运算符

    运算符 描述 实例
    == 等于-比较对象是否相等 (a==b)返回false
    != 不等于-比较两个对象是否不相等 (a!=b)返回True
    <> 不等于-比较两个对象是否不相等(python3.X已废弃) (a<>b)返回true 类似!=
    > 大于-返回x是否大于y (a>b) false
    < 小于-返回x是否小于y (a<b) True
    >= 大于等于 (a>=b) false
    <= 小于等于 (a <=b) false

    赋值运算符

    运算符 描述 实例
    = 简单的赋值运算符 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

    位运算符

    运算符 描述 实例
    & 按位与运算符  (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

    逻辑运算符

    运算符 描述 实例
    and 布尔“与”- 如果x为False,x and y返回False 否则它返回y的计算值  (a and b)返回true
    or 布尔“或”-如果x是True,它返回True,否则它返回y的计算值 (a or b)返回true
    not 布尔“非”-如果x为true,返回false,如果x为false 它返回true not(a and b)返回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返回结果1

    文件操作:

    打开文件

    2.X版本 File_obj=file("文件路径",“模式”)

    3.X版本 File_obj=open("文件路径",“模式”)

    打开文件的模式

    . r,    以只读方式打开文件
    . r+,  可读写文件。【可读,可写,可追加】 . w, 以写入模式打开文件,如果文件存在则将其内容覆盖,不存在则新建 . a, 以追加模式打开,不存在则创建,存在则只追加内容 . w
    +, 以写读模式打开,文件存在将覆盖,不存在将创建
    . “U”,  U表示在读取时,可以将 自动转换成 (与r或r+模式同使用)
    . rU
    . r+U
    . "b"表示处理二进制文件,(如:FTP发送上传ISO镜像文件,Linux可忽略,Windows处理二进制文件时需标注)
    . rb
    . wb
    . ab 读取文件内容: 一次性将所有内容加载到内存 job.read() 一次性加载所有内容到内存并根据行分割成字符串 obj.readlines() 每次仅读取一行数据
    for line in obj: prine (line) 写文件内容: obj.write('内容') 关闭文件句柄 obj.close()
    PS. replace函数,替换文件中的内容obj.replace("old","new")
    enumerate() 函数,枚举 遍历 列表,字符串 字典等
    例如:

    a = [1,2]
    for i,val in enumerate(a):
    print (i,val)

    
    

    >>> 0 1
    >>> 1 2

    isdigit()函数 判断字符串是否为数字,返回True或者false

    例如:

    a = "1"
    b = "b"
    print (a.isdigit())
    print (b.isdigit())
    True
    False
     
    
    
  • 相关阅读:
    从国内流程管理软件市场份额看中国BPM行业发展
    为什么流程是成功企业的关键?
    港真,到底应该选择OA还是BPM?
    hello world
    i40e网卡驱动遇到的一个问题
    suse 11 sp3编译报错问题
    linux scsi相关的一些学习笔记
    linux tcp 在timewait 状态下的报文处理
    趋势科技 redirfs模块的一个小问题
    linux 3.10 一个扇区异常可能引发的hung
  • 原文地址:https://www.cnblogs.com/Chen-PY/p/5079769.html
Copyright © 2011-2022 走看看