目录
Python——基础篇【一】
1、学习Python目的
2、Python简史介绍
3、Python3特性
4、Hello World程序
5、变量与赋值
6、用户交互
7、条件判断与缩进
8、循环控制
9、循环次数限制
10、简单的嵌套循环
11、常用数据类型
12、字符串格式化
13、列表常用操作
14、列表后续操作
15、文件基本操作
1、学习Python目的:
1、学完之后,可以做开发运维监控、自动化软件、聊天软件、BBS、博客和网站。
2、投资自己,结识更多的朋友,变更更优秀的人
Python——基础篇【一】
2、Python简史介绍
python创始人Guido,荷兰人,Python源自他所挚爱的电视剧Monty Python's Flying Circus。Python编译器使用C语言实现,能够调用C语言库文件。1991年初,Python发布了第一个公开发行版。
Python版本:
Python1.0 1994年
python2.0 2000年(加入了内存回收机制)
Python2.4 2004年(Pyhton诞生了目前最流行的WEB框架Django)
Python2.5 2006年
Python2.6 2008年(过渡版本,过渡到3.0版本)
Python2.7 2010年(过渡版本,2014年11月官方声明,Python 2.7 支持到2020年,2.7是最后一个版本,不会出现2.8版本,官方希望大家都尽快切换到3.4版本)
Python3.0 2008年 (不兼容2.0版本语法和功能)
Python3.2 2011年
python3.3 2012年
Python3.4 2014年
Python3.5 2015年
注释:
1、2008年python 2.6和Python3.0同时发布,2.0里面有重复的功能重复的模块,发布3.0目的是去繁从简,加入新的功能,把很多语法合并在一起等等,从而有了3.0版本.(2008年的时候,大家还用的是2.4版本,3.X版本不兼容2.X版本语法和功能)
Python应用:
Web Programming(web开发方向): Django,pyramid,Bottle,Tornado,Flask,web2py(列出的是主流web框架)
GUI Development(图形界面开发):wxPython,tklnter,PyGtk,PyGObject,PyQt(做图形界面越来越少,现在流行H5)
Scientific and Numeric(科学计算):Scipy,pandas(作金融分析),IPython
software Development(软件开发):Buildbot(程序集成、自动测试、自动部署),trac(处理bug),Roundup(处理Bug)
System Administration:Ansible,Salt,OpenStack(虚拟化)(运维三剑客)
Twisted 是Python下最优秀的异步网络框架,目前还不支持python3.0,是因还没改完(目前进度:https://twistedmatrix.com/trac/milestone/Python-3.x)
使用Python开发的实例:
Facebook、Youtube、Yelp(product)(国外的大众点评)、Quora(国外的知乎)、Instagram、豆瓣、知乎、雅虎、SOHO、腾讯(蓝鲸)、网易、金山
3、Python3新特性:
print()
Old: print "The answer is", 2*2
New: print("The answer is", 2*2)
Old: print x, # Trailing comma suppresses newline
New: print(x, end=" ") # Appends a space instead of a newline
Old: print # Prints a newline
New: print() # You must call the function!
Old: print >>sys.stderr, "fatal error"
New: print("fatal error", file=sys.stderr)
Old: print (x, y) # prints repr((x, y))
New: print((x, y)) # Not the same as print(x, y)!
ALL IS UNICODE NOW
从此不用为编码错误而烦恼
(A, *REST, B) = RANGE(5)
(a, *rest, b) = range(5)
Python2.x到Python3.0新旧模块name对照表
还有谁不敢支持Python3?
目前除了Twisted不支持Python3,其他主流模块都支持,(Twisted 是Python下最优秀的异步网络框架,目前还不支持python3.0,是因还没改完,目前修改进度:https://twistedmatrix.com/trac/milestone/Python-3.x
总结:哪些Python2的语法在3里变了?
1、1/2终于等于0.5了
2、print“hello world”变成了print(“hello world!”)
3、raw_input没了
4、class Foo:写法不能用了,只能class Foo(object)
安装
Windows:
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
注:在安装Python过程中,可以勾选添加环境变量会自动添加
更新Python :
卸载重装即可
Linux:
无需安装,原装Python环境 ps:如果自带2.6,请更新至2.7
更新Python
Linux的yum依赖自带Python,为防止错误,此处更新其实就是再安装一个Python!
查看默认Python版本
python -V 1、安装gcc,用于编译Python源码
yum install gcc
2、下载源码包,https://www.python.org/ftp/python/
3、解压并进入源码文件
4、编译安装
./configure
make all
make install
5、查看版本
/usr/local/bin/python2.7 -V
6、修改默认Python版本
mv /usr/bin/python /usr/bin/python2.6
ln -s /usr/local/bin/python2.7 /usr/bin/python
7、防止yum执行异常,修改yum使用的Python版本
vi /usr/bin/yum
将头部 #!/usr/bin/python 修改为 #!/usr/bin/python2.6
4、Hello World程序
python3 #进入交互器
print("Hello World!")
hello.py(python)、hello.sh(shell)、hello.java(java)、hello.c(C)、hello.php(PHP)、hello.rb(ruby)
vim hello.py #编辑python文件
#!/usr/bin/python3 #默认位置,python升级之后默认在/user/local/bin下,如果还写#!/usr/bin/python可能调用还是原来版本的python
#!/usr/bin/env python #最安全的写法
print("hello world!")(wq!)
python hello.py #执行python文件
chmod +X hello.py #给python加可执行权限
ll hello.py #查权限
./hello.py #执行python
5、变量与赋值
变量、注释、数据类型
变量传参,变量存在的意义是在程序中存储一些临时的数据,在程序运行中不断的用来调用
变量起名
1、显式(通俗易懂)
2、nums_of_alex_gf = 19
3、NumsOfAlexGf = 2
4、names-of-alex-gf = 22(不合法)
5、5name = 数字不能开头,可以写成na5me=
6、!name特殊字符不能有,!@#¥%……&
7、name of teacher = 不能有空格
8、某些关键字不能为变量名
6、用户交互
name=input("Please input your name:")
jack
print(jack)
eval()#python3.0查找内存里的变量
7、条件判断与缩进
sex = input("input your gender:")
if sex == "girl":
print("I would like to have a little monkey with jack")
elif sex =="man":
print("Going to homesexual!...")
else:
print("Pervert!")
8、循环控制
(猜数字)
while true: # 死循环
lucky_num = 19
input_num = -1
while lucky_num != input_num:
input_num = int(input('input the guess num:')) #int是把字符串格式转为数字格式
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
print("Bingo!")
break #结束整个循环
while True:
input_num = int(input("input the guess num:"))
if input_num == lucky_num:
print("bingo!")
break
elif input_num >lukcky_num:
print("the real numer is smaller.")
else:
print("the real num is bigger...")
9、循环次数限制
lucky_num = 19
input_num = -1
guess_count = 0
while guess_count < 3:
print("guess conut",guess_count)
input_num = int(input('input the guess num:'))
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
else:
print("Bingo!")
break
guess_count += 1 #guess_count=guess_count+1
else:
print("Too many retrys!")
for循环
for i in rang(3):
print i
lucky_num = 19
input_num = -1
for i in range(3):
input_num = int(input('input the guess num:'))
if input_num > lucky_num:
print("the real num is smaller.")
elif input_num < lucky_num:
print("the real num is bigger.")
else:
print("Bingo!")
break
else:print("Too many retrys!")
10、简单的嵌套循环
for j in range(5):
for i in range(10):
if i <5:
continue #跳出本次循环,继续下一次循环
if j>3:
break #跳出整个循环
print(i)
count = 0
while True:
print("count")
count +=1
if count >=5:
break
11、常用数据类型
数据类型:
a=2**31
a
type(a) #显示数据类型
uname -a #linux版本检查
12、字符串格式化
name = input("name:").strip()
age = input("age:").strip()
job = input("job:").strip() #print("Information of []:"+ name + "\nName:[]"+name+"\nAge;[]"+age+"\nJob:[]"+job)
msg='''
Information of %s:
Name:%s
Age:%s
Job:%s
'''%(name,name,age,job)
print(msg)
#print("Information of %s:\nName:%s\nAge:%s\nJob:%s" %(name,name,age,job)) #%s 字符串
#%d 数字
#%f 浮点
#''''''1、注释 2、表示段落
13、列表常用操作
.strip() #去掉两边空格,也可以指定去除某个字符
name_list = ["alex","65b","tenglan"] name_list[1]
name_list[2]
#1,2为索引
name_list.append(“eric”) #追加
.count #统计
.extend #扩展
.index #索引
.insert #插入
.pop #删除一个
.remove #删除指定的一个
.reverse #反转
.sort #排序 help(name) #查看方法
dir(name_list) #查看列表功能
14、列表的后续操作
a[0:2] #切片
a[0:5:3] #隔一个切一个
a[-2:-1] #取后两个
a.extend(b)
15、文件基本操作
file_obj = open("路径",“模式”)
obj.read() #读取所有内容
obj.readlines() #读取所有行分隔成字符串
#每次仅读取一行数据
for line in obj: print iine
obj.write("内容") #写内容
obj.close() #关闭文件
f = open("test.log","w") f.write("This is the first line\n")
f.write("This is the second line\n")
f.write("This is the 3 line\n")
f.write("This is the 4 line\n")
f= open("test.log","r") # print (f.readlines())
for line in f:
if"3" in line:
print("this is the third line")
else:
print (line)
追加
f=open("test.log","a")
f.write("6\n")
f.write("7\n")
f.close()
写读‘
f=open("test.log","w+")
f.write("new line\n")
print("data:",f.read())
f.close()