zoukankan      html  css  js  c++  java
  • python基础01

    1、python介绍及与其它开发语言比较:

      相比C、Java运行慢,但是代码简介,可以减小学习成本,加快项目进度。跨平台,支持Linux和Windows。

      C语言是所有高级语言的基础,若要研究python语言的原理,需要再看C。C语言比python快的原因就是,C语言是直接将代码转换为机器码,提供给机器运行。

      Python及Java、PHP等高级语言都是由各自的解释器编译成字节码,再由字节码转换为机器码提供给机器运行。

      Python按照解释器的不同可以分为三类:

        CPython:将代码解释为C语言的字节码,然后再转换为机器码(逐行编译)。现在默认的是这种。

        pypy:代码--》C语言字节码--》机器码(全部转换完成)--》运行    。解决Python运行速度相对较慢的问题。

        其它语言开发的Python:代码--》相应语言的字节码--》机器码。

        执行过程:打开代码文件--》词法、语法分析--》解释为字节码文件

      若看到.pyc结尾文件,即解释好的字节码文件。

      在命令行模式运行python文件:解释器位置python.exe python代码文件地址

                    eg:C:Usersgit.git-THINKAppDataLocalProgramsPythonPython35python.exe  F:wangkcday01s3.py

    2、字符编码

      ASCII码:美国标准,包括英文字母、数字及特殊符号等。一个字符占用一个字节。一个字节8位。

      万国码Unicode:每个字符至少占用两个字节。字母占用两个,前面由0补齐;中文占用3个字节。

      utf-8:万国码进行压缩,节约内存。英文占用1个字节;中文占用3个字节。

      gbk、GB2312:中文两个字节来表示

      扩展:乱码原因:文件编码及解释器编码不一致。

        文件编码:File-->default settings -->搜索coding-->File Encoding,

        解释器编码:可以通过在代码文件的第二行设置: # -*- coding:utf-8 -*-

              (py3默认为utf-8,py2默认为ascii。所以为了方便在第二行设置解释器编码格式,不管以后这段代码在哪里运行都是可以的)

    3、IDE建议使用pycharm,常用设置:

      编码设置:File-->default settings -->coding-->File Encoding

      文本样式:通常第一行设置解释器所在的安装路径,第二行是解释器的编码格式。

          File-->default settings -->搜索temp-->File and Code Templates -->Python Script,在右边的文本框中输入:

          #!C:Usersgit.git-THINKAppDataLocalProgramsPythonPython35
          # -*- coding:utf-8 -*-

      按CTRL+滚轮滑动文本放大缩小:File-->setting-->搜索mouse-->General-->右侧的Mouse选项框中三个选项全选:Change font size(Xoom) with Ctrl +Mouse Wheel

      

    4、变量:

      变量名:就是记录的该变量的值所在的内存地址。

        eg1:name1='wangkc'

          name2 = name1

          name1 = 'xingxing'

          print(name2) # 打印的还是‘wangkc’

        eg2: name1 = 'wangkc'

           name2 = 'wangkc'

           这里面py3做了内存优化,name1和name2使用的是同一个内存地址。

      变量名的命名:字母、数字(不能开头)、下划线

               不能是python里面的关键字

             可以使用下划线连接,增加变量名的可读性。

    5、输入、输出语句:input、getpass(需导入import getpass)

      input:  num1 = int(input('请输入一个整数:')) 

          括号里面是提示信息,提示用户在控制台输入一个值,并将值赋值给一个变量

          注意:input得到的变量的值为字符串格式,如果需要进行数学运算等,需要进行强制转换:int(num1)--》转换为整数格式。

      getpass:隐式显示,在控制台输入的是显示不出来的,需要在cmd命令行格式执行该文件才能显示。    

    import getpass
    
    num1 = int(getpass.getpass('请输入一个整数:'))
    if num1 == 1:
        print('good!')
    

      然后在cmd执行:C:Usersgit.git-THINKAppDataLocalProgramsPythonPython35python.exe F:wangkcday01s2.py

    6、注释方法:

      #:单行注释

      “”“     ”“”或者'''  ''':多行注释

      快捷方式:选中然后按CTRL+?

    7、while 条件表达式:

         循环体

       eg1:求1-100直接所有数的和

    i = 1
    sum = 0
    while i < 101:
        sum = sum + i
        i += 1
    print(sum)

    8、continue(直接跳出本次循环,直接开始下次循环)、break(跳出整个循环):

       eg1:求1到100之间所有数的和,使用break:

    i = 1
    sum = 0
    while True:
        sum = sum + i
        if i == 100:
            break
        i += 1
    print(sum)
    

       eg2:求1/2/3/4/5/6/8/9的和

     

    i = 1
    while i < 10:
        if i == 7:
            i += 1  #这一行代码要在continue前面,否则,代码执行会进入死循环,不断的打印6
            continue
        print(i)
        i += 1
    

      

    9、for循环:注意这里for循环只能用for 变量1 in 变量2格式。

    list1 = ['li','','','']
    for name in list1:
        print(name)

    10、if条件分支语句:

    score = int(input('请输入你的分数'))
    if score >= 90:
        print('优秀')
    elif score >= 80 and score < 90:
        print('良好')
    else:
        pass    #pass 表示通过,不做任何操作
    

      

    11、运算符:   %取余 ,//整除 , ** 几的n次方

      a: i = i+1 同 i += 1

      b: and(两边都True则为True)、 or(有一个True则为True)

      c: in(包含   a = 'i' in 'comein'  ,一般用于判断某个字符串或者列表中是否包含某个元素。)

    12、占位符:%s字符串,%d数字

      str = 'welcome %s come our home,her age is %d' % ('wangkc',18)

    13、数据类型:

      1)整数:a = 18或者a = int(18)

           a = '18'

          转换:b = int(a)

      2)布尔boolean:True或者False

        1为True,0为False

        ‘’空字符串为False,其它为True

    print(int(True))
    a = ""
    if not a:
        print('yes')
    

      

      3)字符串:定义str(),强制转化、字符串拼接、字符串格式化(占字符%s)判断字符串a是否在字符串b中、移除索引空白、分割、长度、切片、索引

         a字符串定义:str1 = 'wang'  或者str2 = str("wang")

        b、转化:    

    i = int(18)
    str1 = str(int)
    print(type(str1))  #class  'str'    
    # type(变量名)  返回该变量的类型
    

        c、字符串拼接使用“+”:print('name'+'age')

        d、移除空白:变量名.strip()去除两侧的空白、lstrip移除左侧空白、rstrip移除右侧空白,注意空白包括空格和换行等。  

    val = '   tian  yi youqing    '
    new_val = val.strip()  #得到一个新的字符串,不会对原字符串产生影响。
    new_val = val.lstrip()
    new_val = val.rstrip()
    print(val)
    print(new_val)
    

        e、长度len(变量名)   

    val = 'jjdjjdjd'
    v = len(val)
    print(v)
    

        f、索引 

    val = 'ddfddd'
    i = 0
    while i < len(val):    
        print(val[i])
        i += 1
    

        g、分割   变量名.split('分隔符',[数字])

    val = 'abc|def|hij|klm|nob'
    val_list = val.split('|')
    print(val_list)  #['abc', 'def', 'hij', 'klm', 'nob']
    print(val.split('|',2))  #['abc', 'def', 'hij|klm|nob']    #后面的数字表示把前面的几个分割
    print(val.split('|',-2))  #['abc', 'def', 'hij', 'klm', 'nob']
    

        h、切片  

    val = 'abcdefghijk'
    print(val[1:3])  #打印出索引为1到(3-1)的字符串  bc
    print(val[:4])  # abcd
    print(val[5:])  #fghijk
    print(val[:-1])  #abcdefghij
    

      

      4)列表list:定义、判断是否包含、索引、长度、切片、末尾追加、插入、删除remove  del、修改、for循环

    #列表创建
    list1 = ['abc','ddf','iidk','kkk']
    list2 = list(['abc','ddf','iidk','kkk'])
    
    #判断是否包含
    if 'abc' in list1:
        pass
    
    #索引:
    print(list1[0])
    
    #长度
    print(len(list1))
    
    #切片:
    print(list1[0::2]) #起始位:终止位:步长   ['abc', 'iidk']
    
    #追加:list.append(元素),直接返回新的列表,不用再赋值了。如
    list2 = list1.append('hhhhh')
    print(list1,list2)   #['abc', 'ddf', 'iidk', 'kkk', 'hhhhh'] None    list2就是None
    list1.append(11111)
    print(list1)
    
    #插入:insert(索引,元素)
    list1.insert(0,'yyyyy')
    print(list1)
    
    #删除:remove(元素),  del list[n]
    list1.remove(11111)
    print(list1)
    del list1[0]
    print(list1)
    
    #更新:赋值
    list1[2] = 22222
    print(list1)
    
    #for循环轮询打印
    for i in list1:
        print(i)
    

      

      5)字典:创建、key:value形式(根据索引名找到对应的值)、长度、增加或者是修改(因为字典是无序的,因此在增加时,若没有就是增加,有则修改)、删除、for循环

    #创建
    dict1 = {'name':'wangkc','pwd':1234,'age':18}
    dict2 = dict({'name':'xiaoling','pwd':1234,'age':18})
    
    #依据索引名称或者值
    pwd = dict1['pwd']
    print(pwd)
    
    #长度
    n = len(dict1)
    print(n)
    
    #增加或修改,无则增加,有则修改
    dict1['no'] = 1
    print(dict1)
    
    #删除 del
    # del dict1['age']
    # print(dict1)
    
    #for循环
    for item in dict1:
        print(item)    #若是只是字典名,则默认是打印索引名
    
    for item in dict1.keys():
        print(item)   #打印索引名
    
    for item in dict1.values():
        print(item)  #打印索引值
    
    for key,val in dict1.items():
        print(key,val)  #key和value 全部打印no 1 pwd 1234 name wangkc age 18
    

     

    14、文件操作:

      a)打开读取:f1 = open('文件名','r')

          data = f1.read()

          f1.close

      b)关闭写入:f1 = open('文件名','w')

            f1.write('str')

            f1.close() 

      

      

      

  • 相关阅读:
    【转】测试驱动开发
    【转】什么是“脚本语言”
    【转】“解决问题”与“消灭问题”
    【转】程序语言的常见设计错误(1)
    【转】解密“设计模式”
    【转】所谓软件工程
    【转】清华梦的粉碎
    算法知识目录整理
    买书不读是一种什么病?
    Linux 下socket通信终极指南(附TCP、UDP完整代码)
  • 原文地址:https://www.cnblogs.com/wangkc/p/6758398.html
Copyright © 2011-2022 走看看