Python基础

Python的入门()java

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

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

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

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

   特色:优雅、明确、简单编程

 

Python适合开发哪些应用?windows

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

编程特性:浏览器

          1:面向过程bash

          二、面向对象

          三、函数式编程

基本数据类型:

          整型(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

一、首先访问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  占位符

          \n    换行

          ;  段落结束符

          ,分割做用

命令:

         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增长分割符(制表符\t,包含前面的值)

1 gx = 'xixixi\t\hahah\t\haha\t\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