python基础之初始python
1、python介绍
python的创始人是吉多·范罗苏姆(Guido van Rossum)。吉多·范罗苏姆在1989的圣诞期间,为了打发圣诞节的无趣,决心开发一个一个新的脚本解释程序,作为ABC语言的一种继承。之所以选中Python(翻译:大蟒蛇)作为程序的名字,是因为他是一个叫Monty Python的喜剧团体爱好者。
1.1、python定位
- python的设计哲学是优雅、明确、简单。(用一种方法 ,最好只有一种方法来做一件事);
- python的完全面向对象的语言。
- python是一种高级动态编程语言。因为“脚本语言”泛指仅作简单程序的设计任务的语言,列:shellscript,VBCScript等处理简单任务的编程语言。
1.2、Python的应用领域
- 云计算:典型应用
- web开发:众多大型网站均为Python 开发,典型的web框架Django。列入:Youtuble,知乎,豆瓣,Facebook等
- 科学计算、人工智能:典型库NumPy,SciPy、librarys、pandas等
- 系统运维:运维人员的必备语言
- 金融领域:在金融领域,分析计算,Python用的很多,因为作为动态语言Python,语言结构清晰简单,成熟稳定,科学计算和分析非常good,生产效率远高于c、c++、java,尤其擅长策略回测
- 自动化:ansibel,saltstack,都是用python语言写的。
1.3、Python语言分析
编程语言主要从以下角度分类
- 编译型和解释型
- 静态语言和动态语言
- 强类型定义语言和弱类型定义语言
编译型:
c、c++是属于编译型。就是负责翻译的程序进行对我们的源代码转换。生产相对应的可执行的代码
解释型:
python 、php、 ruby、 java、c#等。就是在运行的时候将程序翻译成机器语言,所以运行速度相对较慢
动态语言:
是指运行期间才去做数据类型检查的语言,也就是该语言会在你第一次赋值给变量是,在内部数据类型记录下来。
静态语言:
与动态语言刚好相反,它的数据类型实在编译期间检查的,也就是说在写程序时要声明所有变量的数据类型.典型代表c、c++
1.4、Python优缺点:
优点:
- Python的定位是优雅、明确、简单。所以python的程序看上去简单易懂,入门容易
- 开发效率非常高,Python有非常强大的第三方库
- 高级语言:用python语言编写程序是,无需考虑如何管理你程序的使用内存一类的底层细节
- 可移植性:由于Python的开源,Python已近移植在许多平台上
- 可扩展性:如果你需要你的关键代码运行的更快或者希望某些算法不公开,你可以把你的部分程序用c或c++编写,然后在你的python程序中使用它们
- 可嵌入性:可以吧python嵌入你的c/c++程序,从而向你的程序提供脚本功能
缺点:
- 速度慢:python的运行速度相比c语言确实慢很多,跟java相比也要慢些
- 代码无法加密:python是解释型语言,它的源码都是以名文形式存放。如果要求源代码加密,一开始就不应该用python来实现
- 线程不能利用多cpu问题。
1.5、Python的安装
windows:
1.下载安装包 https://www.python.org/downloads/ 2.安装 设置默认安装路劲为:C:\Python35 3.配置环境变量 右击计算机——属性——更改设置——高级——环境变量——在系统变量那个框——编辑变量Path——在变量值那个框——在末尾中加上分号(;)加上你的python安装目录(C:\Python35)
linux:
1:linux 自带python环境,如需要更新在网上下载相应的linux更新包 2:下载 https://www.python.org/ftp/python/ 3.解压并进入源码文件 4.编译安装 ./configure make make install 5、查看新安装版本 /usr/local/bin/python3.5 -V 6、修改默认Python版本 mv /usr/bin/python /usr/bin/python2.6备份以前的python的环境 ln -s /usr/local/bin/python3.5 /usr/bin/python 7、防止yum执行异常,修改yum使用的Python版本 vi /usr/bin/yum 将头部 #!/usr/bin/python 修改为 #!/usr/bin/python3.5
1.6、Python入门
第一局代码:
1 xixi@localhost:~$ python3 2 Python 3.5.1+ (default, Mar 30 2016, 22:46:26) 3 [GCC 5.3.1 20160330] on linux 4 Type "help", "copyright", "credits" or "license" for more information. 5 >>> print ("hello world") 6 hello world 7 >>>
在linux中创建一个hello.py的文件
1 #!/usr/bin/env python #指定环境变量 2 print ("hello world") 3 通过python3命令执行hello.py文件 4 python3 hello.py 5 hello world
1.6.1、Python注释
注释:表示不执行该程序代码,表声明,提示,让别人更能读懂你的程序
单行注释:用#
1 #by name date 2 表注释当前行,用来声明写该代码是在什么时间写的
多行注释用''' ''' 或者""" """
''' comments note xixi ''' 或者 """ comments note xixi """ 表示注释comments、note、xixi这些行的内容不调用
1.6.2、Python变量
什么是变量:一个在内存储存数据的容器
变量的意义:因为它保存在程序执行中间的结果或者状态,以供后面代码调用
声明变量
1 #_*_coding:utf-8 _*_ #引用utf8的国际字符编码
2 name = “yang jian”
上述代码声明了一个变量,变量名为:name,变量值为:yang jian
变量定义队则:
- 变量名只能是字母、数字、或下划线的 任意组合
- 变量名的第一字符不能是数字
- 变量明不能有特殊字符
- 以下关键字不能声明为变量名:
['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']
1.6.3、python的字符编码
python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascillASCII(American Standard Code for InformationInterchange,美国标准信息交换代码)是基于拉丁字母的一套电脑编码系统,主要用于显示现代英语和其他西欧语言,其最多只能用 8 位来表示(一个字节),即:2**8 = 256-1,所以,ASCII码最多只能表示 255 个符号。
显然ASCII码无法将世界上的各种文字和符号全部表示,所以,就需要新出一种可以代表所有字符和符号的编码,即:Unicode Unicode(万国码)是一种在计算机上使用的字符编码。Unicode 是为了解决传统的字符编码方案的局限而产生的,它为每种语言中的每个字符设定了统一并且唯一的二进制编码,规定虽有的字符和符号最少由 16 位来表示(2个字节),即:2 **16 = 65536.
UTF-8,是对Unicode编码的压缩和优化,他不再使用最少使用2个字节,而是将所有的字符和符号进行分类:ascii码中的内容用1个字节保存、欧洲的字符用2个字节保存,东亚的字符用3个字节保存...所以,python解释器在加载 .py 文件中的代码时,会对内容进行编码(默认ascill)。
万国编码 = Unicode 4bytes
utf-16 = 65535
utf-8 = 可变长的编码集
utf-8,英文按ascii存储,中文存3个字节,欧洲2个字节
一个二进制数字=1bit(计算机最小存储单位)
8bit = 1bytes 1024bytes = 1kb 1024kb = 1mb 1024mb = 1GB
在python程序代码中,输入中文字符编码,有时会乱码,那么我们需要声明字符编码,如下
#-*- coding:utf-8 -*- print ("世界,您好")
1.6.4、Python的交互式输入
需要用到input语法,如下代码
#!/usr/bin/env python #调用python解释器 # -*- coding: utf-8 -*- #申明用utf-8的字符编码 #by yangjian #写这个程序代码的名字 #将用户输入内容的赋值给name变量 name = input("请输入用户名:") #打印输入的内容 print(name)
打印多行print
print ( ''' ---info of me--- Name = seven Age = 25 Hobby = runing ---ending--- ''')
1.6.5、Python的格式化输出
python的格式化输输出 有%s 字符串,%d整数,浮点数%f
#!/usr/bin/env python # by:yangjian name = input("name:") age = int(input("age:")) job = input("job:") hobby = input("hobby:") info = ''' -------info of %s ------ Name:%s Age:%d Job:%s Salary:%s ''' % (name,name,age,job,hobby) print(info)
1.6.4、Python的if流程
判断流程如下图
列入用户登录验证,代码如下
1 #!/usr/bin/env python 2 # by:yangjian 3 #提示输入用户名和密码 4 #如果错误,输出,用户名或密码错误 5 #如果成功,输出,欢迎回来 6 7 8 user = "yangjian" 9 passwd = "123456" 10 username = input("请输入用户:") 11 password = input("请输入密码:") 12 13 if user == username and passwd == password: 14 print("欢迎回来") 15 else: 16 print("用户名或密码错误")