学习基础详查:html
https://www.cnblogs.com/alex3714/articles/5885096.htmljava
https://www.cnblogs.com/linhaifeng/articles/6384466.htmlpython
1.python是一门动态解释性的强类型定义语言。c++
2.Python能作什么程序员
3.Python的优缺点web
先看优势算法
再看缺点:数组
Python安装 服务器
Python解释器网络
这个解释器是用C语言开发的,因此叫CPython。在命令行下运行python
就是启动CPython解释器。CPython是使用最广的Python解释器。教程的全部代码也都在CPython下执行。
IPython是基于CPython之上的一个交互式解释器,也就是说,IPython只是在交互方式上有所加强,可是执行Python代码的功能和CPython是彻底同样的。
PyPy是另外一个Python解释器,它的目标是执行速度。PyPy采用JIT技术,对Python代码进行动态编译(注意不是解释),因此能够显著提升Python代码的执行速度。
绝大部分Python代码均可以在PyPy下运行,可是PyPy和CPython有一些是不一样的,这就致使相同的Python代码在两种解释器下执行可能会有不一样的结果。若是你的代码要放到PyPy下执行,就须要了解PyPy和CPython的不一样点。
Jython是运行在Java平台上的Python解释器,能够直接把Python代码编译成Java字节码执行。
IronPython和Jython相似,只不过IronPython是运行在微软.Net平台上的Python解释器,能够直接把Python代码编译成.Net的字节码。
Python的解释器不少,但使用最普遍的仍是CPython。若是要和Java或.Net平台交互,最好的办法不是用Jython或IronPython,而是经过网络调用来交互,确保各程序之间的独立性。
Python的变量及数据类型
Python的基本数据类型有5种: 整型(int), 浮点型(float), 字符型(string), 布尔型(bool),空值(None).
空值是Python里一个特殊的值,用None
表示。None
不能理解为0
,由于0
是有意义的,而None
是一个特殊的空值。
变量和常量
变量命名规则
先介绍标识符的概念。和其余高级语言同样,用来标识变量、符号常量、函数、数组、类型等实体名字的有效字符序列称为标识符(identifier)。简单地说,标识符就是一个名字。变量名是标识符的一种,变量的名字必须遵循标识符的命名规则。
Python语言和java,c++等不少语言同样,规定标识符只能由字母、数字和下划线3种字符组成,且第一个字符必须为字母或下划线。
注意:在Python中,大写字母和小写字母被认为是两个不一样的字符。所以,sum和SUM是两个不一样的变量名。通常地,变量名用小写字母表示,与人们平常习惯一致,以增长可读性。应注意变量名不能与Python的关键字、系统函数名和类名相同。
变量名命名习惯
变量名的定义在能表达清楚它的做用的前提下最越简洁越好,能用一个单词表述清楚的尽可能就不要用两个。变量起名时通常有这么几种写法,你以为哪一种最简洁,你就选哪一种吧。
CheckCurrentConnCount
check_current_conn_count
checkCurrentConnCount
定义变量
了解了变量的概念和用途后,咱们一块儿来定义几个简单的变量看一下
name = ‘gangzi’ #name 是字符串,字符串要加上引号噢
age = 29 #age 是整数,整数不要加引号,加了引号后就变成字符串了
has_girlfriend = False #是布尔值,通常用这个作逻辑判断,如if has_girlfriend:print ‘good for you !’
age = age + 1 #这个结果应该是30,运算流程是先将=号后面的age +1结果算出,而后再把这个结果重赋值给age, 因为age以前的值是29,从新赋值后,age值变为30.
最后,理解变量在计算机内存中的表示也很是重要。当咱们写:
_name = 'gangzi'
时,Python解释器干了两件事情:
常量
所谓常量就是不能变的变量。在Python中,一般用所有大写的变量名表示常量:
PI = 3.14159265359
但事实上PI仍然是一个变量,Python根本没有任何机制保证PI不会被改变,因此,用所有大写的变量名表示常量只是一个习惯上的用法。
数据运算符
python语言支持如下几种运算
算术运算
比较运算
Assignment Operators
二进制运算
关系运算
验证运算
由于Python的诞生比Unicode标准发布的时间还要早,因此最先的Python只支持ASCII编码,普通的字符串'ABC'
在Python内部都是ASCII编码的。Python提供了ord()和chr()函数,能够把字母和对应的数字相互转换:
>>> ord('A') 65 >>> chr(65) 'A'
Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'
表示。
写u'
中
'
和u'\u4e2d'
是同样的,\u
后面是十六进制的Unicode码。所以,u'A'
和u'\u0041'
也是同样的。
两种字符串如何相互转换?字符串'xxx'
虽然是ASCII编码,但也能够当作是UTF-8编码,而u'xxx'
则只能是Unicode编码。
把u'xxx'
转换为UTF-8编码的'xxx'
用encode('utf-8')
方法:
>>> u'ABC'.encode('utf-8') 'ABC' >>> u'中文'.encode('utf-8') '\xe4\xb8\xad\xe6\x96\x87'
英文字符转换后表示的UTF-8的值和Unicode值相等(但占用的存储空间不一样),而中文字符转换后1个Unicode字符将变为3个UTF-8字符,你看到的\xe4
就是其中一个字节,由于它的值是228
,没有对应的字母能够显示,因此以十六进制显示字节的数值。len()
函数能够返回字符串的长度:
>>> len(u'ABC') 3 >>> len('ABC') 3 >>> len(u'中文') 2 >>> len('\xe4\xb8\xad\xe6\x96\x87') 6
反过来,把UTF-8编码表示的字符串'xxx'
转换为Unicode字符串u'xxx'
用decode('utf-8')
方法:
>>> 'abc'.decode('utf-8') u'abc' >>> '\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8') u'\u4e2d\u6587' >>> print ('\xe4\xb8\xad\xe6\x96\x87'.decode('utf-8'))中文
因为Python源代码也是一个文本文件,因此,当你的源代码中包含中文的时候,在保存源代码时,就须要务必指定保存为UTF-8编码。当Python解释器读取源代码时,为了让它按UTF-8编码读取,咱们一般在文件开头写上这两行:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
第一行注释是为了告诉Linux/OS X系统,这是一个Python可执行程序,Windows系统会忽略这个注释;
第二行注释是为了告诉Python解释器,按照UTF-8编码读取源代码,不然,你在源代码中写的中文输出可能会有乱码。
最后一个常见的问题是如何输出格式化的字符串。咱们常常会输出相似'
亲爱的
xxx
你好!你
xx
月的话费是
xx
,余额是
xx'
之类的字符串,而xxx的内容都是根据变量变化的,因此,须要一种简便的格式化字符串的方式。
在Python中,采用的格式化方式和C语言是一致的,用%
实现,举例以下:
>>> 'Hello, %s' % 'world' 'Hello, world' >>> 'Hi, %s, you have $%d.' % ('Michael', 1000000) 'Hi, Michael, you have $1000000.'
你可能猜到了,%
运算符就是用来格式化字符串的。在字符串内部,%s
表示用字符串替换,%d
表示用整数替换,有几个%?
占位符,后面就跟几个变量或者值,顺序要对应好。若是只有一个%?
,括号能够省略。
常见的占位符有:%d 整数 %f 浮点数 %s 字符串 %x 十六进制整数
其中,格式化整数和浮点数还能够指定是否补0和整数与小数的位数:
>>> '%2d-%02d' % (3, 1) ' 3-01' >>> '%.2f' % 3.1415926 '3.14'
若是你不太肯定应该用什么,%s
永远起做用,它会把任何数据类型转换为字符串:
>>> 'Age: %s. Gender: %s' % (25, True) 'Age: 25. Gender: True'
对于Unicode字符串,用法彻底同样,但最好确保替换的字符串也是Unicode字符串:
>>> u'Hi, %s' % u'Michael' u'Hi, Michael'
有些时候,字符串里面的%
是一个普通字符怎么办?这个时候就须要转义,用%%
来表示一个%
:
>>> 'growth rate: %d %%' % 7 'growth rate: 7 %'
因为历史遗留问题,Python 2.x版本虽然支持Unicode,但在语法上须要'xxx'
和u'xxx'
两种字符串表示方式。
Python固然也支持其余编码方式,好比把Unicode编码成GB2312:
>>> u'中文'.encode('gb2312') '\xd6\xd0\xce\xc4'
但这种方式纯属自找麻烦,若是没有特殊业务要求,请牢记仅使用Unicode和UTF-8这两种编码方式。
在Python 3.x版本中,把'xxx'
和u'xxx'
统一成Unicode编码,即写不写前缀u
都是同样的,而以字节形式表示的字符串则必须加上b
前缀:b'xxx'
。
格式化字符串的时候,能够用Python的交互式命令行测试,方便快捷。
引用1: http://www.cnblogs.com/dzhanjie/archive/2011/07/07/2100340.html