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

    python简介

    Python是一种简单易学,功能强大的编程语言,它有高效率的高层数据结构,简单而有效地实现面向对象编程。Python简洁的语法和对动态输入的支持,再加上解释性语言的本质,使得它在大多数平台上的许多领域都是一个理想的脚本语言,特别适用于快速的应用程序开发。 Python可以应用于众多领域,如:数据分析、组件集成、网络服务、图像处理、数值计算和科学计算等众多领域。

    Python 是一个高层次的结合了解释性、编译性、互动性和面向对象的脚本语言。

    Python 的设计具有很强的可读性,相比其他语言经常使用英文关键字,其他语言的一些标点符号,它具有比其他语言更有特色语法结构

    Python 特点

    • 1.易于学习:Python有相对较少的关键字,结构简单,和一个明确定义的语法,学习起来更加简单。

    • 2.易于阅读:Python代码定义的更清晰。

    • 3.易于维护:Python的成功在于它的源代码是相当容易维护的。

    • 4.一个广泛的标准库:Python的最大的优势之一是丰富的库,跨平台的,在UNIX,Windows和Macintosh兼容很好。

    • 5.互动模式:互动模式的支持,您可以从终端输入执行代码并获得结果的语言,互动的测试和调试代码片断。

    • 6.可移植:基于其开放源代码的特性,Python已经被移植(也就是使其工作)到许多平台。

    • 7.可扩展:如果你需要一段运行很快的关键代码,或者是想要编写一些不愿开放的算法,你可以使用C或C++完成那部分程序,然后从你的Python程序中调用。

    • 8.数据库:Python提供所有主要的商业数据库的接口。

    • 9.GUI编程:Python支持GUI可以创建和移植到许多系统调用。

    • 10.可嵌入: 你可以将Python嵌入到C/C++程序,让你的程序的用户获得"脚本化"的能力。

    Python解释器

    1.Cpython

        Python的官方版本,使用C语言实现,使用最为广泛,CPython实现会将源文件(py文件)转换成字节码文件(pyc文件),然后运行在Python虚拟机上

    1
    程序----(c解释器)----(字节码)----(机器码)-----cpu

    2.Jyhton

        Python的Java实现,Jython会将Python代码动态编译成Java字节码,然后在JVM上运行。

    1
    程序----(java解释器)----(字节码)----(机器码)-----cpu

    3.IronPython

        Python的C#实现,IronPython将Python代码编译成C#字节码,然后在CLR上运行。(与Jython类似)

    1
    程序----(c#解释器)----(字节码)----(机器码)-----cpu

    4.PyPy(特殊)

        Python实现的Python,将Python的字节码字节码再编译成机器码。

    1
    程序----(c#解释器)----(字节码)----(机器码)-----cpu
    • pyc文件
    • 执行Python代码时,如果导入了其他的 .py 文件,那么,执行过程中会自动生成一个与其同名的 .pyc 文件,该文件就是Python解释器编译之后产生的字节码。
    • ps:代码经过编译可以产生字节码;字节码通过反编译也可以得到代码。


    python官网

     


    Windows安装


     等待安装完成了--cmd--python -V (看版本信息)--python




    Linux安装

    看python默认版本, 如果是2版本就更改为3版本
      1. #!/bin/bash

        #install python3.6

        yum -y install readline-devel  #修复bug 

        wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1rc1.tgz

        mkdir /usr/local/python3

        tar -xvf Python-3.6.1rc1.tgz

        cd Python-3.6.1rc1

        ./configure --prefix=/usr/local/python3

        make

        make install

        ln -s /usr/local/python3/bin/python3 /usr/bin/

        echo "python.2 write command----python"

        python -V                    #显示默认安装版本

        echo "python.2 write command----python3"

        python3 -V                   #显示安装版本

     

    交互               

    • >>>print (name)                     #输出
    • >>>name = input("nanna:")              #输入,显示交互
    • >>>import getpass               #调用模块
    • >>>pqqq = getpass.getpass("请输入密码")     #输入,不显示交换,需要调用变量import getpass)

    快捷键操作

    • 注释多行      先标记多行 再 Ctrl +/ 
    • 查看源码      ctrl + 鼠标左键点击命令
    • 列模式         alt +鼠标左键

    结束符号

    • break              结束 跳出所有循环
    • continue          结束当前循环继续下一次循环,针对for循环
    • pass                python站位 没有就会语法错误
    • return             终止 针对函数,
    • exit                返回编号含蓄 如 exit(0...)
    • continue        跳出本次循环,执行下一次循环

    变量声明要求

    1. 变量只能用.字母,数字,下划线任意组合,且变量开头不能是数字
    2. 关键字不能为变量
    • import keyword        #keyword模块,可以输出当前版本的所有关键字
    • print(keyword.kwlist)
    • ['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

    数据类型


    类型 type 创建方法
    数字 int a = 1
    字符串 str a = ("asv")  注:多个元素就是元组
    元组 tuple b = ("asv","aed",21)
    列表(有序) list c = ["asv","aed",21]
    字典(无序) dict d ={"v1":"bb","v2":"b3"}
     

    数字

     int          整型 

    • 32位系统 -2**31~~2**31-1    即-2147483648~2147483647
    • 64位系统 -2**63~~2**63-1    即-9223372036854775808~9223372036854775807
    1. >>>bin(10) 二进制
    2. '0b1010'
    3. >>> 10 默认十进制
    4. 10
    5. >>> oct(10) 8进制
    6. '0o12'
    7. >>> hex(10) 16进制
    8. '0xa' a表示10 b表示11 以此类推
     

    Long     长整型 pytyon3没有

     

    Float     浮点数 1个浮点数占8字节(64位) 浮点数:带有小数的整数)

     

    布尔   (判断真或假 )

    bool 
           1为真 1==True     0为假 0==False (只有0是False 其他都是True)
    1. 判断a列表是否存在元素
    2. >>> a =['aa','cc']
    3. >>> "bb" in a
    4. True
    5. >>> "dd" in a
    6. False

    字符串

    strip移除空白 

     
    1. >>> msg14=" adf " #前后有空格
    2. >>> print(msg14.strip()) #去掉左右空格,()内可加字符
    3. adf
    4. >>> print(msg14.rstrip()) #去掉右空格
    5. adf
    6. >>> print(msg14.lstrip()) #去掉右空格
    7. adf

    分割      split   ????

    1. >>>user_1 = "aex|sb123|9"
      >>>v = user_1.split("|") #分割所有,以|为分开
      >>>print (v)
      ['aex', 'sb123', '9']
      >>>v = user_1.split("|",1) #分割第一个,从左边分割
      >>>print (v)
      ['aex', 'sb123|9']
      >>>v = user_1.rsplit("|",1)#分割第一个,从右边分割
      >>>print (v)
      ['aex|sb123', '9']

    长度     len(name) 

    1. 按字符算 不是字节
    2. >>> msg17=("abc ","aa") #多个元素显示元素个数,单个元素显示字符串个数
    3. >>> print(len(msg17))
    4. 2
    5. >>> msg17=("abc")
    6. >>> print(len(msg17))
    7. 3
     

    索引        name[2]

    1. >>> name
    2. [11, 'ad', 33]
    3. >>> name[2]
    4. 33

    切片        a[:3] 或a[3:]或a[3]

        1. >>> msg="nihao 123"
        2. >>> print(msg[1]) #范围 取位置1的值
        3. i
        4. >>> print(msg[2:5]) #:表示顺序延伸 范围 取位置2-4的值 顾头不顾尾不取位置4的值
        5. hao
        6. >>> print(msg[0:]) #:表示顺序延伸 范围 所有位置的值
        7. nihao 123
        8. >>> print(msg[0:-1]) #:表示顺序延伸 范围取值0到-2的值 顾头不顾尾不取位置-1的值
        9. nihao 12

    元组

    元组的权限count和index    a = ('a',1) 
    • count统计元素出现的次数
    • index 查找字符串(查找不到报错)
    元组嵌套字典
    1. >>> t1 = (1,2,{"gg":"k3"}) #增加了字典
    2. >>> t1
    3. (1, 2, {'gg': 'k3'})
    4. >>> t1[2]["gg"]=2
    5. >>> t1
    6. (1, 2, {'gg': 2})

    列表

      • L = ["a",11,var]
      • dir(L)          #查看L列表的能执行的命令
      •  
      • L.append(var) #增加,追加,var的值添加到L的中
      •  
      • L.insert(2,var) #插入, 指定追加,在第二元素后增加var
      • L.pop() #删除最后一个元素,并从list中删除之
      •  
      • L.remove(var) #删除,指定删除元素var 如有多个var 删除第一次出现元素var
      •  
      • L.count(var) #查看, 显示元素var出现个数
      •  
      • L.index(var) #该元素的位置,无则抛异常
      •  
      • L.extend(list) #追加list,即合并list到L上
      •  
      • L.sort() #排序
      •  
      • L.reverse() #倒序 反转排序
      • 更新             a=['A','B'] a[1] = 'c' print(a) (结果 a = ['A','c'] )

    字典

    • dic = {'name':'alex','age':["aa","bb"],}
    • #查
    • print (dic.get('name'))            #如果找不到name的vulue,返回None
    • print (dic.get('name',"null"))    #如果找不到name的vulue,指定返回null
    • #增
    • dic['gender']='female'
    • #改
    • dic['name']='guolm' #改key
    • dic['age'][0]='guolm' #改key中第一个value
    • #删 
    • del dic['name']

    字符编码

    ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256,所以,ASCII码最多只能表示 256 个符号。

    Unicode Unicode(统一码、万国码、单一码)是一种在计算机上使用的字符编码。 Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每 个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位 来表示(2个字节),即:2 **16 = 65536

    UTF-8 utF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将 所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个 字节保存,东亚的字符用3个字节保存

     

    循环语句

    if循环

    • 格式:
    •      if 条件:
                      ...
           elif 条件:
                      ...
           else:
                      ...  
    • 交换判断
    • vi girl.py
    • #一次交换判断
    • #!/usr/bin/python
    • sex = input("input your gender: ")
    • if sex == "girl":
    • print ("i like you ")
    • elif sex == "man":
    • print ("Going to homesexual!...")
    • else:
    • print("I'm will very angry!")
     

    for循环

    • for循环+if
    • 如下是for循环写3次方法,注意格式
    • guolm = 23
    • for i in range(3):
    • g = int(input("guess your lucky number: ")) #int 把用户输入的字符串格式转换成数字格式
    • if g < guolm:
    • print ("please guess a big bigger")
    • elif g > guolm:
    • print ("please guess a little bit small")
    • else:
    • print("bingo!")
    • break
    • else:
    • print ("too many retrys!")
    • 多层for循环
    • for i in range(1,10):
    • for j in range(1,10):
    • if j < 6:
    • continue #跳出当此循环继续下一次循环,针对for循环
    • print(i,j)
     

    while循环

    死循环 

    • 判断输入为数字 则跳槽,否则进行下一次循环
    • while True: #当条件为真 则:
    • salary = input("Your salary:") #交互
    • if salary.isdigit(): #判断为整数,则执行如下操作
    • salary = int(salary) #格式化数字
    • break #跳出所有循环
    • 所有循环 else:
    • continue #跳出当此循环,进行下一次循环

    指定次数循环

        • 三次错误退出
        • #!/usr/bin/python
        • #三次错误显示too many retrys并退出,三次内正确显示bingo并退出
        • guolm = 23                   #23岁
        • #g = -1                       #固定值,可以不加
        • i = 0
        • while i<3:                   #小于3次继续执行 否则退出
        • print ("i:",i)           #显示输入次数
        • g = int(input("guess your lucky number: ")) #int 把用户输入的字符串格式转换成数字格式
        • if g < guolm:
        • print ("please guess a big bigger")
        • elif g > guolm:
        • print ("please guess a little bit small")
        • else:
        • print("bingo!")
        • break
        • i += 1 #意思是 i = i +1
        • else:
        • print ("too many retrys!")
        •  
        • ----------------------------------------------------------------------------------------------

     

     

  • 相关阅读:
    netstat 命令查看本机网络连接情况
    代替readonly
    Windows 性能监视器工具perfmon
    IE地址栏显示网站图标
    git log
    git 远程仓库管理
    git branch
    linux 安装p7zip 支持rar
    git使用教程(二) 基础
    centos 安装chrome
  • 原文地址:https://www.cnblogs.com/Gavinkwok/p/6793437.html
Copyright © 2011-2022 走看看