python的创始人为吉多·范罗苏姆(Guido van Rossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,做为ABC语言的一种继承。php
Python社区的人赋予他“仁慈大君” 的称号,这一称号直接来自英国肥皂剧《Monty Python飞行马戏团》。Guido当初之因此选中Python做为语言的名字,是由于他太喜欢这部肥皂剧了。html
引用一段《python基础教程》开场白:java
编写C程序就像一群人拿着剃刀在刚打过蜡的舞场内跳快舞python
------Walidi Ravenslinux
C++:难学更难用,设计如此c++
------匿名shell
在不少方面,Java就是C++ 编程
------Michael Feldmanswift
如今请看一种史无前例的表演......vim
------Monty Python的表演《飞行的马戏团》
https:
/
/
www.python.org
/
downloads
/
windows:
linux:
查看默认Python版本 python -V 一、安装gcc,用于编译Python源码 yum install gcc 二、下载源码包,https://www.python.org/ftp/python/ 三、解压并进入源码文件 四、编译安装 ./configure make all make install 五、查看版本 /usr/local/bin/python2.7 -V 六、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.6 ln -s /usr/local/bin/python2.7 /usr/bin/python 七、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改成 #!/usr/bin/python2.6
windows:
推荐Notepad++ ,不要用Word和Windows自带的记事本。Word保存的不是纯文本文件,而记事本会自做聪明地在文件开始的地方加上几个特殊字符(UTF-8 BOM),结果会致使程序运行出现莫名其妙的错误!
linux:
# vim hello.py # python hello.py Hello World!
上一步中执行 python hello.py 时,明确的指出 hello.py 脚本由 python 解释器来执行。
若是想要相似于执行shell脚本同样执行python脚本,例: ./hello.py
,那么就须要在 hello.py 文件的头部指定解释器,以下:
#!/usr/bin/env python #The first code print "hello,world"
ps:执行前需给予 hello.py 执行权限,chmod 755 hello.py
Python在执行时,解释器会将.py文件中的源代码编译成Python的byte code(字节码),而后再执行这些编译好的byte code。
对比下其它语言的hello world
需经过编译器(compiler)将源代码编译成机器码,以后才能执行的语言。通常需通过编译(compile)、连接(linker)这两个步骤。编译是把源代码编译成机器码,连接是把各个模块的机器码和依赖库串连起来生成可执行文件。
优势:编译器通常会有预编译的过程对代码进行优化。 由于编译只作一次,运行时不须要编译,因此编译型语言的程序执行效率高 。能够脱离语言环境独立运行。
缺点:编译以后若是须要修改就须要整个模块从新编译。编译的时候根据对应的运行环境生成机器码,不一样的操做系统之间移植就会有问题,须要根据运行的操做系统环境编译不一样的可执行文件。
表明语言:C、C++、 Pascal、Object-C以及最近很火的苹果新语言swift
解释性语言的程序不须要编译,相比编译型语言省了道工序,解释性语言在运行程序的时候才逐行翻译。
优势:有良好的平台兼容性,在任何环境中均可以运行,前提是安装了解释器(虚拟机)。灵活,修改代码的时候直接修改就能够,能够快速部署,不用停机维护。
缺点:每次运行的时候都要解释一遍,性能上不如编译型语言。
表明语言:JavaScript、Python、Erlang、PHP、Perl、Ruby
既然编译型和解释型各有缺点就会有人想到把两种类型整合起来,取其精华去其糟粕。就出现了半编译型语言。好比C#,C#在编译的时候不是直接编译成机器码而是中间码,.NET平台提供了中间语言运行库运行中间码,中间语言运行库相似于Java虚拟机。我我的认为抛开一切的偏见C#是这个星球上最好的编程语言。惋惜微软的政策限制了C#的推广。
Java先生成字节码再在Java虚拟机中解释执行。
严格来讲混合型语言也属于解释型语言。
单行注视:# 被注释内容
多行注释:""" 被注释内容 """
# 井号能够注释单行代码 """ 3个双引号或者单引号 能够注释多行内容 """
变量能够用来存储数据和被程序调用,它由名字和值两部分组成,能够把它想象成一个容器,容器的名字和值会被保存在内存中。
#_*_coding:utf-8_*_ name = "Alex Li" age = 18 sales = 4432.67 / 1.20
变量定义的规则:
name = "Alex Li" name2 = name print(name,name2) name = "Jack" print("What is the value of name2 now?")
输出:
在print()
括号中加上字符串,就能够向屏幕上输出指定的文字。
print('hello, python')
print()
函数也能够接受多个字符串,用逗号“,”隔开,就能够连成一串输出:
name = “france” print(“my name is :”,name)
print()
会依次打印每一个字符串,遇到逗号“,”会输出一个空格。
输入:
Python提供了一个input()
,可让用户输入字符串
#!/usr/bin/env python print "你好,世界"
错误缘由:python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ASCII码),但ASCII不支持中文。
字符编码:
字符编码(英语:Character encoding)、字集码是把字符集中的字符编码为指定集合中某一对象(例如:比特模式、天然数序列、8位组或者电脉冲),以便文本在计算机中存储和经过通讯网络的传递。常见的例子包括将拉丁字母表编码成摩斯电码和ASCII。其中,ASCII将字母、数字和其它符号编号,并用7比特的二进制来表示这个整数。一般会额外使用一个扩充的比特,以便于以1个字节的方式存储。
ASCII
ASCII(American Standard Code for Information Interchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其余西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,因此,ASCII码最多只能表示 255 个符号。ASCII规范标准在1967发表,最后一次更新则是在1986年。至今为止共定义了128个字符。
GB2312/GBK/GB18030
GB 2312 是中国国家标准简体中文字符集,全称《信息交换用汉字编码字符集·基本集》,又称GB0,由中国国家标准总局在1981年发布实施。GB 2312标准共收录6763个汉字。
GBK即汉字内码扩展规范。共收入21886个汉字和图形符号。
GB 18030与GB 2312-1980彻底兼容,与GBK基本兼容,支持GB 13000及Unicode的所有统一汉字,共收录汉字70244个。
各国语言编码
http://blog.csdn.net/miqi770/article/details/43935273
Unicode
Unicode(中文:万国码、国际码、统一码、单一码)是计算机科学领域里的一项业界标准。它对世界上大部分的文字系统进行了整理、编码,使得电脑能够用更为简单的方式来呈现和处理文字。
Unicode伴随着通用字符集的标准而发展,同时也以书本的形式[1]对外发表。Unicode至今仍在不断增修,每一个新版本都加入更多新的字符。目前最新的版本为2016年6月21日公布的9.0.0[2],已经收入超过十万个字符(第十万个字符在2005年获采纳)。Unicode涵盖的数据除了视觉上的字形、编码方法、标准的字符编码外,还包含了字符特性,如大小写字母。
UTF-8
UTF-8(8-bit Unicode Transformation Format)是一种针对Unicode的可变长度字符编码,也是一种前缀码。它能够用来表示Unicode标准中的任何字符,且其编码中的第一个字节仍与ASCII兼容,这使得原来处理ASCII字符的软件无须或只须作少部分修改,便可继续使用。所以,它逐渐成为电子邮件、网页及其余存储或发送文字的应用中,优先采用的编码。
UTF-8使用一至六个字节为每一个字符编码(尽管如此,2003年11月UTF-8被RFC 3629从新规范,只能使用原来Unicode定义的区域,U+0000到U+10FFFF,也就是说最多四个字节)
改正:应该显示的告诉python解释器,用什么编码来执行源代码,即:
#!/usr/bin/env python # -*- coding: utf-8 -*- print "你好,世界"
场景1、用户登录验证
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
# 提示输入用户名和密码
# 验证用户名和密码
# 若是错误,则输出用户名或密码错误
# 若是成功,则输出 欢迎,XXX!
#!/usr/bin/env python
# -*- coding: encoding -*-
import
getpass
name
=
raw_input
(
'请输入用户名:'
)
pwd
=
getpass.getpass(
'请输入密码:'
)
if
name
=
=
"alex"
and
pwd
=
=
"cmd"
:
print
(
"欢迎,alex!"
)
else
:
print
(
"用户名和密码错误"
)
|
场景2、猜年龄游戏
在程序里设定好你的年龄,而后启动程序让用户猜想,用户输入后,根据他的输入提示用户输入的是否正确,若是错误,提示是猜大了仍是小了
最简单的循环10次
1
2
3
4
5
6
|
#_*_coding:utf-8_*_
__author__
=
'Alex Li'
for
i
in
range
(
10
):
print
(
"loop:"
, i )
|
输出:
1
2
3
4
5
6
7
8
9
10
|
loop:
0
loop:
1
loop:
2
loop:
3
loop:
4
loop:
5
loop:
6
loop:
7
loop:
8
loop:
9
|
需求一:仍是上面的程序,可是遇到小于5的循环次数就不走了,直接跳入下一次循环
1
2
3
4
|
for
i
in
range
(
10
):
if
i<
5
:
continue
#不往下走了,直接进入下一次loop
print
(
"loop:"
, i )
|
需求二:仍是上面的程序,可是遇到大于5的循环次数就不走了,直接退出
1
2
3
4
|
for
i
in
range
(
10
):
if
i>
5
:
break
#不往下走了,直接跳出整个loop
print
(
"loop:"
, i )
|
有一种循环叫死循环,一经触发,就运行个天荒地老、海枯石烂。
海枯石烂代码
1
2
3
4
5
|
count
=
0
while
True
:
print
(
"你是风儿我是沙,缠缠绵绵到天涯..."
,count)
count
+
=
1
|
其实除了时间,没有什么是永恒的,死loop仍是少写为好
上面的代码循环100次就退出吧
回到上面for 循环的例子,如何实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序。
做业一:博客
做业二:编写登录接口