yanglgzh 发表于 2017-4-22 14:09:44

深入 Python :Dive Into Python第一天

  1:一上午看Dive Into Python,在线到第7章,有些细节我过滤了
  总结下python和java的区别:
   没有数据类型的定义
               内置的dict,list,等和hashmap,arrylist等有些类似
               python中import和java中import意思相同
               python的语法很不同
                         可以寻列赋值
                         严格的缩进 表示一个语句块
                         def 定义一个函数 当然还有lamab方法
                         if--elif--elif-  :中判断没有()用:
                         万物皆对象,模块什么的
                         for循环的不同
                         写python就像写英语一样
                         面向对象,class 同样的,(fater)fater就是父类
                         写在类中属性是类所共有的,就是java中static的意思
                         类中有_init_相当与构造函数,在类初始化的时候执行
                         self相当于java中this的
                         实例化对象p=Person()不需要java中的new
                         处理异常的
                         ..................................
  python有很多模块
  1:学习 urllib模块 -------------------相当于java中的jsoup,解析html文件的
  

  推荐的书籍:深入 Python :Dive Into Python
  个人觉得比简明教程好看点,跟着作者来 基本上没问题
  http://sebug.net/paper/books/dive-into-python/html/index.html  
  一篇关于urllib模块的blog
  http://www.blogjava.net/ashutc/archive/2011/03/21/346695.html

  实例:

>>> def fib(n):
print 'n=',n
if n>1:
return n*fib(n-1)
else:
print 'end of the line'
return 1

>>> d = {"server":"hello","database":"mysql"}
>>> d
{'database': 'mysql', 'server': 'hello'}
>>> fib(5)
n= 5
n= 4
n= 3
n= 2
n= 1
end of the line
120
>>> d["server"]
'hello'
>>> d["database"]
'mysql'
>>> d["database"] = 'oracle'
>>> d["database"]
'oracle'
>>> del d["server"]
>>> d
{'database': 'oracle'}
>>> d["boy"] ='ljq'
>>> d
{'boy': 'ljq', 'database': 'oracle'}
>>> d.clear()
>>> d
{}
>>> d
{}
>>> li = ['a','b','c','woaini']
>>> li
['a', 'b', 'c', 'woaini']
>>> li
'a'
>>> li
Traceback (most recent call last):
File "<pyshell#27>", line 1, in <module>
li
IndexError: list index out of range
>>> li
'woaini'
>>> li[-1]
'woaini'
>>> li[-3]
'b'
>>> li
['a', 'b', 'c', 'woaini']
>>> li
['b', 'c']
>>> li
Traceback (most recent call last):
File "<pyshell#33>", line 1, in <module>
li
TypeError: list indices must be integers, not tuple
>>> li
['a', 'b', 'c', 'woaini']
>>> li
['a', 'b']
>>> li
['b']
>>> li
['b', 'c']
>>> li
['b', 'c', 'woaini']
>>> li
[]
>>> li
['a', 'b', 'c', 'woaini']
>>> li[:3]
['a', 'b', 'c']
>>> li
['b', 'c', 'woaini']
>>> li
['c', 'woaini']
>>> li[:]
['a', 'b', 'c', 'woaini']
>>> li.append('girl')
>>> li
['a', 'b', 'c', 'woaini', 'girl']
>>> li.insert(2,'new')
>>> li
['a', 'b', 'new', 'c', 'woaini', 'girl']
>>> li.extend(["two","element"])
>>> li
['a', 'b', 'new', 'c', 'woaini', 'girl', 'two', 'element']
>>> li
['a', 'b', 'new', 'c', 'woaini', 'girl', 'two', 'element']
>>> li.extend(['d','ff','ddd'])
>>> li
['a', 'b', 'new', 'c', 'woaini', 'girl', 'two', 'element', 'd', 'ff', 'ddd']
>>> len(li)
11
>>> li[-1]
'ddd'
>>> li.append(['2','dd','dddddd'])
>>> li
['a', 'b', 'new', 'c', 'woaini', 'girl', 'two', 'element', 'd', 'ff', 'ddd', ['2', 'dd', 'dddddd']]
>>> li.index('new')
2
>>> li.index('wddddd')
Traceback (most recent call last):
File "<pyshell#59>", line 1, in <module>
li.index('wddddd')
ValueError: list.index(x): x not in list
>>> "a" in li
True
>>> "ddddddd"in li
False
>>> li.remove('a')
>>> li
['b', 'new', 'c', 'woaini', 'girl', 'two', 'element', 'd', 'ff', 'ddd', ['2', 'dd', 'dddddd']]
>>> li.pop()
['2', 'dd', 'dddddd']
>>> li
['b', 'new', 'c', 'woaini', 'girl', 'two', 'element', 'd', 'ff', 'ddd']
>>> li = ['a','d','mygirl']
>>> li
['a', 'd', 'mygirl']
>>> li = li +['hello','mybory']
>>> li
['a', 'd', 'mygirl', 'hello', 'mybory']
>>> li = li * 2
>>> l
Traceback (most recent call last):
File "<pyshell#71>", line 1, in <module>
l
NameError: name 'l' is not defined
>>> li
['a', 'd', 'mygirl', 'hello', 'mybory', 'a', 'd', 'mygirl', 'hello', 'mybory']
>>> t = ('a','b','c')
>>> t
('a', 'b', 'c')
>>> t
'b'
>>> t[-1]
'c'
>>> t.append('new')
Traceback (most recent call last):
File "<pyshell#77>", line 1, in <module>
t.append('new')
AttributeError: 'tuple' object has no attribute 'append'
>>> "a" in t
True
>>> v=('a','b','c')
>>> v
('a', 'b', 'c')
>>> (x,y,z)=v
>>> x
'a'
>>> y
'b'
>>> b
Traceback (most recent call last):
File "<pyshell#84>", line 1, in <module>
b
NameError: name 'b' is not defined
>>> c
Traceback (most recent call last):
File "<pyshell#85>", line 1, in <module>
c
NameError: name 'c' is not defined
>>> z
'c'
>>> v
('a', 'b', 'c')
>>> range(7)

>>> (MONDAY, TUESDAY, WEDNESDAY, THURSDAY, FRIDAY, SATURDAY, SUNDAY) = range(7)
>>> MONDAY
0
>>> K='UID'
>>> V = 'SA'
>>> '%S=%S' % (K,V)
Traceback (most recent call last):
File "<pyshell#93>", line 1, in <module>
'%S=%S' % (K,V)
ValueError: unsupported format character 'S' (0x53) at index 1
>>> k = "uid"
>>> v = "sa"
>>> "%s=%s" % (k, v)
'uid=sa'
>>> print "%s is not a good password for %s" % (pwd, uid)
Traceback (most recent call last):
File "<pyshell#97>", line 1, in <module>
print "%s is not a good password for %s" % (pwd, uid)
NameError: name 'pwd' is not defined
>>> print "%s is not a good password for %s" % (K, V)
UID is not a good password for SA
>>> print "today" stock price : %f" % 50.5556666
SyntaxError: invalid syntax
>>>print "Today's stock price: %f" % 50.4625
File "<pyshell#100>", line 1
print "Today's stock price: %f" % 50.4625
^
IndentationError: unexpected indent
>>> print "Today's stock price: %f" % 50.4625
Today's stock price: 50.462500
>>> print "Today's stock price: %.2f" % 50.4625
Today's stock price: 50.46
>>> print "Today's stock price: %f+.2" % 50.4625
Today's stock price: 50.462500+.2
>>> li =
>>>

>>> li

>>> li =
>>> li

>>> d
{}
>>> d =[]params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
SyntaxError: invalid syntax
>>> params = {"server":"mpilgrim", "database":"master", "uid":"sa", "pwd":"secret"}
>>> params
{'pwd': 'secret', 'database': 'master', 'uid': 'sa', 'server': 'mpilgrim'}
>>> params.keys()
['pwd', 'database', 'uid', 'server']
>>> params.values();
['secret', 'master', 'sa', 'mpilgrim']
>>> params.items()
[('pwd', 'secret'), ('database', 'master'), ('uid', 'sa'), ('server', 'mpilgrim')]
>>> li = ['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> li
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> s=":".join(li)
>>> s
'server=mpilgrim:uid=sa:database=master:pwd=secret'
>>> s.split(':')
['server=mpilgrim', 'uid=sa', 'database=master', 'pwd=secret']
>>> type(1)
<type 'int'>
>>> type("hello")
<type 'str'>
>>> type
Traceback (most recent call last):
File "<pyshell#123>", line 1, in <module>
type
TypeError: 'type' object is unsubscriptable
>>> type(li)
<type 'list'>
>>> type(params)
<type 'dict'>
>>> str(1)
'1'
>>> dir(li)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> li=[]
>>> dir(li)
['__add__', '__class__', '__contains__', '__delattr__', '__delitem__', '__delslice__', '__doc__', '__eq__', '__format__', '__ge__', '__getattribute__', '__getitem__', '__getslice__', '__gt__', '__hash__', '__iadd__', '__imul__', '__init__', '__iter__', '__le__', '__len__', '__lt__', '__mul__', '__ne__', '__new__', '__reduce__', '__reduce_ex__', '__repr__', '__reversed__', '__rmul__', '__setattr__', '__setitem__', '__setslice__', '__sizeof__', '__str__', '__subclasshook__', 'append', 'count', 'extend', 'index', 'insert', 'pop', 'remove', 'reverse', 'sort']
>>> li=["boy","girl"]
>>> li
['boy', 'girl']
>>> li.pop()
'girl'
>>> li
['boy']
>>> getattr(li,"pop")
<built-in method pop of list object at 0x011CE080>
>>> li = ["a", "mpilgrim", "foo", "b", "c", "b", "d", "d"]
>>> li
['a', 'mpilgrim', 'foo', 'b', 'c', 'b', 'd', 'd']
>>>
['mpilgrim', 'foo']
>>> li=
>>> li
['mpilgrim', 'foo']
>>> 'a' adn 'b'
SyntaxError: invalid syntax
>>> 'a' and 'b'
'b'
>>> '' and 'b'
''
>>> def f(x)
SyntaxError: invalid syntax
>>> def f(x):
return x*2

>>>
>>>
>>> f(4)
8
>>> g = lambda x:x*2
>>> g(3)
6
>>> s = "this   is\na\ttest"
>>> print s
this   is
atest
>>> print s.split()
['this', 'is', 'a', 'test']
>>> print " ".join(s.split)
Traceback (most recent call last):
File "<pyshell#159>", line 1, in <module>
print " ".join(s.split)
TypeError
>>> print " ".join(s.split())
this is a test
>>> import types
>>> types.FunctionType
<type 'function'>
>>> FunctionType
Traceback (most recent call last):
File "<pyshell#163>", line 1, in <module>
FunctionType
NameError: name 'FunctionType' is not defined
>>> from types import FunctionType
>>> FunctionType
<type 'function'>
>>> fsoc = open('/onttt','r')
Traceback (most recent call last):
File "<pyshell#166>", line 1, in <module>
fsoc = open('/onttt','r')
IOError: No such file or directory: '/onttt'
>>> try:
fsock = open('/onttt','r')
except IOError
File "<pyshell#173>", line 3
except IOError
^
IndentationError: unindent does not match any outer indentation level
>>>
>>> try:
fsock = open('/onttt','r')
except IOError:
File "<pyshell#175>", line 3
except IOError:
^
IndentationError: unindent does not match any outer indentation level
>>> try:
fsock = open('/dddddd')
except IOError:
File "<pyshell#178>", line 3
except IOError:
^
IndentationError: unindent does not match any outer indentation level
>>> try:
fsock = open('/dddd')
except IOError:
File "<pyshell#202>", line 3
except IOError:
^
IndentationError: unindent does not match any outer indentation level
>>> try:
fscok = open('/ddddd')
except IOError:
File "<pyshell#205>", line 3
except IOError:
^
IndentationError: unindent does not match any outer indentation level
>>> import urllib
>>> sock = urllib.urllib.urlopen("www.baidu.com")
Traceback (most recent call last):
File "<pyshell#207>", line 1, in <module>
sock = urllib.urllib.urlopen("www.baidu.com")
AttributeError: 'module' object has no attribute 'urllib'
>>> sock = urllib.urlopen("www.baidu.com")
Traceback (most recent call last):
File "<pyshell#208>", line 1, in <module>
sock = urllib.urlopen("www.baidu.com")
File "C:\Python26\lib\urllib.py", line 86, in urlopen
return opener.open(url)
File "C:\Python26\lib\urllib.py", line 205, in open
return getattr(self, name)(url)
File "C:\Python26\lib\urllib.py", line 467, in open_file
return self.open_local_file(url)
File "C:\Python26\lib\urllib.py", line 481, in open_local_file
raise IOError(e.errno, e.strerror, e.filename)
IOError: : 'www.baidu.com'
>>> urllib
<module 'urllib' from 'C:\Python26\lib\urllib.py'>
>>> sock = urllib.URLopener
>>> sock
<class urllib.URLopener at 0x011F7990>
>>> htmlSource = sock.read()
Traceback (most recent call last):
File "<pyshell#212>", line 1, in <module>
htmlSource = sock.read()
AttributeError: class URLopener has no attribute 'read'
>>> import urllib
>>> print urllib.urlopen('http://www.baidu.com').read()
页: [1]
查看完整版本: 深入 Python :Dive Into Python第一天