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

    Python的入门()

    Python是一种解释型、面向对象、动态数据类型的高级程序设计语言

              :面向对象、直译成的计算机程序语言

              :遵循GPL协议(GNU General Public License)

    创始人:吉多.范罗苏姆  源于1989年圣诞期间

       特点:优雅、明确、简单

    Python适合开发哪些应用?

    Python语言应用于系统编程、数据库、网络编程、GUI、数字及科学计算、Web编程、快速产品成型等

    编程特性:

              1:面向过程

              2、面向对象

              3、函数式编程

    基本数据类型:

              整型(int)、

             长整型(long)   Python3没有

             浮点数(float)   一个浮点数占8个字节,浮点数是小数(带小数点)

             负数(complex)

    布尔值(bool) 判断真或假

             1为真  1=true  0为假 0=false (只有0是false,其他全是true)

    各种Python解释器

          CPython

          CPython 是默认的python实现,环境或者是解释器(你喜欢哪个就那么叫)。脚本大多数情况下都运行在这个解释器中。 CPython是官方的python解释器,完全按照python的规格和语言定义来实现,所以被当作其他版本实现的参考版本。CPython是用C语言写的,当执行代码的时候Pythond代码会被转化成字节码(bytecode)。所以CPython是个字节码解释器。当我们从Python官网下载安装包安装,或者是通过类似 "apt-get" 或者 "yum"工具安装的时候,安装的都是CPython版本。

          PyPy

          PyPy  是一个很多地方都和CPython很像的实现,但是这个解释器本身就是由Python写成。也就是说开发者们用Python写了一个Python解释器。然而这个解释器的代码先转化成C,然后在编译。PyPy被认为要比CPython性能更好。因为CPython会把代码转化成字节码,PyPy会把代码转化成机器码。

         Psyco

        Psyco 是一个类似PyPy,但是很好的解释器。现在已经被PyPy取代了,有可能的话,使用PyPy来代替Psyco。

        Jython

    Jython是用java实现的一个解释器。Jython允许程序员写 Python代码,还可以把java的模块加载在python的模块中使用。Jython使用了JIT技术,也就是说运行时Python代码会先转化成 Java 字节码(不是java源代码),然后使用JRE执行。程序员还可以用Jython把Python代码打成jar包,这些jar和java程序打包成的 jar一样可以直接使用。这样就允许Python程序员写Java程序了。但是呢,必须要知道哪些Java模块可以在Jython中使用,然后使用 Python的语法就可以写程序了。Jython兼容python2,也可以使用命令行来写交互式程序。  

         ronPython

    IronPython 是使用C#语言实现,可以使用在.NET 和 Mono 平台的解释器。IronPython 是兼容 Silverlight 的,配合Gestalt 就可以直接在浏览器中执行。IronPython也是兼容Python2的。

    tip: Mono 是提供.NET-compatible 工具的开源框架。

    安装Python 3.5

    目前,Python有两个版本,一个是2.x版,一个是3.x版,这两个版本是不兼容的。由于3.x版越来越普及,我们的教程将以最新的Python 3.5版本为基础。

    在Windows上安装Python

    1、首先访问http://www.python.org/download/去下载最新的python版本。

    首先,根据你的Windows版本(64位还是32位)从Python的官方网站下载Python 3.5对应的64位安装程序32位安装程序然后,运行下载的EXE安装包:

    install-py35

    特别要注意勾上Add Python 3.5 to PATH,然后点“Install Now”即可完成安装。

    运行Python

    安装成功后,打开命令提示符窗口,敲入python后,会出现两种情况:

    情况一:

    run-py3-win

    看到上面的画面,就说明Python安装成功!

    你看到提示符>>>就表示我们已经在Python交互式环境中了,可以输入任何Python代码,回车后会立刻得到执行结果。现在,输入exit()并回车,就可以退出Python交互式环境(直接关掉命令行窗口也可以)。

    情况二:得到一个错误:

    ‘python’ 不是内部或外部命令,也不是可运行的程序或批处理文件。
    

    python-not-found

    这是因为Windows会根据一个Path的环境变量设定的路径去查找python.exe,如果没找到,就会报错。如果在安装时漏掉了勾选Add Python 3.5 to PATH,那就要手动把python.exe所在的路径添加到Path中。

    如果你不知道怎么修改环境变量,建议把Python安装程序重新运行一遍,务必记得勾上Add Python 3.5 to PATH

    文本编译器  

     PyCharm 

            PyCharm 是 JetBrains 开发的 Python IDE。PyCharm 用于一般 IDE 具备的功能,比如, 调试、语法高亮、Project 管理、代码跳转、智能提示、自动完成、单元测试、版本控制……另外,PyCharm 还提供了一些很好的功能用于 Django 开发,同时支持 Google App Engine,更酷的是,PyCharm 支持 IronPython! 

            初次使用pycharm时,需要对pycharm对一些基本的操作,这样防止以后出现问题:

            pycharm操作模板增加注释file ---default settings---temp(搜索框写) --- python Script

            设置解释器 file ---default settings---encoding(搜索框写)---Default encoding...files 选择UTF-8

            调字体大小 seting -mouse(搜索框写) -General--第二个打勾-保存--ctrl + 滚轮

    快捷键的操作: 

               注释多行:先标记多行 Ctrl+?

               查看源码:Ctrl+鼠标左键点击命令

               列模式:Alt+鼠标左键

    结束符号:

               break 结束,跳出所有循环

               continue 结束当前循环,执行下一次循环

               pass  python站位(什么都不执行,没有就会语法错误)

               return  终止(针对函数)

    特殊字符:

              字典 a = {"a",1}定义键和值之间一对一的关系,已无序方式储存

              :一段话的结束符   

    字符串格式化:

              %    格式符号

              %d  代表整数

              %f   浮点数

              %s  占位符

                 换行

              ;  段落结束符

              ,分割作用

    命令:

             id(name)      查看name内存地址 name是变量

             type(name)查看name类型 获取类

             len(name)     判断列表或元组的长度(如果是一个字符串,每一个字符是一个长度)

             bool(name) 非0和非空都是true,name=ab,bool(name)bool值是true  (布尔值)

             list(name)   转换为列表 list和tuple的相互转化

             tuple(name)    转换为元组 tuple和list的相互转化

             dir(naem)      查看元组或列表权限

             import      导入模块

             int      把用户输入的字符串转换成数字格式

             pyc      字节码

    文件类型

            

    Linux安装

    看python默认版本, 如果是2版本就更改为3版本
     1 #!/bin/bash
     2 
     3 #install python3.6
     4 
     5 yum -y install readline-devel  #修复bug 
     6 
     7 wget https://www.python.org/ftp/python/3.6.1/Python-3.6.1rc1.tgz
     8 
     9 mkdir /usr/local/python3
    10 
    11 tar -xvf Python-3.6.1rc1.tgz
    12 
    13 cd Python-3.6.1rc1
    14 
    15 ./configure --prefix=/usr/local/python3
    16 
    17 make
    18 
    19 make install
    20 
    21 ln -s /usr/local/python3/bin/python3 /usr/bin/
    22 
    23 echo "python.2 write command----python"
    24 
    25 python -V                    #显示默认安装版本
    26 
    27 echo "python.2 write command----python3"
    28 
    29 python3 -V                   #显示安装版本
    Linux安装python

    交互                

    1 >>>print (name)                     #输出
    2 >>>name = input("nanna:")              #输入,显示交互
    3 >>>import getpass               #调用模块
    4 >>>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']

    数据类型

     

    数字

     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位) 浮点数:带有小数的整数)

     

    布尔   (判断真或假 )

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

    字符串

    索引        name[2]

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

    元组

    元组的权限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})
    元组嵌套字典

    列表

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

    字典

     1 dic = {'name':'alex','age':["aa","bb"],}
     2 #
     3 print (dic.get('name'))            #如果找不到name的vulue,返回None
     4 print (dic.get('name',"null"))    #如果找不到name的vulue,指定返回null
     5 #
     6 dic['gender']='female'
     7 #
     8 dic['name']='guolm' #改key
     9 dic['age'][0]='guolm' #改key中第一个value
    10 #
    11 del dic['name']
    字典
     1 name = input('Name:')
     2 age = input('Age')
     3 job = input('Job')
     4 hobbie = input('Hobbie')
     5 info = '''
     6 ---------info of %s---------   #%s是占位符
     7 Name:%s      
     8 Age:%s
     9 Job:%s
    10 Hobbie:%s
    11 ---------end----------------
    12 '''%(name,name,age,job,hobbie)      #传参
    13 print(info)
    格式化输出

    %s就是代表字符串占位符,除此之外,还有%d,是数字占位符, 如果把上面的age后面的换成%d,就代表你必须只能输入数字啦(input接收的所有输入默认都是字符串格式!)

    基本运算符

    算数运算

    比较运算

    赋值运算

    逻辑运算

    字符编码

    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:
                      ...   执行语句

    交换判断

    1 #一次交换判断
    2 # #!/usr/bin/python
    3 sex = input("input your gender: ")
    4 if sex == "girl":
    5     print ("i like you ")
    6 elif sex == "man":
    7     print ("Going to homesexual!...")
    8 else:
    9     print("I'm will very angry!")
    交换判断
    1 gongxu=22
    2 guess=int(input("请输入:"))
    3 if guess > 30:
    4     print("很接近了")
    5 elif guess < 20:
    6     print("或许可以再猜一次,也很接近了")
    7 else:
    8     print("bingo,答对了")
    猜年龄游戏

    for循环

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

    while循环

    死循环 

    1 判断输入为数字 则跳槽,否则进行下一次循环
    2 while True: #当条件为真 则:
    3 salary = input("Your salary:") #交互
    4 if salary.isdigit(): #判断为整数,则执行如下操作
    5 salary = int(salary) #格式化数字
    6 break #跳出所有循环
    7 所有循环 else:
    8 continue #跳出当此循环,进行下一次循环
    While True
    1 count = 0
    2 while count<=20:
    3     print('haha',count)  #只要count<=20就不断执行下面的代码
    4     if count ==2:
    5         break
    6     count+=1         #每执行一次,就把count+1,要不然就变成死循环啦,因为count一直是0
    7 print("hahhahahaahah")
    break用于完全结束一个循环,跳出循环体执行循环后面的语句

    continue和break有点类似,区别在于continue只是终止本次循环,接着还执行后面的循环,break则完全终止循环

    与其它语言else 一般只与if 搭配不同,在Python 中还有个while ...else 语句

    while 后面的else 作用是指,当while 循环正常执行完,中间没有被break 中止的话,就会执行else后面的语句

    1 count = 0
    2 while count <= 5 :
    3     count += 1
    4     print("Loop",count)
    5 
    6 else:
    7     print("循环正常执行完啦")
    8 print("-----out of while loop ------")
    while...else...

    第一个程序

    Strip移除空白

    1 gx='   abc    '
    2 print(gx.strip())    #去掉左右空格
    3 print(gx.rstrip())   #去掉右空格
    4 print(gx.lstrip())   #去掉左空格
    sptrip 移除空白

    Split分割

    1 user="gongxu|123|5"
    2 i=user.split("|")     #以|分隔,后边跟上1就是从左边第一个开始分隔
    3 i=user.split("|",1)   #分隔第一个,从右2边开始
    4 print(i)
    split分隔

    len长度

    1 #获取number的长度
    2 number = ("abc",123)
    3 print(len(number))
    4 number1 = ("123456")
    5 print(len(number1))
    len长度

    切片[]

    1 gx="hello"
    2 print(gx[1])  #取第一个值,从0开始
    3 print(gx[2:3]) #取第二个至第三个的值,从0开始
    4 print(gx[1:]) #取第一个至最后的值
    切片[]

    capitlize返回一个首字母大写的字符串。

    1 gx = "Hello,world"
    2 print(gx.capitalize())

    center分隔行

    1 gx = "abc"
    2 print(gx.center(10))   #10是总长度,左右10空格
    3 print(gx.center(10,'*'))# *是内容
    4 print(gx.rjust(10,'*')) #左边填充
    5 print(gx.ljust(10,'*')) #右边填充

    count统计出现的次数

    gx = 'aahjdfhhaa chdldlfn fknfonfof'
    result=gx.count('a')  #统计a出现的次数 范围:0-9个字符(有头无尾,注:不加0-10是统计所有字符)result:结果
    print(result)

    encode utf-8转gbk

    gx = "龚旭"
    result = gx.encode('gbk')
    print(result)

    expandtabs增加分割符(制表符 ,包含前面的值)

    1 gx = 'xixixi	hahah	haha	zizizi'
    2 result = gx.expandtabs()
    3 print(result)
     
    4 输出结果:xixixi  hahah  haha   zizizi

    partition字符分割

    1 gx = 'huhahehe'
    2 result=gx.partition('ha')   #指定ha为分隔,分割成三段
    3 print(result)
    4 输出结果:('hu', 'ha', 'hehe')

    format拼接

    gx =  'hello'
    print(gx.find('l')) #查找到元素,返回元素位置,如若查找不到元素,返回-1
    print(gx.index('l'))#查找到元素,返回元素位置,如若查找不到元素,报错
    
    name = '龚旭 {name} is {age}'
    result = name.format(name='girl',age='19')
    print(result)

    isalnum判断是否由数字和字母或纯数字或纯字母组

    gx = '12gg''xixi''111'
    print(gx.isalnum())

    isalpha判断值是否由字母组成

    gx = 'gg'
    print(gx.isalpha())

    isdecimal判断值是否为十进制

    gx = '55555'
    print(gx.isdecimal())

    isdigit 判断输入为整型(整数)数字

    number="11"
    result=number.isdigit()
    print(result)

    maketrans对应关系替换

    gx = "what's your name"
    table = str.maketrans("name","1234")  #name长度必须和1234相同
    print(gx.translate(table))
    zfill填充
    gx = "123"
    print(gx.zfill(10))  #不够的位数用0填充
    join拼接
    li = ["wo","shi"]
    result = "_".join(li)
    print(result)
    relpace转换
    gx = "ggxxis"
    # result = gx.replace("g","x",1)   #g转换成x范围:前1个,不加数字表示转换全部
    # print(result)
    swapcase小写转大写
    name = 'gongxu'
    result =name.swapcase()
    print(result)

    if循环

    name = input("yougr name:") #交互
    sex = input("youe sex:")
    if sex == "girl":            #判断语句1
        print("登录成功")
    elif sex == "woman":         #判断语句2
        print("恭喜你,成功")
    else:                         #执行语句
        print('输入错误')

    多层for循环

    for i in range(1,10):
        for j in range(i,i+1):
            print(i,j)

    while循环三次错误退出

    gongxu = 22
    count = 0             #计数器
    while count <3:
        i = int(input("年龄:"))
        if i == gongxu:
            print("输入成功")
            break               #跳出所有循环
        elif i > gongxu:
            print("输入失败")
            count+=1               #计算器失败一次加一次,总共三次机会
        else:
            print("输入错误")

    多行定义

    name = str(input('Name:'))
    age = int(input('Age'))
    job = str(input('Job'))
    hobbie = int(input('Hobbie'))
    info = '''
    ---------info of %s---------
        Name:%s
        Age:%s
        Job:%s
        Hobbie:%s
    ---------end----------------
    '''%(name,name,age,job,hobbie)      #传参
    print(info)

    列表循环

    names = ["gx","zb","lt","hy"]
    for i in names:
        print(i)
    
    names = ["gx","zb","lt","hy"]
    for i,j in enumerate(names):  #enumerate列举
        print(i,j)
    输出结果:0 gx
            1 zb
            2 lt
            3 hy                    


     

     

     

         

  • 相关阅读:
    Unity3D 利用C#实现简单的代理模式Delegate(委托)
    代码删除文件夹,小心资源管理器报错,甚至崩溃【原】
    如何解决“应用程序并行配置不正确”问题?【原】
    STL,ATL,WTL的联系与区别
    C++虚函数表解析(转)
    学各国语言的网站大全
    The 500 Most Commonly Used Words in the English Language
    Top 100 English Verbs
    Top 100 words for advanced learners.
    TOP 100 MISSPELT/MISSPELLED WORDS IN ENGLISH
  • 原文地址:https://www.cnblogs.com/gongxu/p/6800678.html
Copyright © 2011-2022 走看看