简单介绍一下python2.x和3.5的区别
print
在python3.5中print 变为print()
Old: print "The answer is" , 2 *2 New: print( "The answer is" , 2 *2 )
如果想要不换行,之前的 2.x 版本可以这样
print x, #在末尾加上‘ ,’
但在 3.x 中这样不起任何作用,要想不换行你应该写成
print(x,end = '' )
/
Old: 1 / 2 #结果为0 New: 1/2 #终于等于0.5
raw_input
New: input() 等于 Old:raw_input
input
在3.5中input已经被删除
New:eval(input()) 等于 Old:input()
列表排序
python3.5中序列中不同类型不能进行顺序排列
>>> lb=[1,2,3,'a','b'] >>> lb [1, 2, 3, 'a', 'b'] >>> lb.sort() Traceback (most recent call last): File "", line 1, in lb.sort() TypeError: unorderable types: str() < int() >>> lb.reverse() >>> lb ['b', 'a', 3, 2, 1]
python2.x
>>> lb=[1,2,3,'a','b'] >>> lb.sort() >>> lb [1, 2, 3, 'a', 'b'] >>> lb.reverse() >>> lb ['b', 'a', 3, 2, 1]
字符编码
Python 3最重要的新特性大概要算是对文本和二进制数据作了更为清晰的区分。文本总是Unicode,由str类型表示,二进制数据则由bytes类型表示。 Python 3不会以任意隐式的方式混用str和bytes,正是这使得两者的区分特别清晰。你不能拼接字符串和字节包,也无法在字节包里搜索字符串(反之亦然),也 不能将字符串传入参数为字节包的函数(反之亦然)。
字符串可以编码成字节包,而字节包可以解码成字符串。
>>>'€20'.encode('utf-8') b'\xe2\x82\xac20'
>>> b'\xe2\x82\xac20'.decode('utf-8')
'€20'
在python2.下,字符串存储类型,英文为unicode;汉字为str
字典keys,values,items返回值
python3.5
>>> data={'haha':123,'xixi':456} >>> data.keys() dict_keys(['haha', 'xixi']) >>> type(data.keys()) <class 'dict_keys'>
python2.x
>>> data={'haha':123,'xixi':456} >>> data.keys() ['xixi', 'haha'] >>> type(data.keys())'list'>
安装Python
windows:
1、下载安装包 https://www.python.org/downloads/ 2、安装 默认安装路径:C:\python34 3、配置环境变量 【右键计算机】--》【属性】--》【高级系统设置】--》【高级】--》【环境变量】--》【在第二个内容框中找到 变量名为Path 的一行,双击】 --> 【Python安装目录追加到变值值中,用 ; 分割】 如:原来的值;C:\python34,切记前面有分号
linux
yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gdbm-devel db4-devel libpcap-devel xz-devel 2、下载Python3.5的源码包并编译 wget https://www.python.org/ftp/python/3.5.2/Python-3.5.2.tar.xz tar xf Python-3.5.2.tgz cd Python-3.5.2 ./configure --prefix=/usr/local --enable-shared make make install ln –s /usr/local/bin/python3 /usr/bin/python3 3、在运行Python之前需要配置库: echo /usr/local/lib >> /etc/ld.so.conf.d/local.conf ldconfig 4、运行演示: python3 --version Python 3.5.2
声明解释器
#!/usr/bin/env python
第一个python程序
#!/usr/bin/env python print("你好,世界")
执行 hello.py 文件,即:
python hello.py
python内部执行过程如下:
在linux下脚本执行
python hello.py
或者 申明了解释器
chmod +x hello.py
./hello.py #执行
执行脚本传入参数
Python内部提供一个 sys 的模块,其中的 sys.argv 用来捕获执行执行python脚本时传入的参数
import sys
print(sys.argv)
变量
变量的作用:
变量是用来在程序运行期间存储各种需要临时保存可以不断改变的数据的标识符,一个变量有一个名字,
并且在内存中占据一定的存储单元,在存储单元中存放该变量的值。
变量的命名规则
变量名只能是字母、数字或下划线组合
变量名第一个字符不能是数字
关键字不能声明为变量名
变量名应保持同一种风格,保持友好性
check_load_one
Check_Load_One
当我们执行
name = 'koka"
python 解释器干了两件事
- 在内存中创建了一个“koka”的字符串
- 在内存中创建了一个名为name的变量,并把它指向“koka”的内存地址
接下来看一个详细的事例:
当你把一个变量name1赋值给另一个变量name2时,解释器只是把name1所指向的内存地址赋值给了
name2,因此name1和name2并未发生直接的关联,只不过他们指向同一个内存地址而已,所以当你
再次给name指向一个新地址后,而name2的值依旧不变。
输入语句
在python3.X版本中 输入语句有以下改变
raw_input
New: input() 等于 Old:raw_input
hi = input("welcome to python 3.5 :")
input
input已经被删除
New:eval(input()) 等于 Old:input()
数据类型:
整数:python可处理任意大小的整数;
浮点数:小数;
字符串:以''或“”括起来的任意文本;
万恶的字符串拼接:python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,
并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内存中重新开辟一块空间。
布尔值:只有两种值Ture or False;
空值:空值在python里是一个特殊的值,用None表示,0并不是空值。
缩进与注释
缩进
python 是强制缩进的语言,它通过缩进来确定一个新的逻辑层次的开始和结束;同一逻辑级别的代码必须不能有缩进;整个程序的缩进风格应该保持一致,一般为4个空格或2个空格;用冒号表示开始一个新的语句块。
注释
当你写程序的时候应该保持添加注释的习惯,对于自己回顾与别人查看都很方便。一般情况下,源程序有效注释量应该在20%以上,注释的原则是有助于对程序的阅读理解,不宜过多也不能太少。
单行注释:#
多行注释:""" """ 或 ''' '''
条件语句
number=24 number=int(input("please input the number:")) if number == luck_num: print("Bingo!") elif number > luck_num: print("你输入的数字太大。") else: print("你输入的数字太小。")
嵌套语句
name = input("what is your name ? ") if name.endswith('Gumby'): if name.startswith('Mr.'): print("hello Mr.Gumby") elif name.startswith('Mrs.'): print('hello Mrs.Gumby') else: print('hello Gumby') else: print('hello strange')
循环语句
luck_num = 26 counter=0 for i in range(3): number = int(input("please input int number:").strip()) if luck_num > number: print("please input bigger number") elif luck_num < number: print("please input smaller number") else: print("bingo") break else: print("too many time error") #最后的else语句只会在循环正常结束的情况下才会运行,如果中间被break了,就不会继续运行了。 luck_num = 26 counter=0 while counter < 3: number = int(input("please input int number:").strip()) counter+=1 if luck_num > number: print("please input bigger number") elif luck_num < number: print("please input smaller number") else: print("bingo") break else: print("too many time error")
break and continue
break负责跳出整个循环,而continue只会跳出本次循环,继续下一次循环。
for i in range(10): if i%2 ==0: continue print("这是奇数",i)
一层循环中添加标志让另一循环在跳出时修改标志一起跳出。
loop1 = 0 loop2 = 0 while True: loop1 +=1 print("Loop1:", loop1) break_flag = False #在父循环中设置一个跳出标志,子循环要想连父循环一起跳出,就改变这个标志。 while True: loop2 +=1 if loop2 ==5: break_flag = True #改变标志 break #跳出当前循环 print('Loop2:',loop2) if break_flag: print("接到子循环跳出通知,我也跳出循环") break
Python列表推导
通过示例学习Python列表推导:http://python.jobbole.com/80823/