一.简介
Python是著名的“龟叔”Guido van Rossum在1989年圣诞节期间,为了打发无聊的圣诞节而编写的一个编程语言。
有点是简介
缺点1:运行速度慢,因为Python是解释型语言,你的代码在执行时会一行一行地翻译成CPU能理解的机器码,这个翻译过程非常耗时,所以很慢,但是是相对的,考虑到网络的带宽延迟的可以忽略
缺点2:无法加密,当然,现在如火如荼的开源运动和互联网自由开放的精神是一致的,互联网上有无数非常优秀的像Linux一样的开源代码,我们千万不要高估自己写的代码真的有非常大的“商业价值”。那些大公司的代码不愿意开放的更重要的原因是代码写得太烂了,一旦开源,就没人敢用他们的产品了。
二.python编程
2.1 第一个python程序
2.2 输入输出
现在,你已经可以用print输出你想要的结果了。但是,如果要让用户从电脑输入一些字符怎么办?Python提供了一个raw_input,可以让用户输入字符串,并存放到一个变量里。比如输入用户的名字:
2.3 python基础
整数、浮点数 略
字符串 一般用’ “ :
例: ‘i am ok’ ———>i am ok
“ i’m ok” ———>i’m ok
'I\'m \"OK\”!’———> I’m “OK”!
unicode码
>>> print u'中文'
中文
>>> u'中'
u'\u4e2d'
写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'
格式化
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
你可能猜到了,%运算符就是用来格式化字符串的。在字符串内部,%s表示用字符串替换,%d表示用整数替换,有几个%?占位符,后面就跟几个变量或者值,顺序要对应好。如果只有一个%?,括号可以省略。
常见的占位符有:
%d
整数
%f
浮点数
%s
字符串
%x
十六进制整数
2.4 使用list和tuple
list有点类似数组,
classmate=[‘wyz’,’sbq’,’jzh’,’xm’]
此时变量classmate就是个list,len(classmate)可以获取list长度,classmate(0)-(3可以获取list里具体的值
或者直接print classmate[-1] 就是最后一个值,xm
以此类推,倒数第二个就是-2 、-3等等
当然list也是个可变的有序表,所以可以在list后面追加append()
classmate.append(‘gl’)
如果要删除最后末尾的元素,用pop()
classmate.pop() 默认删除的是最后一个末尾,当然可以指定删除哪一个classmate.pop(i)
i要在范围内
list里的类型也可以是其他的
如L = [‘wyz’ ,100 ,true]
也可以嵌套成二维数组一样
s=[‘java’ ,’asp’, [‘c’,’python],’go’]
其中s[2][1]=c
s[2][2]=python
tuple
另一种有序列表叫元组,
tuple和list非常相似,但是tuple一旦初始化就不能修改,不能像list一样append,pop,insert
tuple是声明是用(),list声明使用[]
例如t=(‘a’,’b’,[‘A’,’B’])
t中t(0),t(1)都是无法改变的,但是t(2)其实是个list,所以t[2][0]和t[2][1]是可以变化的。
2.5 条件判断和循环
条件判断
if用来条件判断,else输出不符合要求的结果,中间可以加elif多一重判断,当然完全可以有n个elif,elif是else if的缩写
但是if有个缺点,遍历过程是自上而下的,如果出现了ture的结果,后面的就不会去判断了。
如下图,20岁直接被认为是kid就是因为这个道理
循环
python的循环有两种,一种是for...in的循环,一次把list或者tuple中的元素遍历出来
所以for i in就是把每个元素都遍历进变量i
python提供了range函数,比如range(100)就是从0至100的整数
第二种循环是while循环,只要满足条件就不退出一直循环,条件不满足时自动退出循环
比如计算100以内奇数的和
2.6 使用dict和set
dict是dictionary的缩写,可以简化list和tuple的组合
例如names=[‘wyz’,’sbq’,’jzh’]
scores=[99,89,79]
我们可以用dict来实现这两个list的组合查询
d={‘wyz’:99,’sbq’:89,’jzh’:79}
则d[‘wyz’]=99
查询dict的key值是否存在有两种方法
一是直接用in方法
‘xjf’ in dcit
二是用get的方法
总结和list相比dict查询和插入删除速度更快,但是占用更多内存。dict是通过hash算法根据key来计算vaule的,所以相比list而言dict的value是不可变的,否则内存就会混乱
set和dict类似,也是一组key的集合但是没有value