Python快速入门
Python简介
- Python是著名的“龟叔”Guido van Rossum(吉多·范罗苏姆)在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言;1991年初,Python发布了第一个公开发行版。Python是用C编写的高级的、面向对象的、开放源代码的编程语言。
- 龟叔给Python的定位是“优雅”、“明确”、“简单”,所以Python程序看上去总是简单易懂,初学者学Python,不但入门容易,而且将来深入下去,可以编写那些非常非常复杂的程序。
- 现在Python是由一个核心开发团队在维护,Guido van Rossum 仍然占据着至关重要的作用,指导其进展。
- Python的学习成本低,上手快,而且学习后的用处很多,也可以利用Python写出非常复杂的程序,以及复杂的算法等
- Python是一门解释性编程语言,在实际开发中,如果是开发小型工具等可以优先使用Python,开发效率会明显优于Java等编译性语言
- Python也可以开发web网站、http接口等
Python安装
-
现在Python常用的版本是2.x以及3.x。Linux中会自带Python大部分默认安装的是2.x的版本。
-
在官方网站下载需要的版本 https://www.python.org
-
在Linux系统中Python的默认安装目录是:/user/bin/python
-
下载安装完成以后需要进行环境变量配置就如同配置JDK一样
-
安装完毕以后再命令行下执行Python命令查看
-
我使用的是windows操作系统
-
可以直接在命令行里面输入代码进行操作
-
print("Hello,World") 结果是: Hello,World
-
想退出Python命令行可以输入指令exit()或者quit()
-
-
我们使用idea作为Python的IDE,需要自行下载Python插件就可以,直接在idea里面搜索下载就可以,在这里就不演示了。
Python常用操作
-
Python的一些基础语法
- 没有大括号,直接使用缩进来代表逻辑的层次
- 单行注释 以#开头
- 多行注释使用三个单引号或者双引号都可以 ‘’‘ 注释 ’‘’ “”“ 注释 ”“”
- 注意:如果注释里面要写中文的话需要指定coding=utf8 否在在别人的IDE中会出现注释乱码的现象
- Python是大小写敏感的
-
基本数据类型
- 与其他语言基本相似
- 整数、浮点数、字符串、布尔值
- 空值:none
- 转义符
- \n 换行符
- \t 制表符
- r 表示禁止字符转义,即转义字符会被当作为普通字符解析
- type(arg) 获取arg的数据类型
- isinstance(arg,type) 判断arg是否是type这个类型的 例如 isinstance(1.22,int)
- 注意:bool类型的数据底层存储的是0,1如果是布尔值判断是否为int类型的返回值为true
-
字符串常用操作
-
# coding=utf8 """ string字符串测试 """ str1 = " Hello World " # 所有字母转换为小写 print (str.lower(str1)) # 所有字母转换为大写 print (str.upper(str1)) str1 = " \tHello World " # 删除字符串开头结尾的空格 默认会删除空白符('\n','\t','\r') print (str1.strip()) # 只删除开头结尾的空格 print (str1.strip(" ")) str1 = " Hello World " # 分割字符串 查看分割结果的数据类型 split = str1.split(" ") print (split) print (type(split)) # 使用指定字符对数据进行拼接 arr = ["1","2","3","4","5"] joinstr = "_".join(arr) print (joinstr) # 使用+可以直接拼接两个字符串 str2 = str1 + "hhhhh" print (str2) # str3 = str2 + 1 是错误的 不支持字符串直接+上int类型值拼接 str3 = "hello %d"%(3) print (str3) E:\python2.7\python.exe E:/ideapython/PythonDemo/StrTest.py hello world HELLO WORLD Hello World Hello World ['', 'Hello', 'World', ''] <type 'list'> 1_2_3_4_5 Hello World hhhhh hello 3 Process finished with exit code 0
-
-
List常用操作
-
list是一种有序集合,可以添加和删除其中的元素
-
# coding=utf8 """ List测试 """ # 创建一个list list1 = [1, 2, 3, 2, 4, 5, 6] # 向末尾插入一个数据 list1.append(10) print (list1) # 向指定索引位置添加数据 list1.insert(0, 10) print (list1) # 删除元素 不加索引位置参数默认删除list列表最后一个 list1.pop() print (list1) list1.pop(0) print (list1) # 删除第一次出现的 2 只会删除一个 list1.remove(2) print (list1) # 替换某个位置的元素 list1[0] = 100 print (list1) # 计算某个元素出现的次数 count = list1.count(3) print (count) # 将list列表中的数据倒置 print (list1) list1.reverse() print (list1) # tuple和list类似 但是tuple初始化以后将不能够在进行修改 tuple1 = tuple(list1) print (tuple1) # 计算tuple内某个元素出现的次数 tcount = tuple1.count(100) print (tcount) E:\python2.7\python.exe E:/ideapython/PythonDemo/ListTest.py [1, 2, 3, 2, 4, 5, 6, 10] [10, 1, 2, 3, 2, 4, 5, 6, 10] [10, 1, 2, 3, 2, 4, 5, 6] [1, 2, 3, 2, 4, 5, 6] [1, 3, 2, 4, 5, 6] [100, 3, 2, 4, 5, 6] 1 [100, 3, 2, 4, 5, 6] [6, 5, 4, 2, 3, 100] (6, 5, 4, 2, 3, 100) 1 Process finished with exit code 0
-
-
Dict常用操作
-
# coding=utf8 """ Dict测试 """ # 创建一个Dict并赋值 Dict相当于是Java中的map dict1 = {'Michael': 95, 'Bob': 75, 'Tracy': 100} print (dict1) # 修改指定key的value dict1['Bob'] = 60 print (dict1) # 取出指定key的value 使用此方法如果可以不存在程序就会报错 data = dict1['Bob'] print (data) # 使用 dice.get()如果key不存在将会返回none值 data2 = dict1.get('bob') print (data2) # 删除指定key的键值对 如果指定key不存在就会报错 dict1.pop('Bob') print (dict1) # 删除第一个键值对并返回删除的元素 data3 = dict1.popitem() print (data3) print (dict1) # 清理所有元素 dict1.clear() print (dict1) d = {'Michael': 95, 'Bob': 75, 'Tracy': 'hello'} print (d) # 判断对列中是否存在指定的key res = d.has_key('bob') print (res) # 返回一个list,list中的元素是tuple类型的 res2 = d.items() print (res2) # 返回一个包含所有key的list res3 = d.keys() print (res3) # 返回一个包含所有value的list res4 = d.values() print (res4) E:\python2.7\python.exe E:/ideapython/PythonDemo/DictTest.py {'Bob': 75, 'Michael': 95, 'Tracy': 100} {'Bob': 60, 'Michael': 95, 'Tracy': 100} 60 None {'Michael': 95, 'Tracy': 100} ('Michael', 95) {'Tracy': 100} {} {'Bob': 75, 'Michael': 95, 'Tracy': 'hello'} False [('Bob', 75), ('Michael', 95), ('Tracy', 'hello')] ['Bob', 'Michael', 'Tracy'] [75, 95, 'hello'] Process finished with exit code 0
-
-
Set常用操作
-
# coding=utf8 """ Set测试 """ # 新建一个set set会自动删除重复的元素 set1 = set([1, 2, 3, 4, 1]) print (set1) # 向set中添加元素 set1.add(5) print (set1) # set不能直接删除元素 需要将set转换为list修改以后再转为set l = list(set1) l[1] = 100 set2 = set(l) print (set2) # 删除元素 set1.remove(5) print (set1) # 清空元素 set1.clear() print (set1) E:\python2.7\python.exe E:/ideapython/PythonDemo/SetTest.py set([1, 2, 3, 4]) set([1, 2, 3, 4, 5]) set([1, 3, 100, 5, 4]) set([1, 2, 3, 4]) set([]) Process finished with exit code 0
-
-
循环语句
-
# coding=utf8 """ 循环的测试 """ # for循环 l = ['ok', 'yes', 'no'] for i in l: print(i) d = {'Michael': 95, 'Bob': 75, 'Tracy': 'hello'} for k,v in d.items(): print (k,v) # while 循环 sum = 0 n = 10 while n>0 : sum+=n n-=1 print (sum) E:\python2.7\python.exe E:/ideapython/PythonDemo/XunHuanTest.py ok yes no ('Bob', 75) ('Michael', 95) ('Tracy', 'hello') 55 Process finished with exit code 0
-
-
判断语句
-
# coding=utf8 """ 判断测试 """ age = 20 if age > 18 : print ("已经成年了") if age >= 18 : print ("已经成年了") else: print ("还未成年") if age < 18 : print ("还未成年") elif age < 40 : print ("还年轻") else: print ("老了") E:\python2.7\python.exe E:/ideapython/PythonDemo/IfElseTest.py 已经成年了 已经成年了 还年轻 Process finished with exit code 0
-
-
函数
-
# coding=utf8 """ 函数的使用 """ ''' 1:使用def定义函数 2:指定函数名称 3:指定函数参数(如果有的情况下) 4:指定函数体的执行逻辑 5:return返回值(如果需要返回的情况) ''' # 一般函数 def fun(x): x += 1 return x res = fun(1) print (res) # 空函数 def fun2 (): pass # 多返回值函数 def funs(y): return y, y+1 # 含有默认参数值的参数,如果不传入参数的话就会按默认值 # 后面不可以跟不带默认参数值的参数 def defalut(x=1): return x # 在参数前面加*表示该参数为可变参数,他需要放在最后一个 def fun5(y,*x): return x,y res2 = fun5(1,2,3,4,5) print (res2) E:\python2.7\python.exe E:/ideapython/PythonDemo/DefTest.py 2 ((2, 3, 4, 5), 1) Process finished with exit code 0
-
-
异常处理
-
# coding=utf8 """ 异常处理 """ def fun(): try: print ("打开链接") print ("业务代码1") print ("业务代码2") print ("提交任务") except Exception as e: print ("exception %s"%e) finally: print ("关闭链接") # Python脚本执行的入口 相当于Java中的main函数 if __name__ == "__main__": fun() E:\python2.7\python.exe E:/ideapython/PythonDemo/ExceptionTest.py 打开链接 业务代码1 业务代码2 提交任务 关闭链接 Process finished with exit code 0
-
-
切片【List、tuple】
-
# coding=utf8 """ 切片功能 """ def func(): li = [1, 2, 3, 4, 5, 6] # 指定索引左闭右开 print(li[2:5]) # 不指定索引 切开所有数据 print(li[::]) if __name__ == "__main__": func() E:\python2.7\python.exe E:/ideapython/PythonDemo/QiePian.py [3, 4, 5] [1, 2, 3, 4, 5, 6] Process finished with exit code 0
-
-
迭代【List、tuple、dict、set】
- 即for循环迭代取值代码参考循环中的for循环
-
面向对象
-
创建类
-
# coding=utf8 ''' 创建一个Person的实体类 ''' class Person: # 定义一个name属性 name = '' def __init__(self,_name): """ 构造函数 :param _name: """ self.name = _name def hello(self): print ("hello %s"%self.name) if __name__ == "__main__": # 实例化 不需要new p = Person("zs") p.hello() E:\python2.7\python.exe E:/ideapython/PythonDemo/Person.py hello zs Process finished with exit code 0
-
-
Python模块
- Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。模块让你能够有逻辑地组织你的 Python 代码段,把相关的代码分配到一个模块里能让你的代码更好用,更易懂,模块能定义函数,类和变量,模块里也能包含可执行的代码。
- Python本身就内置了很多很好用的模块,只要正常安装,这些模块就可以正常使用
- 在Python中有很多第三方的模块,通过管理工具pip使用
- 一般来说,第三方库都会在Python官方的pypi.python.org网站注册,要安装一个第三方库需要知道库的名称,就可以在官网搜索。类似于Java中的maven
- 本地模块的引用
- 引用其他包里的类
- 首先被引用的包里必须有__init__.py文件
- 然后使用指令 import 包地址 as 别名
- 也可以使用 from 包地址 import 需要使用的方法
- 注意:当一个文件被引用的时候会进行一次编译,生成一个.pyc的文件,主要是为了加快程序的运行速度
-
编译以及反编译
- Python程序,是把原始程序代码放在.py文件里,而Python会在执行.py文件的时候将.py形式的程序编译成中间式文件(byte-compiled)的.pyc文件,这么做的目的就是为了加快下次执行文件的速度。
- 所以,在我们运行python文件的时候,就会自动首先查看是否具有.pyc文件,如果有的话,而且.py文件的修改时间和.pyc的修改时间一样,就会读取.pyc文件,否则,Python就会读原来的.py文件。
- 其实并不是所有的.py文件在与运行的时候都会产生.pyc文件,只有在import xxx.py文件的时候,才会生成相应的xxx.pyc文件