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!")
      •  
      • ----------------------------------------------------------------------------------------------

 

 

原文地址:https://www.cnblogs.com/Gavinkwok/p/6793437.html