python是由荷兰人Guido van Rossum发明了一种面向对象的解释型高级编程语言。在1989年圣诞节期间,在阿萨姆特丹,Guido为了打发圣诞节的无趣,决心开发一个新的脚本解释程序,作为ABC 语言的一种继承。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫Monty Python的喜剧团体的爱好者。
Google:Google APP Engine、code.google.com、 Google earth、谷歌爬虫、Google广告等项目
CIA:美国中情局网站用python开发
NASA:美国航天局大量使用python进行数据分析和运算
YouTube:世界上最大的视频网站用python开发
Dropbox:美国最大的在线云存储网站,全部用python实现,每天网站处理10亿个文件的上传和下载
Instagram:美国最大图片分享社交网站
Facebook:大量的基础库通过python实现
[Redhat](https://baike.baidu.com/item/Red Hat/7360805?fromtitle=REDHAT&fromid=1486449&fr=aladdin):世界上最流行的Linux发行版本中的yum包管理工具就是用python实现的
知乎:仿国外的Quora,也是有python实现的
除此之外,还有豆瓣、春雨医生、搜狐、金山、腾讯、网易、盛大、百度、阿里、淘宝、汽车之家、美团等都在使用python~~
web开发:Django、Pyramid、Tornado、Bottle、Flask、WebPy
网络编程:Twisted、Requests、Scrapy、Paramiko
科学运算:Scipy、Pandas、Ipython
GUI图形开发:WXPython、PyQT、Kivy
运维自动化:OpenStack、SaltStack、Ansible、腾讯蓝鲸
python是一门解释型的语言,当我们编写python代码时,我们得到的是一个包含python代码的以 .py为扩展名的文本文件。要运行代码,就需要python解释器去执行 .py文件。存在多种python解释器
CPython:解释器是用C语言开发的。
IPython:是基于CPython之上的一个交互式解释器,也就是说,IPython知识在交互方式上有所增强,但是执行Python代码的功能和CPython是完全一样的。
PyPy:最主要的特色是运行速度快。PyPy采用了JIT(just in time)技术,对Python代码进行动态编译,可以显著提高Python代码的执行速度
Jython:是运行在Java平台上的Python解释器,可以直接把Python代码编译成Java字节码
IronPython:和Jython类似,只不过IronPython是运行在微软 .Net平台上的Python解释器,可以直接把Python代码编译成 .Net的字节码
python的解释器很多,但使用最广泛的还是CPython。
总之一句话:人生苦短,我学Python~~
当然在写python代码之前,你应该安装好python环境(Windows/mac或Linux),除此之外你也可以安装开发工具pycharm、notepad++、sublime等等集成开发工具
以windows为例,写第一个程序:万年不变之hello world
(仪式感很重要~~~)
print("Hello World!!")
字面意思:变化的量。
用来存储信息的容器,方便以后使用。变量存在内存当中~
age = 18 # (就是把数字11赋值为age这个变量 “=”是赋值的意思)
print("my age is ", age)
age2 = age
print(age, age2)
age = 19
print(age2) #18
为什么age2的结果还是18呢?
age的引用指向了19
但age2的引用指向的还是18,所以结果是18
3.4.1:变量名只能包含字母、数字、下划线
3.4.2:变量名的第一个字符不能是数字,2name是不可以的
3.4.3:关键字和保留关键字不能作为变量名
and\ as\ assert\ break\ class\ continue\ def\ elif\ else\ except\ finally\ for\ from\ global\ if\ in\ import\ is\ lambda\ not\ or\ pass\ print\ raise\ return\ try\ while\ with\ yield
还应该注意:
3.4.4 变量名声明时候,最好见名知意(看到名字就知道什么意思)
3.4.5 最好使用驼峰或下划线命名法:makeFriends、MakeFriends、make_friends
3.4.6 永远不要用中文作为变量名
其实计算机底层只认识0和1,我们用0和1就可以组合成不同的精确的数字(二进制)。例如:100 (二进制)= 4(十进制)……我们知道二进制可以表示具体的数字了,但是二进制如何表示我们认识的各种字符呢?-- 字符编码(一张表格,某个数字就表示一个确定的字符)
美国标准信息交换代码,是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,最多只能用8位(一个字节)来表示,即:2的8次方 = 256 - 1(一共256位,从0开始,所以要减1) ,所以,ASCII码最多只能表示256个符号
为什么只需要8位就够了?
因为计算机是西方世界的产物,用128个数字(也就是0-127)就可以表示所有的英文字母组成的单词了、数字和符号了,也就是2**7 = 128,但是当时西方国家也考虑到了东方一些国家(美国当时是大国用了128个,所以预留了128个给其他国家来进行拓展,所以用8位就可以存储了,呵呵~~)
为了处理汉字,1980年程序员设计了用于简体中文的GB2312,一共收录了7445个字符,包括6763个汉字和682个其他符号。
GB2312支持的汉字太少了。1995年的汉字扩展规范GBK 1.0收录了21886个符号,它分为汉字区和图形符号区。汉字区包括21003个字符。2000年的GB18030取代GBK 1.0正式成为国家标准,改标准收录了27484个汉字,同时还收录了藏文、蒙文
维吾尔文等主要的少数民族文字。现在的PC平台必须支持GB18030,对嵌入式产品暂时不做要求,所以手机、mp3一般只支持GB2312。
通常我们还是用GBK指代中文Windows内码
每个国家都有自己的字符编码,如果进行信息交换的时候,就会出现乱码怎么办呢?
也可以称为统一码、万国码、单一码。Unicode是为了解决传统的字符编码方案的局限儿产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定所有的字符和符号最少由16位(2个字节)来表示,2**16 = 65536
此时美国人不愿意了,本来程序用1个G就可以了,现在得用2个G了……
是对Unicode编码的压缩和优化,它不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ASCII码中的内容用1个字节保存,欧洲的字符用2个字节保存,东亚的字符用3个字节保存
用 # 就可以了 例如:#后面写注释
用 “”“ 中间写注释 “”” 或 ‘’‘ 中间写注释 ’‘’
在python当中单引号和双引号括起来的没有区别,是一样的。
name = input("请输入您的名字:")
返回的name是一个字符串
age = input("请输入您的年龄:")
返回的age也是一个字符串
字符串:用双引号或者单引号或者三引号引起来的就是字符串
name1 = "Name" + name
为什么称为万恶呢?
因为这种方式在生成新对象的时候很耗费内存,所以不建议这样使用
name = "阳光"
age = 18
info = """ ------- information of %s -------
"Name:" %s
"Age:" %d
-------all of his infomations-------
""" % (name, name, age)
%s 字符串
%d 整数
%f 浮点数
name = "阳光"
age = 18
info = """ ------- information of {name} -------
"Name:" {name}
"Age:" {age}
-------all of his infomations-------
""" .format(name=name,age=age)
int:把字符串(只能包含整数)转化数字
str:把数字转化成字符串在这里插入代码片
print("I am " + str(18) + " years old" )
_username = "eric liu"
_passwrod = 1234
username = input("请输入用户名:")
password = int(input("请输入密码:"))
if username == _username and password == _password:
print("Welcome users %s" % username)
else:
print("Invalid username or password")
如果有多个判断条件呢?就要用到if - elif - elif - else,就不在举实例了,可以自己试一下
count = 0
while True:
print(count)
if count > 5:
break # 跳出循环
count = count + 1
for i in range(10):
if i == 5:
continue
print(i)
自己写一个猜测年龄的程序,会及时的返回信息,猜大了,猜小了,还是猜对了,并且规定猜的次数比如说3次
输入用户密码
认证成功后显示欢迎信息
输错三次后锁定(文件处理相关的知识需要学)