第一周学习笔记:
一、Python介绍
1、Python的创始人为吉多·范罗苏姆。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。 最新的TIOBE排行榜,Python赶超PHP占据第五, Python崇尚优美、清晰、简单,是一个优秀并广泛使用的语言。
2、Python主要应用领域:云计算、WEB开发、科学运算、人工智能、系统运维、金融、图形GUI。
3、Python是一门动态解释性的强类型定义语言。
4、Python的优点:Python的定位是“优雅”、“明确”、“简单”;开发效率非常高;高级语言;可移植性;可扩展性;可嵌入性。
5、Python的缺点:运行速度慢、代码不能加密、线程不能利用多CPU。
6、Python的解释器很多,但使用最广泛的还是CPython。如果要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是通过网络调用来交互,确保各程序之间的独立性。
二、发展史
1989年,为了打发圣诞节假期,Guido开始写Python语言的编译器。Python这个名字,来自Guido所挚爱的电视剧Monty Python’s Flying Circus。他希望这个新的叫做Python的语言,能符合他的理想:创造一种C和shell之间,功能全面,易学易用,可拓展的语言。
1991年,第一个Python编译器诞生。它是用C语言实现的,并能够调用C语言的库文件。从一出生,Python已经具有了:类,函数,异常处理,包含表和词典在内的核心数据类型,以及模块为基础的拓展系统。
Granddaddy of Python web frameworks, Zope 1 was released in 1999
Python 1.0 - January 1994 增加了 lambda, map, filter and reduce.
Python 2.0 - October 16, 2000,加入了内存回收机制,构成了现在Python语言框架的基础
Python 2.4 - November 30, 2004, 同年目前最流行的WEB框架Django 诞生
Python 2.5 - September 19, 2006
Python 2.6 - October 1, 2008
Python 2.7 - July 3, 2010
In November 2014, it was announced that Python 2.7 would be supported until 2020, and reaffirmed that there would be no 2.8 release as users were expected to move to Python 3.4+ as soon as possible
Python 3.0 - December 3, 2008
Python 3.1 - June 27, 2009
Python 3.2 - February 20, 2011
Python 3.3 - September 29, 2012
Python 3.4 - March 16, 2014
Python 3.5 - September 13, 2015
三、Python 2 和 3 的主要区别
一些命令的语法格式、类库有变化;版本2默认编码ascii,识别中文需要指定字符库;版本3默认是unicode编码,无需指定字符库。
四、Python安装
- Windows环境
1、下载安装包
https://www.python.org/downloads/
2、安装
默认安装路径:C:\python27
3、配置环境变量
【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】
如:原来的值;C:\python27,切记前面有分号
- Linux、Mac环境预装了Python环境
- Linux环境下升级Python环境
1、下载安装包
wget http://www.python.org/ftp/python/3.3.0/Python-3.3.0.tgz
2、./configure、make、make install
- Linux环境下升级Python遇到的问题
1、./configure报错
原因:没有安装GCC (yum -y install gcc)
2、python下删除键、方向键用不了
原因:readline包需要重新安装(yum install readline-devel)安装完后重新 ./configure、make、make install
3、把python3.5改为默认版本
- 备份原有链接
- mv /usr/bin/python usr/bin/pythonbak
- 创建新的软链接
- ln -s /usr/loacl/bin/python3.5 /usr/bin/python
五、Hello World
print(“Hello World!”)
与其它程序相比,很明显的看出Python语言的简洁性。
六、变量
声明变量
name=“lcm” #不用声明变量类型
变量定义的规则
- 变量名只能是 字母、数字或下划线的任意组合
- 变量名的第一个字符不能是数字
- 以下关键字不能声明为变量名
['and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'exec', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'not', 'or', 'pass', 'print', 'raise', 'return', 'try', 'while', 'with', 'yield']
七、字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
1980年 GB2312 支持7445
1995年 GBK1.0 支持21886
2000年 GB18030 支持27484
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode 最少占用2个字节
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...
所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill),如果是如下代码的话:
报错:ascii码无法表示中文
#!/usr/bin/env python
print("你好,世界")
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
#!/usr/bin/env python
#-*- coding:utf-8 -*-
print("你好,世界")
注释
单行注释:#被注释的内容
多行注释:''' 被注释的内容 ''' 或者""" 被注释的内容 """
八、用户输入
#!/usr/bin/env python
#_*_coding:utf-8_*_
#name = raw_input("What is your name?") #only on python 2.x
name
=
input
(
"What is your name?"
)
print
(
"Hello "
+
name )
输入密码时,如果想要不可见,需要利用getpass 模块中的 getpass方法,即:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
# 引用getpass模块
import getpass
# 将用户输入的内容赋值给 name 变量
pwd = getpass.getpass("请输入密码:")
# 打印输入的内容
print(pwd)
九、表达式if....else、while、for
用户登录程序
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:LV
usrname='lcm'
passwd='lcm123'
username=input("please input your name:")
password=input("please input your password:")
if usrname==username:
print("you input username is correct...")
if passwd==password:
print("Welcome login....")
else:
print("password is invalid...")
else:
print("you input username is invalid.....")
猜年龄程序
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:LV
age_truth=30
count=0
while count<3:
age_guess=int(input("please input your guess age:"))
if age_guess==age_truth:
print("yes,you got it!")
break
elif age_guess>age_truth:
print("think smaller!")
else:
print("think bigger!")
count+=1
else:
print("you have tried too many times,fuck off!")
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# Author:LV
age_truth=30
for i in range(3):
age_guess=int(input("please input your guess age:"))
if age_guess==age_truth:
print("yes,you got it!")
break
elif age_guess>age_truth:
print("think smaller!")
else:
print("think bigger!")
else:
print("you have tried too many times,fuck off!")