Python简介
请自行百度
Python版本
CPython、JPython...具体介绍请百度
Python应用
Web Programming:Django,Pyramid,Bottle,Tornado,Flask,Web2py
GUI Development:wxPython,tkinter,PyGtk,PyGObject,PyQt
Scientific and Numeric:SciPy,Pandas,IPython
Software Development:Buildbot,Trac,Roundup
System Administration:Ansible,Salt,OpenStack
Windows使用环境
使用Python2.7和Python3.5版本,课程以Python3为主。
下载Python2.7和3.0安装并配置环境变量
IDE使用pycharm
Python解释器执行的步骤
加载内存、语法分析、编译变成字节码,执行字节码,内存读取字节码,内存将字节码转换成机器码。
Python2.x和3.x常用语法不同之处
Python3默认编码为unicode,不再出现Python2中因编码问题出现的bug。
Old:raw_input input
New:input() eval(input())
Old:print
New:print() print("",end="")
input()==eval(input)#左边是python2写法,右边是python3写法
raw_input()==input()#左边是python2写法,右边是python3写法
数据类型分为两部分:
1、 单值
数字
整型
长整型
浮点型
复数
布尔值 True(1),False(0)
字符串
2、 集合
列表
元祖
字典
Set哈希表
变量命名规则
1、变量名只能是字母、数字或下划线的任意组合;变量名第一个字符不能是数字;变量名命名不能使用关键字。
如: ['and','int','str']...
变量与赋值
赋值传参:将右边的参数赋值给左边的名称,名称为后期程序调用。
字符串需要加引号引起来,数字则不加引号
变量
#!/uer/bin/env python3 >>> name = "张三"#字符串需要用引号引起来 >>> age = 22 #数字不需要加引号 >>> print(name,age) 张三 22 >>> name = zhangsan #不加引号报错 Traceback (most recent call last): File "", line 1, in name = zhangsan NameError: name 'zhangsan' is not defined
id() id用于查看变量内存地址是否一致
>>> a = 3 >>> b = a #内存中b指向3 >>> a = 5 >>> print(a,b) (5, 3) >>> a = 3 >>> b = a >>> id(a);id(b)#内存地址一样 32046816 >>> a = 5 >>> id(a);id(b)#内存地址不一样 32046816
字符串 #不可修改的
字符格式化
#!/usr/bin/env python3 name = input("name:") age = input("age:") print("name %s:\nage %s:" % (name,age))
字符串格式符号含义#摘自bbs.fishc.com
符号 | 说明 |
%c | 格式化字符及其ASCII码 |
%s | 格式字符串 |
%d | 格式化整数 |
%o | 格式化无符号八进制数 |
%x | 格式化无符号十六进制数 |
%X | 格式化无符号十六进制数(大写) |
%f | 格式化定点数,可指定小数点后的精度 |
%e | 用科学计数法格式化定点数 |
%E | 作用同%e,用科学计数法格式化定点数 |
%g | 根据值的大小决定使用%f或者%e |
%G | 作用同%g,根据值的大小决定使用%f或者%E |
字符串转义字符含义#摘自bbs.fishc.com
符号 | 说明 |
\’ | 单引号 |
\” | 双引号 |
\a | 发出系统响铃声 |
\b | 退格符 |
\n | 换行符 |
\t | 横向制表符(TAB) |
\v | 纵向制表符 |
\r | 回车符 |
\f | 换行符 |
\o | 八进制数代表的字符 |
\x | 十六进制数代表的字符 |
\0 | 表示一个空字符 |
\\ | 反斜杠 |
字符串常用功能:
移除空白:strip(); lstrip(); rstrip()
分割:split() split(‘\t’) 按tab键分割
长度:len()
索引:0开始,-1从尾开始
切片:[0]
列表[] #数据可修改
列表写法:
name_list = ["alex","seven","eric"]
或
name_list = list(["alex","seven","eric"])
基本操作:
索引从0开始负数为-1开始
切片[0]
包含:in
长度:len()
删除: del(); del name_list [0]
循环:for
连接:join ; ‘_’.join(nam_list)
append追加 >>> name_list = ["alex","65brother","tenglan"] >>> name_list.append("eric") >>> name_list ['alex', '65brother', 'tenglan', 'eric'] count 统计 >>> name_list ['alex', '65brother', 'tenglan', 'eric', '65brother'] >>> name_list.count("65brother")#统计 extend 扩展 >>> name_list = ['alex', 'eric', 'jkjl', 'tenglan'] >>> name_list.extend(name_list)#一个列表扩展另一个列表 >>> name_list ['alex', 'eric', 'jkjl', 'tenglan', 'alex', 'eric', 'jkjl', 'tenglan'] >>> name_list.extend(["a","b","c"])#一个列表扩展另一个列表 >>> name_list ['alex', 'eric', 'jkjl', 'tenglan', 'a', 'b', 'c'] index 索引 >>> name_list ['alex', '65brother', 'tenglan', 'eric', '65brother'] >>> name_list.index("65brother")#索引 insert 插入 >>> name_list ['alex', '65brother', 'tenglan', 'eric', '65brother'] >>> name_list.insert(2,"66brother")#插入指定位置 >>> name_list ['alex', '65brother', '66brother', 'tenglan', 'eric', '65brother'] pop 删除或接收 >>> name_list ['alex', '65brother', '66brother', 'tenglan', 'eric', '65brother'] >>> name_list.pop()#删除最后一个 '65brother' >>> name_list.pop(1)#通过下标删除指定值 'alex' >>> name = name_list.pop(-1)#通过下标删除指定值并作赋值 >>> name 'eric' remove 删除指定一个 >>> name_list ['alex', '65brother', '66brother', 'tenglan', 'eric'] name_list.remove("66brother")#删除指定值 >>> name_list ['alex', '65brother', 'tenglan', 'eric'] reverse 反转 >>> name_list ['alex', '65brother', 'tenglan', 'eric'] >>> name_list.reverse()#反转 >>> name_list ['eric', 'tenglan', '65brother', 'alex'] sort 排序 #python3中是按同类型进行排序 >>> name_list ['eric', 'tenglan', '65brother', 'alex'] >>> name_list.sort()#排序 ['65brother', 'alex', 'eric', 'tenglan'] #可通过key来指定排序 >>> name_list ['65brother', 'alex', 55, 'eric', 'tenglan', 33, 55] >>> name_list.sort(key=str)#通过key进行排序,详细请用help(list.sort) >>> name_list [33, 55, 55, '65brother', 'alex', 'eric', 'tenglan'] #可以实现反转 >>> name_list.sort(reverse=True,key=str)#reverse默认值是False >>> name_list ['tenglan', 'eric', 'alex', '65brother', 55, 55, 33]
元组 #是只读的
count
>>> name = ("alex","eric",99)>>> name.count(99)#统计1
index
>>> name = ("alex","eric",99)>>> name.index(99)#索引2
条件
条件判断if...else
缩进为4个空格,或者是一个TAB
if...else
>>> a = 10 >>> b = 20 >>> if a < b: print("YES") else: print("NO") YES
三元运算
>>> a = 10 >>> b = 20 >>> num = a if 1<2 else b#条件为真,值为a >>> num >>>num = a if 1>2 else b#条件为假,值为b >>> num # 将以下代码转换成三元运算 x, y, z = 6, 5, 4 if x < y: small = x if z < small: small = z elif y < z: small = y else: small = z print(small) #转换后 small = x if ((x < y) and (z < x)) else(y if y < z else z) print(small)
For循环:
>>> name_list = ['a','b','c'] >>> for ele in name_list: if ele == 'a': print('a') continue if ele == 'b': print('b') break a b
While 循环:
While 条件:#条件为真执行
While True:#切记,容易进入死循环哦!
简单文件操作
打开文件:
f= open("文件路径",“模式”)
打开模式有:
r,只读方式打开
w,打开一个文件只用于写入。如果文件存在则将覆盖原文件,如果该文件不存在,创建文件。
a ,打开一个文件用于追加。如果该文件已存在,指针指向文件结尾,新内容写到文件后。如果文件不存在,创建文件。
w+ , 打开一个文件用于写读,如果文件存在将覆盖文件里的内容。如果文件不存在,创建文件并写人内容。
r+ , 打开一个文件用于读写,可修改文件内容。
文件读取:
f.read() #读取所有内容到内存
f.readlines()#读取所有内容到内存,并按换行符分割成列表。
写文件:
f.write("内容")
f.writeline()
关闭文件:
f.close()